在深度学习项目中,模型的保存与加载是确保训练成果可复用的关键步骤。以下为 TensorFlow Keras 中的核心方法和最佳实践:


💾 保存整个模型

使用 model.save() 方法可保存模型结构、权重及优化器状态:

model.save("my_model.h5")  # 保存为 HDF5 文件
model.save("my_model")      # 保存为 SavedModel 格式

📌 注意:SavedModel 格式支持跨框架加载(如 TensorFlow Serving),而 HDF5 需要 h5py 依赖。

模型保存

🔄 加载模型

通过 tf.keras.models.load_model() 恢复模型:

loaded_model = tf.keras.models.load_model("my_model.h5")
  • 支持格式:HDF5、SavedModel
  • 需确保:模型文件与原始训练环境兼容(如层类型、依赖库)
模型加载

📌 检查点(Checkpoints)

使用 ModelCheckpoint 回调保存训练过程中的模型:

checkpoint = tf.keras.callbacks.ModelCheckpoint(
    "best_model.h5", save_best_only=True, monitor="val_loss"
)
  • 可定期保存模型,避免训练中断导致的损失
  • 推荐与 EarlyStopping 结合使用

⚠️ 注意事项

  1. 文件路径:确保保存路径有写入权限
  2. 版本兼容:不同 TensorFlow 版本可能影响模型加载
  3. 安全性:避免加载不可信来源的模型文件

📚 如需深入理解模型序列化机制,可阅读:/tensorflow/guide/keras/serialization


🧪 实战示例

# 保存模型
model.save("mnist_model")

# 加载模型
new_model = tf.keras.models.load_model("mnist_model")
new_model.summary()  # 查看模型结构
检查点