1

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

4

2 回答 2

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):
      # ...
    
于 2017-03-11T18:32:46.557 回答
0

谢谢!这解决了我的问题: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)

于 2017-03-11T19:27:24.713 回答