7,916
社区成员
发帖
与我相关
我的任务
分享QNN 推理结果和 ONNX Runtime 浮点结果偏差较大,应该按什么顺序排查?
建议按 “输入一致性 → 预处理一致性 → 量化误差 → 算子实现 → 后端差异” 逐层排查。第一步,确认 QNN 与 ONNX Runtime 使用完全相同的输入张量,避免图片读取、resize、归一化、通道顺序不一致。第二步,检查预处理是否在模型外额外做了缩放、偏置或格式转换,很多偏差来自预处理而不是模型本体。第三步,对比 ONNX Runtime 量化模型和 QNN 量化模型输出,判断误差是否来自量化。第四步,单独提取偏差最大的算子,对比 CPU 与 HTP 实现。第五步,检查是否存在算子回退、动态 shape、常量处理和数据类型转换问题。可使用:
qnn-model-analyzer --model your_model.so --verify_input input.bin --verify_output output.bin
参考文档:高通 QNN 精度调试与算子对齐指南。