onnxruntime.capi.onnxruntime_pybind11_state.Fail: [ONNXRuntimeError] : 1 : FAIL : Load model from mn

树莓派4B在使用onnxruntime1.6.0对model.onnx模型进行加载的时候出现以下的报错:

onnxruntime.capi.onnxruntime_pybind11_state.Fail: [ONNXRuntimeError] : 1 : FAIL : Load model from mn_第1张图片

原因:

由于导出的ONNX模型文件不兼容ONNX Runtime当前版本所导致的,一开始我导出模型的方式如下:

import tensorflow as tf
from keras import models

keras_model = models.load_model("mnist_model.h5")
# Save the Keras model as SavedModel format
tf.saved_model.save(keras_model, 'saved_model_dir')

然后会得到一个文件夹:
onnxruntime.capi.onnxruntime_pybind11_state.Fail: [ONNXRuntimeError] : 1 : FAIL : Load model from mn_第2张图片
接着我在上面生成的文件夹的那个路径中打开树莓派的黑窗口,然后输入了下面的命令:

python3 -m tf2onnx.convert --saved-model saved_model_dir --output mnist_model.onnx

然后生成了onnx模型:
onnxruntime.capi.onnxruntime_pybind11_state.Fail: [ONNXRuntimeError] : 1 : FAIL : Load model from mn_第3张图片
但是在运行的时候就出现了上面的报错,正确的方法是在导出ONNX模型时指定ONNX模型文件的格式版本,应该使用下面的命令行:

python3 -m tf2onnx.convert --saved-model saved_model_dir --output mnist_model.onnx --opset=10

其中,saved_model_dir应为已保存的TensorFlow模型文件夹的路径,–opset=10表示指定ONNX模型的格式版本为10,这个版本要具体看你的onnxruntime来决定,我的是onnxruntime1.6.0,所以对应的是10版本。

你可能感兴趣的:(tensorflow,深度学习,python)