← 在分诊台打开(可搜索/导航)
ONNX转RKNN/TensorRT时算子不支持怎么办
⚠️ E7 模型转换踩坑专题 · 全平台
状态:这是端侧部署最高频问题没有之一
也这样说: 算子不支持 unsupported op onnx转rknn nonmaxsuppression matmulinteger scatternd
可能根因:- ONNX opset版本过高
- NPU/TensorRT算子覆盖不全
- 训练态节点污染推理图
解决方案
🔧 变通方案(1条)
RKNN custom_op机制自定义算子
RKNN支持自定义算子(custom_op)用CPU实现不支持的NPU算子;但CPU算子会拖慢整体推理速度,能避免就避免
时效:2026-09
打开 ↗⚠️ 避坑提醒(3条)
NonMaxSuppression是RKNN转换头号杀手
YOLO/PicoDet导出ONNX含NMS后处理算子,RKNN不支持NonMaxSuppression直接报错;解决方案:导出时去掉NMS后处理,在板端C++/Python手动做NMS
时效:2026-09
打开 ↗ONNX opset必须≤17否则RKNN不认
opset 18的MatMulInteger/ScatterND等算子RKNN不支持;导出ONNX时指定opset=12-17,别用默认最高版本
时效:2026-09
打开 ↗训练态节点污染推理图 暂无外链
导出ONNX时未设eval模式,导出的图包含SoftmaxCrossEntropyLoss等训练专用节点;必须在导出前model.eval()并删除训练专用结构
时效:2026-09
本页是路由层入口,不存教程正文。每条入口带人工评注。
来自 问题分诊台 · Vertical Hub