如何指定张量流中两个连续检查点之间的间隔?没有选项tf.train.Saver
可以指定。每次,我用不同数量的全局步骤运行模型,我都会在检查点之间获得一个新的间隔
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): # ...
谢谢!这解决了我的问题:tf.contrib.slim.learning.train(train_op, checkpoint_dir, log_every_n_steps=args.log_every_n_steps, graph=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)