python - Keras 中的 EarlyStopping 是否保存了最佳模型?
问题描述
使用类似的东西时:
callbacks = [
EarlyStopping(patience=15, monitor='val_loss', min_delta=0, mode='min'),
ModelCheckpoint('best-weights.h5', monitor='val_loss', save_best_only=True, save_weights_only=True)
]
model.fit(..., callbacks=callbacks)
y_pred = model.predict(x_test)
我是使用训练期间计算的最佳权重进行预测还是model
使用最后的权重(可能不是最好的权重)?
那么,上述方法是否安全,或者best-weights.h5
即使预测是在训练后立即完成的,我也应该将其加载到模型中?
解决方案
回调停止训练后EarlyStopping
,当前模型可能不是监控量最高/最低的最佳模型。因此,如果您想恢复最佳权重,则在Keras 2.2.3版本中restore_best_weights
引入了一个新参数 ,用于回调:EarlyStopping
restore_best_weights:是否从监测量的最佳值的epoch恢复模型权重。如果
False
,则使用在训练的最后一步获得的模型权重。
推荐阅读
- javascript - 如何比较日期时间字符串格式:(YYYY-MM-DD XX:YY)在javascript中
- html - HTML: Inline block doesn't work for just one table
- kubernetes - How to get PodSandboxConfig object in PullImageRequest on container runtime interface interface
- javascript - Understanding Concurrency/Parallelism in Async module - Node JS
- angularjs - Add new list options into the list box dynamically- AngularJS
- mysql - 从两个表中获取总销售额数据
- angular - 在 Angular 6 测试中修改全局窗口变量
- c# - 使用身份 asp.net 核心添加 UserClaim
- sql - 使用 SQL Server 或 Vertica 将按日期范围的记录转换为按日/月的记录
- android - 在android应用程序中接收GCM,我需要什么?