我使用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.*的模型,我希望避免使用它。转换它的代码示例如下:
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格式?
发布于 2020-04-11 11:43:08
最新版本的keras2onnx (在github master中)支持TensorFlow 2。
你可以这样安装它:
pip install git+https://github.com/microsoft/onnxconverter-common
pip install git+https://github.com/onnx/keras-onnx
发布于 2020-06-26 13:11:58
你需要创建一个可以容纳ONNX对象的文件。访问https://github.com/onnx/tutorials/blob/master/tutorials/OnnxTensorflowExport.ipynb
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()
https://stackoverflow.com/questions/61139855
复制相似问题