【问题标题】:Early Stopping, Model has gone through how many epochs?Early Stopping,Model 经历了多少个 epoch?
【发布时间】:2019-07-05 03:31:16
【问题描述】:

我正在使用 Keras。我正在训练我的神经网络并使用 Early Stopping。我的耐心是 10,验证损失最低的时期是 15。我的网络运行到 25 个时期并停止,但是如果我理解正确,我的模型是具有 25 个时期而不是 15 的模型

有没有一种简单的方法可以恢复到 15 个 epoch 模型,还是我需要重新实例化模型并运行 15 个 epoch?

【问题讨论】:

标签: python-3.x tensorflow keras neural-network


【解决方案1】:

是的,有一个,EarlyStopping 回调中的 restore_best_weights 参数,将其设置为 True,Keras 将跟踪产生最佳损失的权重:

callback = EarlyStopping(..., restore_best_weights=True)

查看此回调here的所有参数。

【讨论】:

  • 谢谢!这正是我想要的。
【解决方案2】:

是的,当它停止时,你会得到与 epoch 对应的模型(权重)。一种常用的策略是在验证损失/acc 提高时保存模型。

【讨论】:

  • 其实可以通过EarlyStopping回调恢复最佳模型。看到这个answer
【解决方案3】:

提前停止不会按照您的想法工作,它应该返回最低损失或最高准确度的模型,如果模型准确度或损失没有改善,它会工作大约 x 个时期(在您的情况下为 10 个,耐心参数)然后它将停止。 您应该使用回调模型检查点函数,例如

keras.callbacks.ModelCheckpoint(filepath, monitor='val_loss', verbose=0, save_best_only=True, save_weights_only=False, mode='auto', period=1)

https://keras.io/callbacks/

这将保存或检查训练历史期间遇到的最佳模型。

【讨论】:

  • 其实可以使用EarlyStopping回调恢复最佳模型。看到这个answer
  • 也感谢您更新我,我不知道 keras 的新更新。
猜你喜欢
  • 2019-12-28
  • 2018-11-22
  • 2021-03-03
  • 1970-01-01
  • 2017-09-28
  • 1970-01-01
  • 2019-01-20
  • 2015-08-21
  • 1970-01-01
相关资源
最近更新 更多