在 TensorFlow 1.x 版本中,有三种常用的模型保存方式:Checkpoints,tf.saved_model
(SavedModel 格式),以及 Freeze Graph。以下是每种方式的简要说明、优缺点。
- Checkpoints
Checkpoints 是 TensorFlow 中比较早期的模型保存方式。它通过 tf.train.Saver()
实例保存和恢复模型的参数(权重和偏置)。
优点:
- 简单易用,只需创建
tf.train.Saver()
实例并调用save
和restore
方法。 - 保存空间相对较小,只保存参数值。
缺点:
- 只保存模型的参数值(variables),不保存计算图结构,因此在恢复时,需要先重新定义模型结构。
- 依赖于原始的 Python 代码来重新构建计算图。
- 不方便跨语言或平台部署,因为缺乏计算图的描述。
tf.saved_model
(SavedModel 格式)
SavedModel 格式是 TensorFlow 更推荐的模型保存格式。它是一个包含完整的 TensorFlow 程序的目录,包括权重和图结构。
优点:
- 完整保存富集成的模型,包括计算图和参数值。
- 可跨平台部署,适合在 TensorFlow Serving、TensorFlow Lite、TensorFlow.js 或 TensorFlow Hub 上使用。
- 支持模型的版本管理。