9

这个问题是在保存和恢复文档可用之前提出的。现在我认为这个问题已被弃用,并说人们要依赖有关保存和恢复的官方文档

老问题的要点:

我让TFCIFAR 教程中运行良好。我已更改代码以将train_dir(带有检查点和模型的目录)保存到已知位置。

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

4

4 回答 4

14

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.

Saver Usage

于 2015-11-13T10:37:26.100 回答
2

正如 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)

这将加载您上次保存的模型,并且仅从那里进行训练(如果需要)。

于 2019-06-06T05:36:28.403 回答
2

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

要记住的事情:

  1. 确保您正在保存检查点。在 tf.train.saver() 中,您可以指定要保留的 max_checkpoints。
  2. 在 tf.train.MonitoredTrainingSession( checkpoint='dir_path',save_checkpoint_secs= ) 中指定检查点的目录。基于save_checkpoint_secs参数,上述会话将继续保存和更新检查点。
  3. 当您不断保存检查点时,上述功能会查找最新的检查点并从那里恢复训练。
于 2019-02-13T18:55:47.510 回答
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.删除文件,然后删除事件文件(如果存在),然后您可以运行您的培训。训练将从模型文件夹中存在的最后一个最佳保存模型开始。如果模型文件不存在,则从头开始训练。

于 2021-04-07T04:13:02.447 回答