张量流中检查点之间的间隔

时间:2017-03-11 17:24:04

标签: tensorflow checkpoint

如何在张量流中指定2个连续检查点之间的间隔? tf.train.Saver中没有选项来指定。每次,我使用不同数量的全局步骤运行模型,我在检查点之间获得新的间隔

2 个答案:

答案 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,         保护程序=保护程序)