如题,存在不一致的情况,例如python推理结果经过NMS后的置信度为0.92,但板端的置信度可能为0.89,且板端检测框尺寸和中心点相比python存在一些偏差。
继续调试,在NMS之前,置信度最高的目标框从尺寸特征图(40*40)的w=16,h=15的网格中的第二个anchor解码得到,在python中的结果不对应。
其次,直接对比了特征图的前10行结果,发现与python的结果也不一致。
请问这可能是由于在模型量化过程中导致的误差吗?
如题,存在不一致的情况,例如python推理结果经过NMS后的置信度为0.92,但板端的置信度可能为0.89,且板端检测框尺寸和中心点相比python存在一些偏差。
继续调试,在NMS之前,置信度最高的目标框从尺寸特征图(40*40)的w=16,h=15的网格中的第二个anchor解码得到,在python中的结果不对应。
其次,直接对比了特征图的前10行结果,发现与python的结果也不一致。
请问这可能是由于在模型量化过程中导致的误差吗?





最开始的问题是板端和x86的检出不一致,然后通过 hb_verfier和hrt_model_exec工具对比了输出特征图发现是一致的。
但是这样就没法解释为什么检测框会不同。因此分别找到了x86和板端的输出检测框对应的特征图是model_output[1],也就是40*40大小的特征图
板端对应的特征图结果是:
然后在python中通过np.save直接保存model_output[1],根据检出的置信度0.92找到了对应的输出:
根据confidence=sigmoid(2.4454216957092285)*sigmoid(13.594114303588867)=0.92
证明python端的检出结果是正确的。
但是在输出的板端特征图中是找不到对应的python的特征图结果,也就是结果并不一致!但这和工具得到的结果矛盾。所以怀疑hb_verfier工具是否使用了和ai_benchmark示例中不同的preprocess导致了输入不同?
