【问题标题】:TensorFlow.Keras ModelCheckpoint Saving model while training , why?TensorFlow.Keras ModelCheckpoint 训练时保存模型,为什么?
【发布时间】:2018-06-16 19:03:47
【问题描述】:

我想知道为什么我们需要在训练时保存模型? 在火车开始时保存一次然后只在火车期间保存重量还不够吗?

我的意思是,模型在训练过程中没有改变,为什么需要这个布尔值?

class ModelCheckpoint(Callback):
...
save_weights_only: if True, then only the model's weights will be saved.
...

谢谢!

【问题讨论】:

    标签: tensorflow keras


    【解决方案1】:

    这不是需要或要求,只是方便。在典型的 DL/DS 工作流程中,你训练了许多具有不同配置的模型,很容易迷失方向。也许您现在已经保存了最佳模型的权重,但您不记得它使用了哪个模型配置。该信息不属于权重的一部分,必须单独记录。

    然后 Keras 提供了一个简单的解决方案,将模式(不到 10 KB)与权重一起存储,因此在丢失原始模型配置的情况下,它仍然保存在同一个 HDF5 文件中。

    另外考虑在没有模型配置的情况下将模型权重发送给其他人的情况,如何在没有模型的情况下加载权重?再次,它只是方便。

    【讨论】:

    • 我明白了,这就是为什么我在启动火车之前保存模型配置/属性和结构一次,我会澄清我的问题:如果足够做,为什么每个时期都做同样的操作开火车前一次?这个布尔值是错误的编程,在使用 Keras 提供的多 GPU 训练功能时会导致错误。 github.com/keras-team/keras/issues/8123
    • @StavBodik 不,没有错,该错误与此特定选项无关。它是在并行模型出现之前引入的。
    • 将相同的数据保存到循环内的文件是错误的,如果这个布尔值不存在,一切都会更好,我接受这不是一个错误,但这在使用 Keras 提供的多 GPU 功能时会导致问题,因为它试图在并行系统的每个时期保存模型。现在我不知道忽略这个布尔值并将其永久设置为 True 是否安全。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-11-21
    • 1970-01-01
    • 1970-01-01
    • 2021-10-11
    • 2022-11-22
    • 2020-11-28
    • 1970-01-01
    相关资源
    最近更新 更多