1

我的问题可以分为两部分。

  • 是否有可以通过不同库使用的机器学习模型文件格式?比如我用pytorch保存了一个模型,然后用tensorflow加载?

  • 如果没有,是否有可以帮助传输格式的库,以便可以在 keras 中直接使用 pytorch 机器学习模型?

之所以问这个问题,是因为最近需要将之前在tensorflow中训练的一些模型调整为pytorch。

这个问题的更新: Facebook 和微软将推出一个名为 ONNX 的模型标准,用于在不同框架之间传输模型,例如在 Pytorch 到 Caffe2 之间。链接如下:

https://research.fb.com/facebook-and-microsoft-introduce-new-open-ecosystem-for-interchangeable-ai-frameworks/

这个问题的进一步更新: Tensorflow 本身使用 Protocol Buffer 格式来存储模型文件,可以用于不同模型之间的传输。链接如下:

https://www.tensorflow.org/extend/tool_developers/

4

3 回答 3

0

非常有趣的问题。神经网络是一种数学抽象,由层网络(卷积、循环......)、操作(点积、非线性......)及其各自的参数(权重、偏差)组成。

  1. AFAIK,没有通用模型文件。尽管如此,不同的库允许用户以二进制格式保存他们的模型。

  2. 没有用于转换的库,但在github repo上努力解决了这个问题。

于 2017-06-02T05:27:33.113 回答
0

预测标记建模语言 (PMML) 是一种基于 XML 的表示语言,适用于许多机器学习模型。这是许多公司用于序列化和反序列化模型的开放标准。我已经将支持 PMML 的库用于 SVM 和决策树等机器学习模型,但没有将其用于深度学习模型。但是,有一些开源项目可以与TensorflowKeras一起使用,但这些库似乎用于序列化和反序列化以与同一个库一起使用。您可能想检查 PMML 是否在库之间的序列化和反序列化方面取得了进展。

于 2017-06-02T19:04:42.450 回答
0

如果没有,是否有可以帮助传输格式的库,以便可以在 keras 中直接使用 pytorch 机器学习模型?

你可以试试Pytorch2Keras转换器。

在那一刻,它支持基础层,如 Conv2d、线性、激活、元素操作。所以,我用错误 1e-6 转换了 ResNet50。

于 2017-11-23T21:45:59.223 回答