【问题标题】:How to save tensorflow model with best weights如何以最佳权重保存张量流模型
【发布时间】:2020-12-25 02:26:42
【问题描述】:

我正在训练一个 LSTM,并且对于 300 个 epoch 训练序列期间的部分 epoch(范围不一致),它在很长一段时间内表现出非常好的准确性。此时我希望能够保存整个模型,但除了使用检查点然后恢复并保存新模型之外似乎找不到其他方法。

有没有一种方法可以让我使用 model.save 仅在模型具有最佳权重时才捕获它?

【问题讨论】:

  • 在下一步之前,您如何知道您的模型具有最佳权重?我觉得如果你想以这种方式使用 model.save,你可以在每个 epoch 都这样做,并且只有在结果比上一个 epoch 好时才保留它,但这类似于你实现检查点的方式。
  • @user14518362 与检查点一样,我希望根据验证损失或一些类似指标来保存。
  • 现在并不重要,因为你有答案,但我的观点更多的是关于验证损失或其他指标,你只能在训练后计算,所以它不会与每个 epoch 之后都有一个检查点有很大不同

标签: python tensorflow keras


【解决方案1】:

使用save _best_only 参数:

model_checkpoint_callback = tf.keras.callbacks.ModelCheckpoint(
    filepath=checkpoint_filepath,
    save_weights_only=True,
    monitor='val_accuracy',
    mode='max',
    save_best_only=True)

【讨论】:

  • 不知何故我错过了 save_weights_only 参数,可以将其设置为 true 以保存整个模型。谢谢。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-07-10
  • 1970-01-01
  • 2019-05-08
  • 2020-02-19
  • 1970-01-01
相关资源
最近更新 更多