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 次 |
| 最近记录: |