首页 > 解决方案 > 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即使预测是在训练后立即完成的,我也应该将其加载到模型中?

标签: pythonmachine-learningkeras

解决方案


回调停止训练后EarlyStopping,当前模型可能不是监控量最高/最低的最佳模型。因此,如果您想恢复最佳权重,则在Keras 2.2.3版本中restore_best_weights引入了一个新参数 ,用于回调:EarlyStopping

restore_best_weights:是否从监测量的最佳值的epoch恢复模型权重。如果False,则使用在训练的最后一步获得的模型权重。


推荐阅读