【发布时间】:2017-03-11 17:24:03
【问题描述】:
如何在 tensorflow 中指定 2 个连续检查点之间的间隔? tf.train.Saver 中没有选项可以指定。每次,我用不同数量的全局步骤运行模型,我都会在检查点之间获得一个新的间隔
【问题讨论】:
标签: tensorflow checkpoint
如何在 tensorflow 中指定 2 个连续检查点之间的间隔? tf.train.Saver 中没有选项可以指定。每次,我用不同数量的全局步骤运行模型,我都会在检查点之间获得一个新的间隔
【问题讨论】:
标签: tensorflow checkpoint
tf.train.Saver 是用于编写检查点的“被动”实用程序,它仅在其他代码调用其.save() 方法时才编写检查点。因此,检查点的写入速度取决于您用于训练模型的框架:
如果您使用低级 TensorFlow API (tf.Session) 并编写自己的训练循环,则只需在自己的代码中插入对 Saver.save() 的调用即可。一种常见的方法是根据迭代次数来执行此操作:
for i in range(NUM_ITERATIONS):
sess.run(train_op)
# ...
if i % 1000 == 0:
saver.save(sess, ...) # Write a checkpoint every 1000 steps.
如果您使用为您编写检查点的tf.train.MonitoredTrainingSession,您可以在构造函数中指定检查点间隔(以秒为单位)。默认情况下,它每 10 分钟保存一个检查点。要将其更改为每分钟,您可以:
with tf.train.MonitoredTrainingSession(..., save_checkpoint_secs=60):
# ...
【讨论】:
谢谢!
这解决了我的问题:
tf.contrib.slim.learning.train(
火车操作,
检查点目录,
log_every_n_steps=args.log_every_n_steps,
图=g,
global_step=model.global_step,
number_of_steps=args.number_of_steps,
init_fn=model.init_fn,
save_summaries_secs=300,
save_interval_secs=300,
saver=saver)
【讨论】: