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
        )
    ]
)

✨ 保存的模型文件会自动覆盖原有文件,确保只保留最优版本


📌 扩展阅读

模型训练过程