【问题标题】:Load / restore models into tensorflow at specific iteration or checkpoint在特定迭代或检查点将模型加载/恢复到 tensorflow
【发布时间】:2017-01-04 03:01:33
【问题描述】:

我有一个模型,每 10 次迭代就保存一次。所以,我保存的目录中有以下文件。

checkpoint  model-50.data-00000-of-00001  model-50.index  model-50.meta
model-60.data-00000-of-00001  model-60.index  model-60.meta

等等,直到 100 。我只需要加载model-50。因为我有 70 次迭代后的 NaN 值。默认情况下,当我恢复保护程序时,将查找最终检查点。那么,我该如何专门加载model-50。请帮忙,否则,我必须从头开始运行模型增益,这很耗时。

【问题讨论】:

  • 我认为你可以手动编辑checkpoint 作为一个非常粗糙的黑客
  • @martianwars - 你能说得更具体些吗?
  • 我的意思是保存目录中的文件checkpoint
  • 应该有更好的方法来做到这一点。让我们等一天(我也会在当天晚些时候查看)。如果没有答案,我会写这个作为答案
  • @martianwars - 太棒了

标签: python tensorflow restore


【解决方案1】:

由于您正在使用tf.train.Saver 的函数restore(),您可以使用last_checkpoints 函数来获取所有可用检查点的列表。您将在此列表中同时看到 model-50model-60

选择正确的模型,像这样直接传递给restore()

saver.restore(sess, ckpt_path)

【讨论】:

    【解决方案2】:

    我不确定过去是否有所不同,但至少到目前为止,您可以使用 tf.train.get_checkpoint_state() 获取包含 all_model_checkpoint_paths 的 CheckpointState proto。

    【讨论】:

      【解决方案3】:

      当您执行大多数关于保存/恢复模型saver.restore(sess, tf.train.latest_checkpoint(_dir_models)) 的教程中显示的命令时,您传递的第二个参数只是模型路径的字符串。这是在saver.restore 文档中定义的。

      save_path:之前保存参数的路径。

      因此,您可以在那里设置任何字符串的路径,而 latest_checkpoint 只是一个方便的函数,可以从 checkpoint 文件中提取此路径。在笔记本中打开此文件,您将看到所有可用的模型路径以及最新的路径。

      您可以将该路径替换为您想要的任何路径。您可以从该文件中获取它(手动打开它或使用 get_checkpoin_state 以编程方式为您完成。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2017-11-27
        • 2018-04-05
        • 1970-01-01
        • 2018-02-16
        • 2019-08-28
        • 2018-10-10
        • 2021-04-21
        • 1970-01-01
        相关资源
        最近更新 更多