Mau*_*ile 2 python machine-learning neural-network keras
我正在训练一个神经网络与Keras使用EarlyStopping
基于val_acc
和patience=0
.EarlyStopping
一旦val_acc
减少就停止训练.
然而,我获得的最终模型不是最好的模型,即最高模型val_acc
.但我宁愿将模型对应于之后的时代,即对应于val_acc
比最佳时期稍低一点的模型,并且导致早期停止!
我如何获得最好的一个?
我尝试使用回调使用保存最佳模型:
ModelCheckpoint(filepath='best_model.h5', monitor='val_loss', save_best_only=True)]
Run Code Online (Sandbox Code Playgroud)
但我得到了相同的结果.
在Keras 2.2.3中,restore_best_weights
为EarlyStopping
回调引入了一个名为callback 的新参数,如果设置为True
(默认为False
),它将从具有最佳监视数量的纪元恢复权重:
restore_best_weights:是否使用受监控数量的最佳值从时期恢复模型权重.如果
False
,使用在训练的最后一步获得的模型权重.
如果您想保存最高精度,那么您应该设置检查点,monitor='val_acc'
它将自动保存为最高精度。最低的损失可能不一定对应于最高的准确性。您还可以设置verbose=1
查看正在保存哪个模型以及为什么。
归档时间: |
|
查看次数: |
1621 次 |
最近记录: |