这个问题是在保存和恢复文档可用之前提出的。现在我认为这个问题已被弃用,并说人们要依赖有关保存和恢复的官方文档
老问题的要点:
我让TF在CIFAR 教程中运行良好。我已更改代码以将
train_dir
(带有检查点和模型的目录)保存到已知位置。这让我想到了我的问题:如何暂停和恢复一些TF训练?
这个问题是在保存和恢复文档可用之前提出的。现在我认为这个问题已被弃用,并说人们要依赖有关保存和恢复的官方文档
老问题的要点:
我让TF在CIFAR 教程中运行良好。我已更改代码以将
train_dir
(带有检查点和模型的目录)保存到已知位置。这让我想到了我的问题:如何暂停和恢复一些TF训练?
TensorFlow uses Graph-like computation, Nodes(Ops) and Edges(Variables aka states) and it provide a Saver
for it's Vars.
So as it's distributed computation you can run part of a graph in one machine/processor and the rest in the other, meanwhile you can save the state(Vars) and feed it next time to continue your work.
saver.save(sess, 'my-model', global_step=0) ==> filename: 'my-model-0'
...
saver.save(sess, 'my-model', global_step=1000) ==> filename: 'my-model-1000'
which later you can use
tf.train.Saver.restore(sess, save_path)
to restore your saved Vars.
正如 Hamed 所述,在 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_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.删除文件,然后删除事件文件(如果存在),然后您可以运行您的培训。训练将从模型文件夹中存在的最后一个最佳保存模型开始。如果模型文件不存在,则从头开始训练。