有很多种方法可以保存模型和它的权重。当有这么多种方式时,没有任何来源可以让我们阅读并比较它们的属性,这样会很令人困惑。
我知道的一些格式有:
1. YAML 文件 - 仅包含结构
2. JSON 文件 - 仅包含结构
3. H5 完整模型 - Keras
4. H5 仅包含权重 - Keras
5. ProtoBuf - 使用 TensorFlow Serving 进行部署
6. Pickle - Scikit-learn
7. Joblib - Scikit-learn - 用于包含大数据对象的替代 Pickle 的工具。
讨论:
与 Scikit-learn 不同,Keras 不建议使用 pickle 来保存模型。相反,模型被保存为 HDF5 文件。HDF5 文件包含了你需要的一切,不仅可以加载模型进行预测(即架构和已训练参数),还可以重新开始训练(即损失和优化器设置以及当前状态)。
除了上述讨论的格式外,Scikit-learn、Keras、Tensorflow 和 Mxnet 还有哪些格式可以用来保存模型?此外,我还缺少哪些关于上述讨论的格式的信息?