使用openvino的mo.py文件将onnx模型转化为ir文件时报错

#在使用openvino推理训练出来的模型时,这时候需要将最先训练好的pt权重转化为onnx模型后再转换为ir模型#

[ ERROR ]  Cannot infer shapes or values for node "/model.24/Reshape".
[ ERROR ]  Number of elements in input [  1 255  80  80] and output [1, 3, 85, 80, 60] of reshape node /model.24/Reshape mismatch
[ ERROR ]
[ ERROR ]  It can happen due to bug in custom shape infer function <function Reshape.infer at 0x000001ECEC43C0D0>.
[ ERROR ]  Or because the node inputs have incorrect values/shapes.
[ ERROR ]  Or because input shapes are incorrect (embedded to the model or passed via --input_shape).
[ ERROR ]  Run Model Optimizer with --log_level=DEBUG for more information.
[ ERROR ]  Exception occurred during running replacer "REPLACEMENT_ID" (<class 'extensions.middle.PartialInfer.PartialInfer'>): Stopped shape/value propagation at "/model.24/Reshape" node.
 For more information please refer to Model Optimizer FAQ, question #38. (https://docs.openvinotoolkit.org/latest/openvino_docs_MO_DG_prepare_model_Model_Optimizer_FAQ.html?question=38#question-38)

   上图报错是在进行onnx转ir模型时的报错,因为这个转ir模型需要进行两步转化,所以两步转换设置的参数应一致相同。

   图中的报错就是我自己在使用yolov5的expert.py文件将pt文件转化为onnx时设置的输入大小时640*480,而在转ir形式时设置的时640*640,需要保证这两个值相同

所以出现这种错误可以查看两次转换的参数是否相同,或者是缺少了有些参数,因为有的代码,在没设置参数时会直接使用默认值,这样也会导致两次的参数不相同,导致报错。

如果友友们觉得有用的话吗,就点个赞吧,

  • 12
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
OpenVINO可以将动态batchsize的ONNX模型转换为其支持的静态batchsize的模型。下面是一种实现方式: 首先,安装OpenVINO工具包,并将模型优化器(Model Optimizer)集成到环境中。该工具用于将ONNX模型转换为OpenVINO可以加载和推理的IR模型。 在转换ONNX模型之前,我们需要了解该模型的动态输入形状。通常,动态batchsize的模型在网络的输入节点上会标记为-1或None。我们可以使用ONNX Runtime库来动态推理模型并获取输入形状。 下一步是使用Model Optimizer将ONNX模型转换为IR模型。为了支持静态batchsize,我们需要在转换过程中指定batch参数。命令行示例如下: ``` python mo.py --input_model model.onnx --output_dir output --input_shape [B,C,H,W] --mean_values [mean_values] --scale_values [scale_values] --batch B ``` 在命令行中,我们需要提供转换的ONNX模型,输出目录,输入形状,均值和缩放值。重要的是,在输入形状中指定batch维度并将其设置为所需的静态batchsize。 完成转换后,我们可以使用OpenVINO进行推理,输入静态batchsize的数据进行推理。 需要注意的是,在转换和推理过程中,我们需要确保模型和数据的形状匹配,以避免错误发生。如果需要批量推理,可以使用循环迭代每个批量进行推理。 这就是使用OpenVINO将动态batchsize的ONNX模型转换为静态batchsize模型的简要步骤。通过这种方式,我们可以使用OpenVINO对不同大小的批量进行高效推理。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值