ONNX 模型 转 OpenVINO IR 模型

ONNX 与 OpenVINO作为不同的推理后端,各有特定优势,这里不再赘述。

部署ONNX 或 PyTorch 模型时,输入图像常常需要在传入网络之前进行标准化处理 (normalization)、通道变换等操作。而OpenVINO模型,标准化处理被移入到模型中进行。另外BGR转RGB等图像处理亦可以在模型中进行,无需对输入图像进行处理。

如果模型部署需要ONNX 模型 转 OpenVINO IR 模型,只需在openvino_{your version}\deployment_tools\model_optimizer文件夹下运行如下代码即可:

python mo_onnx.py 
--input_shape=[1,3,224,224] 
--input=input 
--mean_values=[103.53,116.28,123.675] 
--scale_values=[57.375,57.12,58.395] 
--data_type FP16 
--input_model "your onnx model path" 
--output_dir "your openvino model folder path"

onnx模型的输入参数可以用Netron进行查看。

设定参数时有以下几个注意点:

1. 注意空格

注意--mean_values=[103.53,116.28,123.675] 这种形式,中括号之内不能有空格。

也可以采用--mean_values="[103.53, 116.28, 123.675]" 这种带空格形式。

2. 图像标准化采用的参数为:

--mean_values=[103.53,116.28,123.675] 
--scale_values=[57.375,57.12,58.395] 

而不是

--mean_values=[0.406,0.456,0.485] 
--scale_values=[0.225,0.224,0.229] 

参考:Convert a PyTorch Model to ONNX and OpenVINO IR — OpenVINO™ documentation

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