1. 芯片型号:J52. 问题定位:板端部署3. 问题具体描述:yolov7模型通过PTQ转成.bin模型后,上板端部署运行,运行结果显示:检测框无论是否正确框中目标,分值普遍偏高,接近1。请问是模型转换后精度丢失造成的吗?
你好,有两个疑问需要你确认一下:你反馈的这个问题在float_original.onnx 和 quantized.onnx上的推理结果是怎么的,是否存在问题,需要你这边验证一下。是否通过hb_verifier 验证过quantized.onnx和bin模型的一致性。
我这边尝试用horizon_j5_open_explorer_v1.1.68-py38_20231014\ddk\samples\ai_toolchain\horizon_model_convert_sample\04_detection\03_yolov5x\mapper\04_inference.sh推理,报错,找到原因为,原实例中的模型输出为三层我自己的模型输出为:请问这怎么解决呢?模型一致性检查通过
你自己的yolo7模型和OE包中的yolov5本身就不是同一个模型,后处理是不一样的。首先确定是否是你的yolo7后量化后出现无论是否正确框中目标,分值普遍偏高,接近1的现象。如果是,就用自己的yolo7模型的onnx写后处理代码,验证float_original.onnx 和 quantized.onnx上的推理结果正确性。
我尝试运行示例horizon_j5_open_explorer_v1.1.68-py38_20231014\ddk\samples\ai_toolchain\horizon_model_convert_sample\04_detection\03_yolov5x\mapper\04_inference.sh的onnx推理代码,报错如下:
后处理的代码我参照horizon_j5_open_explorer_v1.1.68-py38_20231014\ddk\samples\ai_toolchain\horizon_model_convert_sample\04_detection\03_yolov5x\mapper\postprocess.py写的
pt模型正常,pt转onnx模型都是pytorch自带的,都不涉及工具链知识,请先写onnx的后处理代码,完成正确的onnx模型输出结果再做PTQ量化。后处理代码需要你根据不同的算法,自行处理的。正常情况下同算法pt的后处理类似