182、端侧部署:ONNX与TensorRT昨晚在客户现场调一个车机端的检测模型,明明在PC上TensorRT跑得好好的,换到他们的Orin上就崩,报错信息只有一行:Assertion failed: (bDims.nbDims = 3) in computeTxOffset。我当时人就在那儿杵着,盯着屏幕看了五分钟,最后发现是转ONNX的时候,某个Gather层的输出维度被优化掉了一维,TensorRT的插件不认。这种问题,你在文档里永远找不到标准答案,只能靠一遍遍踩坑去积累。今天这篇笔记,就围绕“ONNX与TensorRT”聊点实在的。不讲那些官网翻译过的概念,只讲调试完几个项目之后,我手头攒下的那些血泪经验。特别是如果你正准备把模型从PyTorch撸到端侧,或者已经在TensorRT里折腾,希望这篇能让你少走几个我走过的弯路。先说一个最容易被忽略的起点:ONNX这个中间格式,它真的只是个“中间人”。很多人以为PyTorch模型转成ONNX就万事大吉,再转TensorRT就应该是丝滑的。这是目前最大的认知误区。ONNX本身是一个计算图描述,它保留了算子的语义,但并没有为你的GPU硬件做任何优化。TensorRT拿到的ONNX,更像是建筑图纸,它需要自己重新理解一遍墙体和承重柱,然后决定怎么盖。所以ONNX里一个不规范的算子写法,可能在PyTorch里不痛不痒,到了TensorRT就变成爆炸点。举个我调试过的例子,当时模型里有个自定义的损失函数,里面用了torch.where加torch.stack的组合,逻辑上是做个条件掩码。在PyTorch推理