如何在Tensorflow中暂停/恢复训练

时间:2015-11-13 09:32:54

标签: tensorflow

此问题是在保存和恢复文档可用之前提出的。 现在我会考虑弃用这个问题并说人们依赖Save and Restore

上的官方文档

旧问题的要点:

  

TF 正好适用于CIFAR Tutorial。我改变了   用于保存train_dir的代码(带有检查点和目录的目录)   模型)到知道的位置。

     

这让我想到了问题:我如何暂停和恢复某些问题   训练 TF

3 个答案:

答案 0 :(得分:12)

TensorFlow使用类似图形的计算,节点(Ops)和边缘(变量又称状态),它为它的Vars提供Saver

因此,当它是分布式计算时,您可以在一台机器/处理器中运行图形的一部分而在另一台机器/处理器中运行其余部分,同时您可以保存状态(Vars)并在下次继续进行工作。

saver.save(sess, 'my-model', global_step=0) ==> filename: 'my-model-0'
...
saver.save(sess, 'my-model', global_step=1000) ==> filename: 'my-model-1000'

以后可以使用

tf.train.Saver.restore(sess, save_path)

恢复已保存的Vars。

Saver Usage

答案 1 :(得分:1)

使用tf.train.MonitoredTrainingSession()帮助我在机器重新启动时恢复训练。

要谨记的事情:

  1. 确保要保存检查点。在tf.train.saver()中,您可以指定要保留的max_checkpoints。
  2. 在tf.train.MonitoredTrainingSession( checkpoint ='dir_path',save_checkpoint_secs = )中指定检查点的目录。 根据 save_checkpoint_secs 参数,上述会话将继续保存和更新检查点。
  3. 当您不断保存上述功能的检查点时,将寻找最新的检查点并从此处继续训练。

答案 2 :(得分:0)

1.打开检查点文件并从中删除不需要的模型。 2. 将 model_checkpoint_path 设置为要继续它的最后一个最佳模型。 文件内容是这样的:

model_checkpoint_path: "model_gs_043k"
all_model_checkpoint_paths: "model_gs_041k"
all_model_checkpoint_paths: "model_gs_042k"
all_model_checkpoint_paths: "model_gs_043k"

这里,它从model_gs_043k

3. 也删除文件,然后删除事件文件(如果存在),然后您可以运行您的培训。 训练将从模型文件夹中存在的最后一个最佳保存模型开始。如果不存在模型文件,则从头开始训练。