在深度学习项目中,模型的保存与加载是确保训练成果可复用的关键步骤。以下为 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
结合使用
⚠️ 注意事项
- 文件路径:确保保存路径有写入权限
- 版本兼容:不同 TensorFlow 版本可能影响模型加载
- 安全性:避免加载不可信来源的模型文件
📚 如需深入理解模型序列化机制,可阅读:/tensorflow/guide/keras/serialization
🧪 实战示例
# 保存模型
model.save("mnist_model")
# 加载模型
new_model = tf.keras.models.load_model("mnist_model")
new_model.summary() # 查看模型结构