首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何将使用Keras模型训练的TensorFlow2.*转换为.onnx格式?

如何将使用Keras模型训练的TensorFlow2.*转换为.onnx格式?
EN

Stack Overflow用户
提问于 2020-04-10 20:03:13
回答 2查看 5.6K关注 0票数 4

我使用Python3.7.4和TensorFlow 2.0和Keras 2.2.4-tf来训练我自己的CNN模型。一切都很顺利。例如,我可以使用model.save(my_model),然后在其他Python脚本中使用它。当我想使用带有C++中的DNN模块的OpenCV中的训练模型时出现问题。dnn:readNetFromTensorflow(model.pb,model.pbtxt),因为你可以看到两个参数,所以我无法获取第二个.pbtxt文件。所以我决定使用.onnx格式,因为它很灵活。问题是,现有的库keras2onnx只接受来自TensorFlow 1.*的模型,我希望避免使用它。转换它的代码示例如下:

代码语言:javascript
运行
复制
import tensorflow as tf
import onnx
import keras2onnx
model = tf.keras.models.load_model(my_model_folder_path)
onnx_model = keras2onnx.convert_keras(model, model.name)
onnx.save_model(onnx_model, model_name_onnx)

有没有其他方法可以将这种模型转换为onnx格式?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2020-04-11 11:43:08

最新版本的keras2onnx (在github master中)支持TensorFlow 2。

你可以这样安装它:

代码语言:javascript
运行
复制
pip install git+https://github.com/microsoft/onnxconverter-common
pip install git+https://github.com/onnx/keras-onnx
票数 6
EN

Stack Overflow用户

发布于 2020-06-26 13:11:58

你需要创建一个可以容纳ONNX对象的文件。访问https://github.com/onnx/tutorials/blob/master/tutorials/OnnxTensorflowExport.ipynb

代码语言:javascript
运行
复制
import tensorflow as tf
import onnx
import keras2onnx
model = tf.keras.models.load_model('Model.h5')
onnx_model = keras2onnx.convert_keras(model, model.name)

file = open("Sample_model.onnx", "wb")
file.write(onnx_model.SerializeToString())
file.close()
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61139855

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档