From 4a4afde93a5095557bbc1fedb88d2d6e946b00fa Mon Sep 17 00:00:00 2001 From: Peng Li Date: Wed, 18 Oct 2017 15:17:56 +0800 Subject: [PATCH] fix bug in saving model (invoke the wrong function) --- ctr/train.py | 2 +- deep_speech_2/model_utils/model.py | 4 ++-- dssm/train.py | 2 +- generate_chinese_poetry/train.py | 8 ++++---- generate_sequence_by_rnn_lm/train.py | 4 ++-- globally_normalized_reader/train.py | 8 ++++---- hsigmoid/train.py | 14 +++++++------- image_classification/train.py | 18 +++++++++--------- ltr/lambda_rank.py | 2 +- ltr/ranknet.py | 2 +- mt_with_external_memory/train.py | 4 ++-- nce_cost/train.py | 2 +- nested_sequence/text_classification/train.py | 2 +- nmt_without_attention/train.py | 2 +- scheduled_sampling/scheduled_sampling.py | 2 +- sequence_tagging_for_ner/train.py | 2 +- ssd/train.py | 2 +- text_classification/train.py | 2 +- 18 files changed, 41 insertions(+), 41 deletions(-) diff --git a/ctr/train.py b/ctr/train.py index 235e6fa59b..421425e2a7 100644 --- a/ctr/train.py +++ b/ctr/train.py @@ -95,7 +95,7 @@ def __event_handler__(event): args.model_output_prefix, event.pass_id, event.batch_id, result.cost) with gzip.open(path, 'w') as f: - params.to_tar(f) + trainer.save_parameter_to_tar(f) trainer.train( reader=paddle.batch( diff --git a/deep_speech_2/model_utils/model.py b/deep_speech_2/model_utils/model.py index 123eed9b42..5a0d8890da 100644 --- a/deep_speech_2/model_utils/model.py +++ b/deep_speech_2/model_utils/model.py @@ -111,7 +111,7 @@ def event_handler(event): output_model_path = os.path.join(output_model_dir, "params.latest.tar.gz") with gzip.open(output_model_path, 'w') as f: - self._parameters.to_tar(f) + trainer.save_parameter_to_tar(f) print("\nPass: %d, Batch: %d, TrainCost: %f" % (event.pass_id, event.batch_id + 1, cost_sum / cost_counter)) @@ -136,7 +136,7 @@ def event_handler(event): output_model_path = os.path.join( output_model_dir, "params.pass-%d.tar.gz" % event.pass_id) with gzip.open(output_model_path, 'w') as f: - self._parameters.to_tar(f) + trainer.save_parameter_to_tar(f) # run train trainer.train( diff --git a/dssm/train.py b/dssm/train.py index 98e7f32101..bc7685ab96 100644 --- a/dssm/train.py +++ b/dssm/train.py @@ -237,7 +237,7 @@ def _event_handler(event): with open("%sdssm_%s_pass_%05d.tar" % (args.model_output_prefix, model_desc, event.pass_id), "w") as f: - parameters.to_tar(f) + trainer.save_parameter_to_tar(f) trainer.train( reader=train_reader, diff --git a/generate_chinese_poetry/train.py b/generate_chinese_poetry/train.py index a641efa59a..c6eb737b01 100755 --- a/generate_chinese_poetry/train.py +++ b/generate_chinese_poetry/train.py @@ -12,9 +12,9 @@ logger.setLevel(logging.INFO) -def save_model(save_path, parameters): +def save_model(trainer, save_path, parameters): with gzip.open(save_path, "w") as f: - parameters.to_tar(f) + trainer.save_parameter_to_tar(f) def load_initial_model(model_path, parameters): @@ -111,7 +111,7 @@ def event_handler(event): save_path = os.path.join(save_dir_path, "pass_%05d_batch_%05d.tar.gz" % (event.pass_id, event.batch_id)) - save_model(save_path, parameters) + save_model(trainer, save_path, parameters) if not event.batch_id % 5: logger.info("Pass %d, Batch %d, Cost %f, %s" % ( @@ -120,7 +120,7 @@ def event_handler(event): if isinstance(event, paddle.event.EndPass): save_path = os.path.join(save_dir_path, "pass_%05d.tar.gz" % event.pass_id) - save_model(save_path, parameters) + save_model(trainer, save_path, parameters) # start training trainer.train( diff --git a/generate_sequence_by_rnn_lm/train.py b/generate_sequence_by_rnn_lm/train.py index 00e8ffa742..ab6219ec68 100644 --- a/generate_sequence_by_rnn_lm/train.py +++ b/generate_sequence_by_rnn_lm/train.py @@ -60,7 +60,7 @@ def event_handler(event): "rnn_lm_pass_%05d_batch_%03d.tar.gz" % (event.pass_id, event.batch_id)) with gzip.open(save_name, "w") as f: - parameters.to_tar(f) + trainer.save_parameter_to_tar(f) if isinstance(event, paddle.event.EndPass): if test_reader is not None: @@ -70,7 +70,7 @@ def event_handler(event): save_name = os.path.join(model_save_dir, "rnn_lm_pass_%05d.tar.gz" % (event.pass_id)) with gzip.open(save_name, "w") as f: - parameters.to_tar(f) + trainer.save_parameter_to_tar(f) logger.info("start training...") trainer.train( diff --git a/globally_normalized_reader/train.py b/globally_normalized_reader/train.py index b06b9720ad..b0e6ca6d9f 100644 --- a/globally_normalized_reader/train.py +++ b/globally_normalized_reader/train.py @@ -43,7 +43,7 @@ def load_pretrained_parameters(path): return np.load(path) -def save_model(save_path, parameters): +def save_model(trainer, save_path, parameters): """ Save the trained parameters. Arguments: @@ -51,7 +51,7 @@ def save_model(save_path, parameters): - parameters: The trained model parameters. """ with gzip.open(save_path, "w") as f: - parameters.to_tar(f) + trainer.save_parameter_to_tar(f) def show_parameter_init_info(parameters): @@ -161,7 +161,7 @@ def event_handler(event): if event.batch_id and not event.batch_id % config.checkpoint_period: save_path = os.path.join(config.save_dir, "checkpoint_param.latest.tar.gz") - save_model(save_path, parameters) + save_model(trainer, save_path, parameters) if not event.batch_id % config.log_period: logger.info("Pass %d, Batch %d, Cost %f" % @@ -170,7 +170,7 @@ def event_handler(event): if isinstance(event, paddle.event.EndPass): save_path = os.path.join(config.save_dir, "pass_%05d.tar.gz" % event.pass_id) - save_model(save_path, parameters) + save_model(trainer, save_path, parameters) return event_handler diff --git a/hsigmoid/train.py b/hsigmoid/train.py index 1763772e79..b78a6bfe4c 100644 --- a/hsigmoid/train.py +++ b/hsigmoid/train.py @@ -18,13 +18,19 @@ def main(save_dir="models"): dict_size = len(word_dict) cost = ngram_lm(hidden_size=256, embed_size=32, dict_size=dict_size) + parameters = paddle.parameters.create(cost) + adam_optimizer = paddle.optimizer.Adam( + learning_rate=3e-3, + regularization=paddle.optimizer.L2Regularization(8e-4)) + trainer = paddle.trainer.SGD(cost, parameters, adam_optimizer) + def event_handler(event): if isinstance(event, paddle.event.EndPass): model_name = os.path.join(save_dir, "hsigmoid_pass_%05d.tar.gz" % event.pass_id) logger.info("Save model into %s ..." % model_name) with gzip.open(model_name, "w") as f: - parameters.to_tar(f) + trainer.save_parameter_to_tar(f) if isinstance(event, paddle.event.EndIteration): if event.batch_id and event.batch_id % 10 == 0: @@ -35,12 +41,6 @@ def event_handler(event): "Pass %d, Batch %d, Cost %f, Test Cost %f" % (event.pass_id, event.batch_id, event.cost, result.cost)) - parameters = paddle.parameters.create(cost) - adam_optimizer = paddle.optimizer.Adam( - learning_rate=3e-3, - regularization=paddle.optimizer.L2Regularization(8e-4)) - trainer = paddle.trainer.SGD(cost, parameters, adam_optimizer) - trainer.train( paddle.batch( paddle.reader.shuffle( diff --git a/image_classification/train.py b/image_classification/train.py index 37f5deec28..12a582db3a 100644 --- a/image_classification/train.py +++ b/image_classification/train.py @@ -81,6 +81,13 @@ def main(): # reader.test_reader('val.list'), batch_size=BATCH_SIZE) + # Create trainer + trainer = paddle.trainer.SGD( + cost=cost, + parameters=parameters, + update_equation=optimizer, + extra_layers=extra_layers) + # End batch and end pass event handler def event_handler(event): if isinstance(event, paddle.event.EndIteration): @@ -89,21 +96,14 @@ def event_handler(event): event.pass_id, event.batch_id, event.cost, event.metrics) if isinstance(event, paddle.event.EndPass): with gzip.open('params_pass_%d.tar.gz' % event.pass_id, 'w') as f: - parameters.to_tar(f) + trainer.save_parameter_to_tar(f) result = trainer.test(reader=test_reader) print "\nTest with Pass %d, %s" % (event.pass_id, result.metrics) - # Create trainer - trainer = paddle.trainer.SGD( - cost=cost, - parameters=parameters, - update_equation=optimizer, - extra_layers=extra_layers) - trainer.train( reader=train_reader, num_passes=200, event_handler=event_handler) if __name__ == '__main__': - main() \ No newline at end of file + main() diff --git a/ltr/lambda_rank.py b/ltr/lambda_rank.py index fb527ed3d0..fade0ac7bf 100644 --- a/ltr/lambda_rank.py +++ b/ltr/lambda_rank.py @@ -82,7 +82,7 @@ def event_handler(event): print "\nTest with Pass %d, %s" % (event.pass_id, result.metrics) with gzip.open("lambda_rank_params_%d.tar.gz" % (event.pass_id), "w") as f: - parameters.to_tar(f) + trainer.save_parameter_to_tar(f) feeding = {"label": 0, "data": 1} trainer.train( diff --git a/ltr/ranknet.py b/ltr/ranknet.py index 7b45ca6560..339bb34cfb 100644 --- a/ltr/ranknet.py +++ b/ltr/ranknet.py @@ -86,7 +86,7 @@ def event_handler(event): print "\nTest with Pass %d, %s" % (event.pass_id, result.metrics) with gzip.open("ranknet_params_%d.tar.gz" % (event.pass_id), "w") as f: - parameters.to_tar(f) + trainer.save_parameter_to_tar(f) trainer.train( reader=train_reader, diff --git a/mt_with_external_memory/train.py b/mt_with_external_memory/train.py index ecb6d18331..4f413564ff 100644 --- a/mt_with_external_memory/train.py +++ b/mt_with_external_memory/train.py @@ -129,7 +129,7 @@ def event_handler(event): print "Pass: %d, Batch: %d, TrainCost: %f, %s" % ( event.pass_id, event.batch_id, event.cost, event.metrics) with gzip.open("checkpoints/params.latest.tar.gz", 'w') as f: - parameters.to_tar(f) + trainer.save_parameter_to_tar(f) else: sys.stdout.write('.') sys.stdout.flush() @@ -139,7 +139,7 @@ def event_handler(event): result.metrics) with gzip.open("checkpoints/params.pass-%d.tar.gz" % event.pass_id, 'w') as f: - parameters.to_tar(f) + trainer.save_parameter_to_tar(f) # run train if not os.path.exists('checkpoints'): diff --git a/nce_cost/train.py b/nce_cost/train.py index 9ba842141d..40d899be83 100644 --- a/nce_cost/train.py +++ b/nce_cost/train.py @@ -38,7 +38,7 @@ def event_handler(event): "model_pass_%05d.tar.gz" % event.pass_id) logger.info("Save model into %s ..." % save_path) with gzip.open(save_path, "w") as f: - parameters.to_tar(f) + trainer.save_parameter_to_tar(f) trainer.train( paddle.batch( diff --git a/nested_sequence/text_classification/train.py b/nested_sequence/text_classification/train.py index a0da1ad0c5..20ad59dd0d 100644 --- a/nested_sequence/text_classification/train.py +++ b/nested_sequence/text_classification/train.py @@ -179,7 +179,7 @@ def _event_handler(event): with gzip.open( os.path.join(model_save_dir, "params_pass_%05d.tar.gz" % event.pass_id), "w") as f: - parameters.to_tar(f) + trainer.save_parameter_to_tar(f) # begin training network trainer.train( diff --git a/nmt_without_attention/train.py b/nmt_without_attention/train.py index 15585e1897..144d61fac5 100644 --- a/nmt_without_attention/train.py +++ b/nmt_without_attention/train.py @@ -50,7 +50,7 @@ def event_handler(event): os.path.join(save_path, "nmt_without_att_%05d_batch_%05d.tar.gz" % event.pass_id, event.batch_id), "w") as f: - parameters.to_tar(f) + trainer.save_parameter_to_tar(f) if event.batch_id and not event.batch_id % 10: logger.info("Pass %d, Batch %d, Cost %f, %s" % ( diff --git a/scheduled_sampling/scheduled_sampling.py b/scheduled_sampling/scheduled_sampling.py index e2e328ea6a..9e7017806d 100644 --- a/scheduled_sampling/scheduled_sampling.py +++ b/scheduled_sampling/scheduled_sampling.py @@ -264,7 +264,7 @@ def event_handler(event): # save parameters with gzip.open('params_pass_%d.tar.gz' % event.pass_id, 'w') as f: - parameters.to_tar(f) + trainer.save_parameter_to_tar(f) # start to train trainer.train( diff --git a/sequence_tagging_for_ner/train.py b/sequence_tagging_for_ner/train.py index 5facfeda0d..398f526e25 100644 --- a/sequence_tagging_for_ner/train.py +++ b/sequence_tagging_for_ner/train.py @@ -87,7 +87,7 @@ def event_handler(event): with gzip.open( os.path.join(model_save_dir, "params_pass_%d.tar.gz" % event.pass_id), "w") as f: - parameters.to_tar(f) + trainer.save_parameter_to_tar(f) result = trainer.test(reader=test_reader, feeding=feeding) logger.info("\nTest with Pass %d, %s" % (event.pass_id, diff --git a/ssd/train.py b/ssd/train.py index 783944214b..602742b54c 100644 --- a/ssd/train.py +++ b/ssd/train.py @@ -55,7 +55,7 @@ def event_handler(event): if isinstance(event, paddle.event.EndPass): with gzip.open('checkpoints/params_pass_%05d.tar.gz' % \ event.pass_id, 'w') as f: - parameters.to_tar(f) + trainer.save_parameter_to_tar(f) result = trainer.test(reader=dev_reader, feeding=feeding) print "\nTest with Pass %d, TestCost: %f, Detection mAP=%g" % \ (event.pass_id, diff --git a/text_classification/train.py b/text_classification/train.py index 3d1a5819e3..cda04bfc6a 100644 --- a/text_classification/train.py +++ b/text_classification/train.py @@ -141,7 +141,7 @@ def _event_handler(event): with gzip.open( os.path.join(model_save_dir, "dnn_params_pass_%05d.tar.gz" % event.pass_id), "w") as f: - parameters.to_tar(f) + trainer.save_parameter_to_tar(f) trainer.train( reader=train_reader,