diff --git a/01.fit_a_line/train.py b/01.fit_a_line/train.py index 79a320fcb1d7fdef53a2254dfdb5d0317227cb2b..38f267aaedfab98db9451de577ba9a33a91e0262 100644 --- a/01.fit_a_line/train.py +++ b/01.fit_a_line/train.py @@ -41,7 +41,7 @@ def main(): if isinstance(event, paddle.event.EndPass): if event.pass_id % 10 == 0: with open('params_pass_%d.tar' % event.pass_id, 'w') as f: - parameters.to_tar(f) + trainer.save_parameter_to_tar(f) result = trainer.test( reader=paddle.batch(uci_housing.test(), batch_size=2), feeding=feeding) diff --git a/02.recognize_digits/train.py b/02.recognize_digits/train.py index f71eea3e4739ab6dfb1bee5c4205d605a9a4c0ba..536ff0a0d64f168b0786956b93b422f702b4af8d 100644 --- a/02.recognize_digits/train.py +++ b/02.recognize_digits/train.py @@ -87,7 +87,7 @@ def main(): if isinstance(event, paddle.event.EndPass): # save parameters with open('params_pass_%d.tar' % event.pass_id, 'w') as f: - parameters.to_tar(f) + trainer.save_parameter_to_tar(f) result = trainer.test(reader=paddle.batch( paddle.dataset.mnist.test(), batch_size=128)) diff --git a/03.image_classification/train.py b/03.image_classification/train.py index e6caf7dc9bf3f8420b60d84407d27160fde81708..faafc7ff5038cd8b40944d7742a4d1612468f80b 100644 --- a/03.image_classification/train.py +++ b/03.image_classification/train.py @@ -57,6 +57,10 @@ def main(): learning_rate_decay_b=50000 * 100, learning_rate_schedule='discexp') + # Create trainer + trainer = paddle.trainer.SGD( + cost=cost, parameters=parameters, update_equation=momentum_optimizer) + # End batch and end pass event handler def event_handler(event): if isinstance(event, paddle.event.EndIteration): @@ -69,7 +73,7 @@ def main(): if isinstance(event, paddle.event.EndPass): # save parameters with open('params_pass_%d.tar' % event.pass_id, 'w') as f: - parameters.to_tar(f) + trainer.save_parameter_to_tar(f) result = trainer.test( reader=paddle.batch( @@ -78,10 +82,6 @@ def main(): 'label': 1}) 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) - # Save the inference topology to protobuf. inference_topology = paddle.topology.Topology(layers=out) with open("inference_topology.pkl", 'wb') as f: diff --git a/04.word2vec/train.py b/04.word2vec/train.py index 6940c6eebfc9a5dca1af9deef9f8f93ac90f1635..2c1ca80c7fab2d86e3598eaa401d9f671ad15be8 100644 --- a/04.word2vec/train.py +++ b/04.word2vec/train.py @@ -76,6 +76,14 @@ def main(): bias_attr=paddle.attr.Param(learning_rate=2), act=paddle.activation.Softmax()) + + cost = paddle.layer.classification_cost(input=predictword, label=nextword) + parameters = paddle.parameters.create(cost) + adagrad = paddle.optimizer.AdaGrad( + learning_rate=3e-3, + regularization=paddle.optimizer.L2Regularization(8e-4)) + trainer = paddle.trainer.SGD(cost, parameters, adagrad) + def event_handler(event): if isinstance(event, paddle.event.EndIteration): if event.batch_id % 100 == 0: @@ -88,14 +96,7 @@ def main(): print "Pass %d, Testing metrics %s" % (event.pass_id, result.metrics) with open("model_%d.tar" % event.pass_id, 'w') as f: - parameters.to_tar(f) - - cost = paddle.layer.classification_cost(input=predictword, label=nextword) - parameters = paddle.parameters.create(cost) - adagrad = paddle.optimizer.AdaGrad( - learning_rate=3e-3, - regularization=paddle.optimizer.L2Regularization(8e-4)) - trainer = paddle.trainer.SGD(cost, parameters, adagrad) + trainer.save_parameter_to_tar(f) trainer.train( paddle.batch(paddle.dataset.imikolov.train(word_dict, N), 32), num_passes=100, diff --git a/06.understand_sentiment/train.py b/06.understand_sentiment/train.py index b55506f07d28711ec6ef70eef177745f2d26c01d..6c844a098083bc60171c28cf2eaf5b5386f45eaa 100644 --- a/06.understand_sentiment/train.py +++ b/06.understand_sentiment/train.py @@ -129,6 +129,10 @@ if __name__ == '__main__': regularization=paddle.optimizer.L2Regularization(rate=8e-4), model_average=paddle.optimizer.ModelAverage(average_window=0.5)) + # create trainer + trainer = paddle.trainer.SGD( + cost=cost, parameters=parameters, update_equation=adam_optimizer) + # End batch and end pass event handler def event_handler(event): if isinstance(event, paddle.event.EndIteration): @@ -140,14 +144,11 @@ if __name__ == '__main__': sys.stdout.flush() if isinstance(event, paddle.event.EndPass): with open('./params_pass_%d.tar' % event.pass_id, 'w') as f: - parameters.to_tar(f) + trainer.save_parameter_to_tar(f) result = trainer.test(reader=test_reader, 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=adam_optimizer) # Save the inference topology to protobuf. inference_topology = paddle.topology.Topology(layers=output) with open("./inference_topology.pkl", 'wb') as f: diff --git a/07.label_semantic_roles/train.py b/07.label_semantic_roles/train.py index ba86abcd1dff2d90e033c857fd73f4d7e13b041e..d7ca2d097033b0e9b957b5803f8193793794611a 100644 --- a/07.label_semantic_roles/train.py +++ b/07.label_semantic_roles/train.py @@ -188,7 +188,7 @@ def main(): if isinstance(event, paddle.event.EndPass): # save parameters with open('params_pass_%d.tar' % event.pass_id, 'w') as f: - parameters.to_tar(f) + trainer.save_parameter_to_tar(f) result = trainer.test(reader=test_reader, feeding=feeding) print "\nTest with Pass %d, %s" % (event.pass_id, result.metrics) diff --git a/08.machine_translation/train.py b/08.machine_translation/train.py index 79e5861e753d0eea7db6b16bbae72fce05c97bfd..30817328f3dd4eaab0aa3f2514ec94a9489ac110 100644 --- a/08.machine_translation/train.py +++ b/08.machine_translation/train.py @@ -5,9 +5,9 @@ import paddle.v2 as paddle with_gpu = os.getenv('WITH_GPU', '0') != '0' -def save_model(parameters, save_path): +def save_model(trainer, parameters, save_path): with open(save_path, 'w') as f: - parameters.to_tar(f) + trainer.save_parameter_to_tar(f) def seq_to_seq_net(source_dict_dim, @@ -175,12 +175,12 @@ def main(): if not event.batch_id % 10: save_path = 'params_pass_%05d_batch_%05d.tar' % ( event.pass_id, event.batch_id) - save_model(parameters, save_path) + save_model(trainer, parameters, save_path) if isinstance(event, paddle.event.EndPass): # save parameters save_path = 'params_pass_%05d.tar' % (event.pass_id) - save_model(parameters, save_path) + save_model(trainer, parameters, save_path) # start to train trainer.train(