ModelCheckpoint 是 Keras 中用于保存训练模型最佳状态的核心回调工具,可自动在训练过程中保存模型权重或整个模型。以下是关键用法说明:
📦 基本功能
- 保存最佳模型:根据监控指标(如 val_loss)自动保存最优模型
- 灵活路径控制:支持动态文件路径(如包含 epoch 数字)
- 覆盖模式:可选择覆盖旧模型或仅保存最佳模型
⚠️ 本功能遵循 Keras 官方文档 的设计规范
📋 参数配置
keras.callbacks.ModelCheckpoint(
filepath='models/best_model_{epoch}.h5', # 保存路径(支持格式化字符串)
monitor='val_loss', # 监控指标
save_best_only=True, # 仅保存最佳模型
mode='min', # 最小化或最大化监控指标
verbose=1 # 输出保存日志
)
常用参数说明:
参数 | 作用 |
---|---|
monitor |
指定监控指标(如 val_accuracy ) |
save_freq |
按照 epoch 或 batch 间隔保存(需 Keras 2.9+) |
period |
指定保存周期(与 save_freq 二选一) |
📈 使用示例
model.fit(
X_train, y_train,
epochs=10,
callbacks=[
ModelCheckpoint(
'best_model.h5',
monitor='val_loss',
save_best_only=True
)
]
)
✨ 保存的模型文件会自动覆盖原有文件,确保只保留最优版本