def main(): # init paddle.init(use_gpu=False, trainer_count=1) # network config x = paddle.layer.data(name='x', type=paddle.data_type.dense_vector(13)) y_predict = paddle.layer.fc(input=x, param_attr=paddle.attr.Param(name='w'), size=1, act=paddle.activation.Linear(), bias_attr=paddle.attr.Param(name='b')) y = paddle.layer.data(name='y', type=paddle.data_type.dense_vector(1)) cost = paddle.layer.mse_cost(input=y_predict, label=y) # create parameters parameters = paddle.parameters.create(cost) # create optimizer of new remote updater to pserver optimizer = paddle.optimizer.Momentum(momentum=0, learning_rate=1e-3) trainer = paddle.trainer.SGD(cost=cost, parameters=parameters, update_equation=optimizer, is_local=False, pserver_spec=etcd_endpoints, use_etcd=True) # event_handler to print training and testing info def event_handler(event): if isinstance(event, paddle.event.EndIteration): # FIXME: for cloud data reader, pass number is managed by master # should print the server side pass number if event.batch_id % 100 == 0: print "Pass %d, Batch %d, Cost %f" % ( event.pass_id, event.batch_id, event.cost) if isinstance(event, paddle.event.EndPass): if (event.pass_id + 1) % 10 == 0: result = trainer.test(reader=paddle.batch(uci_housing.test(), batch_size=2), feeding={ 'x': 0, 'y': 1 }) print "Test %d, %.2f" % (event.pass_id, result.cost) # training # NOTE: use uci_housing.train() as reader for non-paddlecloud training trainer.train(reader=paddle.batch(paddle.reader.shuffle( cloud_reader(["/pfs/dlnel/public/dataset/uci_housing/uci_housing*"], etcd_endpoints), buf_size=500), batch_size=2), feeding={ 'x': 0, 'y': 1 }, event_handler=event_handler, num_passes=30)
def main(): # init paddle.init(use_gpu=False, trainer_count=1) # network config x = paddle.layer.data(name='x', type=paddle.data_type.dense_vector(13)) y_predict = paddle.layer.fc(input=x, param_attr=paddle.attr.Param(name='w'), size=1, act=paddle.activation.Linear(), bias_attr=paddle.attr.Param(name='b')) y = paddle.layer.data(name='y', type=paddle.data_type.dense_vector(1)) cost = paddle.layer.mse_cost(input=y_predict, label=y) # create parameters parameters = paddle.parameters.create(cost) # create optimizer of new remote updater to pserver optimizer = paddle.optimizer.Momentum(momentum=0, learning_rate=1e-3) trainer = paddle.trainer.SGD(cost=cost, parameters=parameters, update_equation=optimizer, is_local=False, pserver_spec=etcd_endpoints, use_etcd=True) # event_handler to print training and testing info def event_handler(event): if isinstance(event, paddle.event.EndIteration): # FIXME: for cloud data reader, pass number is managed by master # should print the server side pass number if event.batch_id % 100 == 0: print "Pass %d, Batch %d, Cost %f" % ( event.pass_id, event.batch_id, event.cost) if isinstance(event, paddle.event.EndPass): if (event.pass_id + 1) % 10 == 0: result = trainer.test( reader=paddle.batch( uci_housing.test(), batch_size=2), feeding={'x': 0, 'y': 1}) print "Test %d, %.2f" % (event.pass_id, result.cost) # training # NOTE: use uci_housing.train() as reader for non-paddlecloud training trainer.train( reader=paddle.batch( paddle.reader.shuffle( cloud_reader( ["/pfs/dlnel/public/dataset/uci_housing/uci_housing*"], etcd_endpoints), buf_size=500), batch_size=2), feeding={'x': 0, 'y': 1}, event_handler=event_handler, num_passes=30)
def main(): # init paddle.init() # network config x = paddle.layer.data(name='x', type=paddle.data_type.dense_vector(13)) y_predict = paddle.layer.fc(input=x, param_attr=paddle.attr.Param(name='w', learning_rate=1e-3), size=1, act=paddle.activation.Linear(), bias_attr=paddle.attr.Param(name='b', learning_rate=1e-3)) y = paddle.layer.data(name='y', type=paddle.data_type.dense_vector(1)) cost = paddle.layer.square_error_cost(input=y_predict, label=y) # create parameters parameters = paddle.parameters.create(cost) # create optimizer optimizer = paddle.optimizer.Momentum(momentum=0, learning_rate=2e-4) trainer = paddle.trainer.SGD( cost=cost, parameters=parameters, update_equation=optimizer, is_local=False, pserver_spec=etcd_endpoint, use_etcd=True) feeding = {'x': 0, 'y': 1} # event_handler to print training and testing info def event_handler(event): if isinstance(event, paddle.event.EndIteration): if event.batch_id % 100 == 0: print "Pass %d, Batch %d, Cost %f" % ( event.pass_id, event.batch_id, event.cost) if isinstance(event, paddle.event.EndPass): result = trainer.test( reader=paddle.batch(uci_housing.test(), batch_size=2), feeding=feeding) print "Test %d, Cost %f" % (event.pass_id, result.cost) if trainer_id == "0": with gzip.open("fit-a-line_pass_%05d.tar.gz" % event.pass_id, "w") as f: parameters.to_tar(f) # training trainer.train( reader=paddle.batch( paddle.reader.shuffle(cloud_reader( ["/workspace/data/uci_housing/uci_housing_train-*"], etcd_endpoint), buf_size=500), batch_size=2), feeding=feeding, event_handler=event_handler, num_passes=30)
def main(): etcd_ip = os.getenv("ETCD_IP") etcd_endpoint = "http://" + etcd_ip + ":" + "2379" paddle.init(trainer_count=1) # define network topology images = paddle.layer.data(name='pixel', type=paddle.data_type.dense_vector(784)) label = paddle.layer.data(name='label', type=paddle.data_type.integer_value(10)) # Here we can build the prediction network in different ways. Please # choose one by uncomment corresponding line. # predict = softmax_regression(images) # predict = multilayer_perceptron(images) predict = convolutional_neural_network(images) cost = paddle.layer.classification_cost(input=predict, label=label) parameters = paddle.parameters.create(cost) optimizer = paddle.optimizer.Momentum( learning_rate=0.1 / 128.0, momentum=0.9, regularization=paddle.optimizer.L2Regularization(rate=0.0005 * 128)) trainer = paddle.trainer.SGD(cost=cost, parameters=parameters, update_equation=optimizer, is_local=False, pserver_spec=etcd_endpoint, use_etcd=True) def event_handler(event): if isinstance(event, paddle.event.EndIteration): if event.batch_id % 100 == 0: print "Pass %d, Batch %d, Cost %f, %s" % ( event.pass_id, event.batch_id, event.cost, event.metrics) if isinstance(event, paddle.event.EndPass): result = trainer.test( reader=paddle.batch(paddle.dataset.mnist.test(), batch_size=2)) print "Test with Pass %d, Cost %f, %s\n" % ( event.pass_id, result.cost, result.metrics) trainer.train(reader=paddle.batch(cloud_reader([DATASET_PATH], etcd_endpoint), batch_size=10), event_handler=event_handler, num_passes=120)
def main(): paddle.init() # define network topology feature_out = db_lstm() target = paddle.layer.data(name='target', type=d_type(label_dict_len)) crf_cost = paddle.layer.crf(size=label_dict_len, input=feature_out, label=target, param_attr=paddle.attr.Param( name='crfw', initial_std=default_std, learning_rate=mix_hidden_lr)) crf_dec = paddle.layer.crf_decoding( size=label_dict_len, input=feature_out, label=target, param_attr=paddle.attr.Param(name='crfw')) evaluator.sum(input=crf_dec) # create parameters parameters = paddle.parameters.create(crf_cost) parameters.set('emb', load_parameter(conll05.get_embedding(), 44068, 32)) # create optimizer optimizer = paddle.optimizer.Momentum( momentum=0, learning_rate=2e-2, regularization=paddle.optimizer.L2Regularization(rate=8e-4), model_average=paddle.optimizer.ModelAverage(average_window=0.5, max_average_window=10000), ) trainer = paddle.trainer.SGD(cost=crf_cost, parameters=parameters, update_equation=optimizer, extra_layers=crf_dec) reader = paddle.batch(paddle.reader.shuffle(cloud_reader( ["/pfs/dlnel/public/dataset/conll05/conl105_train-*"], etcd_endpoint), buf_size=8192), batch_size=10) feeding = { 'word_data': 0, 'ctx_n2_data': 1, 'ctx_n1_data': 2, 'ctx_0_data': 3, 'ctx_p1_data': 4, 'ctx_p2_data': 5, 'verb_data': 6, 'mark_data': 7, 'target': 8 } def event_handler(event): if isinstance(event, paddle.event.EndIteration): if event.batch_id % 100 == 0: print "Pass %d, Batch %d, Cost %f, %s" % ( event.pass_id, event.batch_id, event.cost, event.metrics) if event.batch_id % 1000 == 0: result = trainer.test(reader=reader, feeding=feeding) print "\nTest with Pass %d, Batch %d, %s" % ( event.pass_id, event.batch_id, result.metrics) if isinstance(event, paddle.event.EndPass): # save parameters with open('params_pass_%d.tar' % event.pass_id, 'w') as f: parameters.to_tar(f) result = trainer.test(reader=paddle.batch(conll05.test(), 10), feeding=feeding) print "\nTest with Pass %d, %s" % (event.pass_id, result.metrics) trainer.train(reader=reader, event_handler=event_handler, num_passes=1, feeding=feeding) test_creator = paddle.dataset.conll05.test() test_data = [] for item in test_creator(): test_data.append(item[0:8]) if len(test_data) == 1: break predict = paddle.layer.crf_decoding( size=label_dict_len, input=feature_out, param_attr=paddle.attr.Param(name='crfw')) probs = paddle.infer(output_layer=predict, parameters=parameters, input=test_data, feeding=feeding, field='id') assert len(probs) == len(test_data[0][0]) labels_reverse = {} for (k, v) in label_dict.items(): labels_reverse[v] = k pre_lab = [labels_reverse[i] for i in probs] print pre_lab
def main(): paddle.init() usr_combined_features = get_usr_combined_features() mov_combined_features = get_mov_combined_features() inference = paddle.layer.cos_sim(a=usr_combined_features, b=mov_combined_features, size=1, scale=5) cost = paddle.layer.square_error_cost( input=inference, label=paddle.layer.data(name='score', type=paddle.data_type.dense_vector(1))) parameters = paddle.parameters.create(cost) trainer = paddle.trainer.SGD( cost=cost, parameters=parameters, update_equation=paddle.optimizer.Adam(learning_rate=1e-4)) feeding = { 'user_id': 0, 'gender_id': 1, 'age_id': 2, 'job_id': 3, 'movie_id': 4, 'category_id': 5, 'movie_title': 6, 'score': 7 } def event_handler(event): if isinstance(event, paddle.event.EndIteration): if event.batch_id % 100 == 0: print "Pass %d Batch %d Cost %.2f" % ( event.pass_id, event.batch_id, event.cost) trainer.train(reader=paddle.batch(paddle.reader.shuffle( cloud_reader(["/pfs/dlnel/public/dataset/movielens/movielens_train-*"], etcd_endpoint), buf_size=8192), batch_size=256), event_handler=event_handler, feeding=feeding, num_passes=1) user_id = 234 movie_id = 345 user = paddle.dataset.movielens.user_info()[user_id] movie = paddle.dataset.movielens.movie_info()[movie_id] feature = user.value() + movie.value() infer_dict = copy.copy(feeding) del infer_dict['score'] prediction = paddle.infer(output_layer=inference, parameters=parameters, input=[feature], feeding=infer_dict) print(prediction + 5) / 2
def main(): datadim = 3 * 32 * 32 classdim = 10 # PaddlePaddle init paddle.init(use_gpu=with_gpu, trainer_count=1) image = paddle.layer.data(name="image", type=paddle.data_type.dense_vector(datadim)) # Add neural network config # option 1. resnet # net = resnet_cifar10(image, depth=32) # option 2. vgg net = vgg_bn_drop(image) out = paddle.layer.fc(input=net, size=classdim, act=paddle.activation.Softmax()) lbl = paddle.layer.data(name="label", type=paddle.data_type.integer_value(classdim)) cost = paddle.layer.classification_cost(input=out, label=lbl) # Create parameters parameters = paddle.parameters.create(cost) # Create optimizer momentum_optimizer = paddle.optimizer.Momentum( momentum=0.9, regularization=paddle.optimizer.L2Regularization(rate=0.0002 * 128), learning_rate=0.1 / 128.0, learning_rate_decay_a=0.1, learning_rate_decay_b=50000 * 100, learning_rate_schedule='discexp') feeding = {'image': 0, 'label': 1} train_reader = paddle.batch(paddle.reader.shuffle(cloud_reader( [cifar_train10_path], etcd_endpoint), buf_size=50000), batch_size=128) # End batch and end pass event handler def event_handler(event): if isinstance(event, paddle.event.EndIteration): if event.batch_id % 100 == 0: print "\nPass %d, Batch %d, Cost %f, %s" % ( event.pass_id, event.batch_id, event.cost, event.metrics) else: sys.stdout.write('.') sys.stdout.flush() if isinstance(event, paddle.event.EndPass): # save parameters with open('params_pass_%d.tar' % event.pass_id, 'w') as f: parameters.to_tar(f) result = trainer.test(reader=paddle.batch( paddle.dataset.cifar.test10(), batch_size=128), feeding=feeding) print "\nTest with Pass %d, %s" % (event.pass_id, result.metrics) # Create trainer trainer = paddle.trainer.SGD(cost=cost, parameters=parameters, update_equation=momentum_optimizer, is_local=False, pserver_spec=etcd_endpoint, use_etcd=True) # Save the inference topology to protobuf. inference_topology = paddle.topology.Topology(layers=out) with open("inference_topology.pkl", 'wb') as f: inference_topology.serialize_for_inference(f) trainer.train(reader=train_reader, num_passes=1, event_handler=event_handler, feeding=feeding) # inference from PIL import Image import numpy as np import os def load_image(file): im = Image.open(file) im = im.resize((32, 32), Image.ANTIALIAS) im = np.array(im).astype(np.float32) # The storage order of the loaded image is W(widht), # H(height), C(channel). PaddlePaddle requires # the CHW order, so transpose them. im = im.transpose((2, 0, 1)) # CHW # In the training phase, the channel order of CIFAR # image is B(Blue), G(green), R(Red). But PIL open # image in RGB mode. It must swap the channel order. im = im[(2, 1, 0), :, :] # BGR im = im.flatten() im = im / 255.0 return im test_data = [] test_data.append((load_image(testing_image_path), )) # users can remove the comments and change the model name # with open('params_pass_50.tar', 'r') as f: # parameters = paddle.parameters.Parameters.from_tar(f) probs = paddle.infer(output_layer=out, parameters=parameters, input=test_data, feeding=feeding) lab = np.argsort(-probs) # probs and lab are the results of one batch data print "Label of image/dog.png is: %d" % lab[0][0]