【问题标题】:Why I got less than the expected number of files when saving the results from TensorFlow?从 TensorFlow 保存结果时,为什么我得到的文件数量少于预期?
【发布时间】:2019-07-25 05:30:27
【问题描述】:

我正在使用 TensorFlow 使用 Python 3.6,但问题是 saver.save 无法正常工作。 我必须将九个不同的sess 保存到九个文件model_path,但我只有五个文件,当我打印sessmodel_path 时,我得到了九个结果。

def save_models(sess, model_path):
    """ Save models to the current directory with the name filename """

    current_dir = os.path.dirname(os.path.realpath(__file__))
    model_path = os.path.join(current_dir, "model/" + model_path)
    if not os.path.exists(os.path.dirname(model_path)):
        os.makedirs(os.path.dirname(model_path))
    saver.save(sess, model_path, write_meta_graph=False)

我得到了这些文件,这意味着它只保存从agent_3model_pathagent_0 开始

【问题讨论】:

    标签: python-3.x tensorflow


    【解决方案1】:

    那些是checkpoint files。 默认情况下,TF 会每 10 分钟保存一个检查点并保留最近的 5 个检查点。 (source)。

    我们可以通过传递可选的max_to_keep 参数来覆盖此行为。默认情况下,它设置为 5 并清理旧的检查点。如果将其设置为0,它将不会清理任何文件:

    saver.save(sess, model_path, write_meta_graph=False, max_to_keep=0)
    

    顺便说一句,一般来说,不需要保留旧的检查点,除非我们想将模型恢复到训练早期的状态,但这(当然)是你的决定。

    【讨论】:

    • 问题是它只保存从agent_3model_pathagent_0开始。
    • @your 的答案是完全正确的,但问题是 saver.save(sess, model_path, write_meta_graph=False, max_to_keep=0) 不起作用,但起作用的是 saver = tf.train.Saver(max_to_keep=9)
    • 我在这里得到了正确答案:stackoverflow.com/questions/38837309/…
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-09-14
    • 2020-05-30
    • 1970-01-01
    • 2016-07-05
    相关资源
    最近更新 更多