如何在Tensorflow中暂停/恢复培训
此问题是在保存和还原文档可用之前提出的。 现在,我会考虑这个问题,并称人们依赖于官方文件 旧问题的要点: 我得到了TF为公司工作得很好。我变了 保存如何在Tensorflow中暂停/恢复培训,tensorflow,Tensorflow,此问题是在保存和还原文档可用之前提出的。 现在,我会考虑这个问题,并称人们依赖于官方文件 旧问题的要点: 我得到了TF为公司工作得很好。我变了 保存列车目录的代码(带有检查点和 模型)到一个已知的位置 这就引出了我的问题:我如何暂停并继续一些 使用TF进行培训 TensorFlow使用类似于图形的计算、节点(OP)和边(变量又称状态),它为其变量提供了一个保护程序 因此,由于它是分布式计算,您可以在一台计算机/处理器中运行图形的一部分,而在另一台计算机/处理器中运行其余部分,同时您可以保存状态(
列车目录的代码(带有检查点和
模型)到一个已知的位置
这就引出了我的问题:我如何暂停并继续一些
使用TF进行培训
TensorFlow使用类似于图形的计算、节点(OP)和边(变量又称状态),它为其变量提供了一个保护程序
因此,由于它是分布式计算,您可以在一台计算机/处理器中运行图形的一部分,而在另一台计算机/处理器中运行其余部分,同时您可以保存状态(VAR),并在下次继续工作时提供它
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)
还原保存的VAR
使用tf.train.MonitoredTrainingSession()帮助我在机器重新启动时恢复训练。
要记住的事情:
确保您正在保存检查点。在tf.train.saver()中,可以指定要保留的最大检查点
指定tf.train.MonitoredTrainingSession(checkpoint='dir\u path',save\u checkpoint\u secs=)中检查点的目录。
基于save_checkpoint_secs参数,上述会话将继续保存和更新检查点
当您不断保存检查点时,上述函数将查找最新的检查点并从那里恢复培训
正如哈米德所描述的,在tensorflow上执行此操作的正确方法是
saver=tf.train.Saver()
save_path='checkpoints/'
-----> while training you can store using
saver.save(sess=session,save_path=save_path)
-----> and restore
saver.restore(sess=session,save_path=save_path)
这将加载上次保存模型的位置,并仅从那里加载培训(如果需要)。1.打开检查点文件并从中删除不需要的模型。
2.将model\u checkpoint\u 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.同时删除文件,然后删除事件文件(如果存在),然后您可以运行培训。
培训将从模型文件夹中存在的最后一个最佳保存模型开始。如果不存在模型文件,培训将从开始开始。使用此命令tf.train.Saver.restore(sess,save_path)将导致错误,因为还原方法需要一个Saver实例。