RuntimeError: ONNX export failed on hardtanh, which is not implemented for opset 11.

执行pytorch模型转ONNX时候,语句:

torch.onnx.export(dbface, dummy_input, "dbface.onnx", output_names={"output"}, verbose=True)

出现错误

C:\Anaconda3\lib\site-packages\torch\onnx\symbolic_helper.py:198:UserWarning: You are trying to export the model with onnx:Upsample for ONNX opset version 9. This operator might cause results to not match the expected results by PyTorch.
ONNX's Upsample/Resize operator did not match Pytorch's Interpolation until opset 11. Attributes to determine how to transform the input were added in onnx:Resize in opset 11 to support Pytorch's behavior (like coordinate_transformation_mode and nearest_mode).
We recommend using opset 11 and above for models using this operator. 
  "" + str(_export_onnx_opset_version) + ". "

默认的opset是9,提示需要使用11,语句改为:

torch.onnx.export(dbface, dummy_input, "dbface.onnx", output_names={"output"}, verbose=True,opset_version=11)

又出现错误

RuntimeError: ONNX export failed on hardtanh, which is not implemented for opset 11. Try exporting with other opset versions.

不支持hardtanh操作,解决方法:
我的torch是anaconda安装python后pip install的,打开目录:C:\Anaconda3\Lib\site-packages\torch\onnx,打开文件symbolic_opset11.py,开头就有个list:black_listed_operators,将其中的hardtanh删掉,完事如下:

black_listed_operators = [
    "eq", "ne", "sort", "topk"
]

重新运行转换,成功由pytorch模型转ONNX。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值