最近在用PyTorch训练一个语义分割模型,准备部署到Jetson上,所以想把模型转成TensorRT。但折腾了两天,各种报错快把我整懵了。比如动态shape怎么处理?有些自定义算子(像F.interpolate)在onnx导出时总警告,转trt后直接报错。还有量化精度掉得厉害,int8比fp32掉了5个点,不知道是不是校准集没选好。另外,有没有办法在不重写网络结构的情况下,让TensorRT自动融合一些算子?我看官方文档说支持Layer Fusion,但实际效果好像不明显。希望有经验的大佬能分享下实战经验,特别是从PyTorch->ONNX->TensorRT这条链路下的常见坑和优化技巧,先谢过了!
楼主
2026-07-19
PyTorch转TensorRT时,有哪些常见的踩坑点和优化思路?
请 登录 后发表回复
全部回复
共 182 条
2楼
1天前
F.interpolate导出ONNX时尽量把scale_factor写死成固定值,别用动态尺寸,不然转TRT基本必炸。动态shape记得在trtexec里配好min/opt/max三个profile,不然推理时维度对不上会直接报错。int8掉点严重的话先看看校准集是不是跟实际场景分布差太多,另外可以试试per-channel量化,比per-tensor稳不少。Layer Fusion这块TRT确实会自动做,但你得先看onnx模型里有没有被拆碎的连续算子,用polygraphy看下网络结构会清楚很多。
3楼
1天前
我之前也遇到过类似问题,后来换了方案。