繁体   English   中英

在scikit-learn、keras、Z2C39BC19B761AC36DCZ646245D1D4FE和mxnet中保存机器学习model的所有格式是什么?

[英]What are all the formats to save machine learning model in scikit-learn, keras, tensorflow and mxnet?

有很多方法可以保存 model 及其权重。 当有这么多方法而不是我们可以阅读和比较它们的属性的任何来源时,这是令人困惑的。

我知道的一些格式是:
1. YAML 文件 - 仅结构
2. JSON 文件 - 仅结构
3. H5 完整 Model - Keras
4. 仅 H5 重量 - Keras
5. ProtoBuf - 使用 TensorFlow 服务部署
6. 泡菜 - Scikit-learn
7. Joblib - Scikit-learn - Pickle 的替代品,用于包含大数据的对象。

讨论:
与 scikit-learn 不同,Keras 不建议您使用 pickle 保存模型。 相反,模型保存为 HDF5 文件。 HDF5 文件包含加载 model 以进行预测(即架构和训练参数)以及重新启动训练(即损失和优化器设置以及当前状态)所需的一切。

还有哪些其他格式可以保存 Scikit-learn、Keras、ZCB20B802A3F0255E054E4FB8821CED2Z 和 MCB20B802A3F0255E054E4FB8821C5ED2Z 的 model 格式? 另外,关于上述每种格式,我还缺少哪些信息?

还有TFJS格式,它使您能够在 web 或 node.js 环境中使用 model。 此外,您将需要TF Lite格式才能在移动和边缘设备上进行推理。 最近,用于微控制器的TF Lite将 model 导出为 C header 文件中的字节数组。

您关于保存 model 格式的问题有多个可能的答案,具体取决于您要保存 model 的原因

  1. 保存您的 model 以便稍后恢复训练
  2. 保存您的 model 以便稍后加载以进行推理

这些场景为您提供了两种选择:

您可以使用库特定的保存功能保存 model; 如果您想恢复训练,请确保您已保存真正能够恢复训练所需的所有信息。 这里的格式会因库而异,实际上并不是您可以以任何方式检查或阅读的格式——它们只是文件。 如果您正在寻找一个将所有这些保存功能包装在一个通用 API 后面的库,您应该查看modelstore Python 库。

你也可以使用像ONNX这样的通用格式; 有从Keras 到 ONNXscikit-learn 到 ONNX的转换器; 但在以后恢复训练时使用这种格式并不常见。 这里的好处是它们都保存为通用格式,这可以简化以后加载它们的过程。

还有像onnx这样的格式,它基本上支持大多数框架,并有助于消除对不同框架使用不同格式的混淆。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM