如何在张量流中指定2个连续检查点之间的间隔? tf.train.Saver
中没有选项来指定。每次,我使用不同数量的全局步骤运行模型,我在检查点之间获得新的间隔
答案 0 :(得分:2)
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):
# ...
答案 1 :(得分:0)
谢谢!
这解决了我的问题:
tf.contrib.slim.learning.train(
train_op,
checkpoint_dir,
log_every_n_steps = args.log_every_n_steps,
图表=克,
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,
保护程序=保护程序)