【发布时间】:2017-07-20 19:11:59
【问题描述】:
在我当前的项目中,我每 100 个迭代步骤训练一个模型并保存检查点。检查点文件都保存在同一目录中(model.ckpt-100、model.ckpt-200、model.ckpt-300 等)。之后,我想根据所有已保存检查点的验证数据来评估模型,而不仅仅是最新的检查点。
目前我用于恢复检查点文件的代码如下所示:
ckpt = tf.train.get_checkpoint_state(FLAGS.checkpoint_dir)
ckpt_list = saver.last_checkpoints
print(ckpt_list)
if ckpt and ckpt.model_checkpoint_path:
print("Reading model parameters from %s" % ckpt.model_checkpoint_path)
saver.restore(sess, ckpt.model_checkpoint_path)
# extract global_step from it.
global_step = ckpt.model_checkpoint_path.split('/')[-1].split('-')[-1]
print('Succesfully loaded model from %s at step=%s.' %
(ckpt.model_checkpoint_path, global_step))
else:
print('No checkpoint file found')
return
但是,这只会恢复最新保存的检查点文件。那么如何在所有保存的检查点文件上编写一个循环呢?我尝试使用 saver.last_checkpoints 获取检查点文件的列表,但是返回的列表为空。
任何帮助将不胜感激,在此先感谢!
【问题讨论】:
-
如何准确保存模型?您是自己建立输出文件的名称,还是在调用
saver.save(..)时使用global_step参数?
标签: python tensorflow