7,745
社区成员
发帖
与我相关
我的任务
分享QNN 模型转换时,部分 ONNX 算子显示“unsupported op”导致转换失败,应该优先按什么顺序排查?
优先按以下顺序排查:第一,确认 QNN SDK 版本是否支持该 ONNX 算子;第二,检查 opset 版本是否过高;第三,简化算子结构,比如把常量折叠、Shape、Slice、Gather 等冗余算子尽量在转换前化简;第四,若仍不支持,使用 QNN CPU 回退或实现自定义算子。
建议先开启详细日志:
bash
qnn-onnx-converter
--input_network model.onnx
--output_path model.cpp
--verbose 2>&1 | tee convert.log
日志里重点搜 UnsupportedOp 、 op_type 、 domain 、 opset 。对于常见的动态 Shape 算子,可尝试在转换时指定输入 Shape:
bash
qnn-onnx-converter
--input_network model.onnx
--output_path model.cpp
--input_dims input:1,3,640,640
如果个别算子确实无法转 HTP,可在模型侧拆分:一部分走 HTP,不支持部分回退 CPU,但要注意前后数据拷贝开销。参考:https://docs.qualcomm.com/bundle/publicresource/80-63442-10/topics/operator_support.html