Keras 是否需要model.save_权重?

Keras 是否需要model.save_权重?,keras,Keras,我想知道在培训结束时是否需要model.save_weights()。假设我已经有了一个检查点: checkpoint=ModelCheckpoint( '重量{epoch:02d}-{val_损失:.2f}.h5', 监视器=“val_损失”, 详细=0, save_best_only=True, 仅保存权重=真, mode='min', 周期=1) 应已将重量保存在单独的h5文件中。是否仍需要model.save_weights()?您可以在每个训练时段后使用检查点保存模型权重,这将额外调

我想知道在培训结束时是否需要
model.save_weights()
。假设我已经有了一个检查点:

checkpoint=ModelCheckpoint(
'重量{epoch:02d}-{val_损失:.2f}.h5',
监视器=“val_损失”,
详细=0,
save_best_only=True,
仅保存权重=真,
mode='min',
周期=1)

应已将重量保存在单独的
h5
文件中。是否仍需要
model.save_weights()

您可以在每个训练时段后使用检查点保存模型权重,这将额外调用
model.save_weights()
过时。为此,您需要设置:

  • save\u weights\u only=True
    ,因为您只想保存权重
  • period=1
    ,保存每个历元后的权重
  • save\u best\u only=False
    ,因为否则,如果作为
    monitor
    参数给出的度量没有改善,则不保存模型
    save\u best\u only=True的情况下
    您可能无法保存最终权重,因此如果您对它们感兴趣,您需要在培训后显式调用
    model.save\u weights()


    请注意,实际保存的内容还取决于您对第一个参数的输入,
    filepath

    • 一个修复文件路径,例如
      'weights.h5'
      ,会导致一个单个保存的权重文件

      • 如果
        save\u best\u only=False
        则在每个历元后,它将被当前权重覆盖
      • 如果
        save\u best\u only=True
        并且监视的度量值变得更好,则权重文件将被覆盖,否则不会发生任何事情
    • 如示例中的
      'weights.{epoch:02d}-{val_loss:.2f}.h5'
      格式的文件路径可能导致多个保存的权重文件

      • 如果
        save\u best\u only=False
        您将获得每个历元的文件
      • 如果
        save\u best\u only=True
        您将获得每个历元的一个文件,其中监视的度量值比所有以前历元中监视的最佳值有所改进。但是,以前保存的文件不会被覆盖,因为它们的文件名与当前文件名不同