[TensorRT] ERROR: Network must have at least one output[TensorRT] ERROR: Network validation failed.

本文探讨了如何将PyTorch模型转换为ONNX格式后,通过TensorRT进行量化加速时遇到的问题,着重介绍了版本兼容性、不支持操作的处理和onnxsim优化的重要性。作者分享了使用onnxsim简化模型并成功导入TensorRT的方法。
摘要由CSDN通过智能技术生成

1、pytorch模型转为onnx后用tensorRT量化加速时,报这个问题。

        OnnxParser在解析onnx文件时没解析成功,这个问题一方面可能涉及到pytorch和tensorrt版本的问题,另一方面可能涉及到网络模型有些操作, tensorrt中的onnx解析器不支持,解析不了.

第一方面, tensorrt6.0系列只能使用pytorch1.2及以下版本. 所以需要使用torch1.2生成onnx文件.

第二方面, 就要将一些不支持的操作进行替换, 比如expand_as等操作

       有时候上述两方面原因都有, 都需要进行调整. 有时候也需要使用onnxsim命令将onnx文件进行优化, 将某些不支持的操作进行自动替换。

我采用onnxsim优化后再转trt顺利解决了:

# pip install onnxsim
from onnxsim import simplify
import onnx
onnx_model = onnx.load("retinaface_mobilev1.onnx")  # load onnx model
model_simp, check = simplify(onnx_model)
assert check, "Simplified ONNX model could not be validated"
onnx.save(model_simp, "retinaface_mobilev_sim.onnx")
print('finished exporting onnx')

 

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值