早期停止,模型经历了多少个时期?

时间:2019-07-05 03:31:16

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

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

是否有一种简单的方法可以还原到15个时期模型?还是需要重新实例化该模型并运行15个时代?

3 个答案:

答案 0 :(得分:3)

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

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

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

答案 1 :(得分:0)

是的,您将获得与纪元停止时对应的模型(权重)。常用的策略是在验证损失/ acc改善时保存模型。

答案 2 :(得分:0)

“早期停止”不适用于您所想的方式,它应该返回最低损失或最高准确度的模型,如果模型的准确性或损失没有改善,它会起作用,大约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/

这将保存或检查在训练历史记录中遇到的最佳模型。