解决the operator silu to ONNX opset version 12 is not supported问题

问题:使用yolov5-7.0的export.py导出onnx文件时报错

原因:低版本的opset不支持切片操作

解决方法:在export.py种找到torch.onnx.export,更改版本为11

 torch.onnx.export(
        model.cpu() if dynamic else model,  # --dynamic only compatible with cpu
        im.cpu() if dynamic else im,
        f,
        verbose=False,
        opset_version=11, #只需要改这行,版本改为11
        do_constant_folding=True,
        input_names=['images'],
        output_names=output_names,
        dynamic_axes=dynamic or None)

 再次运行export.py发现仍然报错the operator silu to ONNX opset version 11 is not supported

解决方法:查看python解释器

我的环境是虚拟环境py38,于是到py38中依次找到以下路径

D:\anaconda\envs\py38\Lib\site-packages\torch\nn\modules\ activation.py

打开activation.py找到第394行代码修改

    def forward(self, input: Tensor) -> Tensor:
        return input * torch.sigmoid(input)#改成这一行代码
        # return F.silu(input, inplace=self.inplace)这是原代码

再次运行export.py

成功 

  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值