量化精度损失

1.芯片型号:J5

2.天工开物开发包OpenExplorer版本:J5_OE_1.1.68

3.问题定位:模型转换

4.问题具体描述:你好,请问量化精度损失指标是怎么计算的?在论坛经常看到量化后精度损失在百分之零点几,这个指标具体是怎么衡量的呢, 是PTQ量化中打印的 Cosine Similarity指标的平均值吗?余弦相似度如果有部分层出现小于0.5甚至负值时不时说明量化后结果完全不能用了?例如这种:

Add_2220 BPU id(0) Add -0.110158 11.709130 int8/int8

Reshape_2511 BPU id(0) Reshape 0.323910 1.000000 int8/int8

Sigmoid_2597 BPU id(0) Sigmoid 0.098744 5.498970 int8/int8

使用optimization: bias_correction开启偏差校正功能,打印如下:

2023-11-13 13:30:22,638 INFO The converted model node information:

==============Bias_Correction_Info(cosine-similarity)==============

Node Before-Bias-Correlation After-Bias-Correlation

--------------------------------------------------------------------

all_cls_scores 0.940445 0.957168

all_bbox_preds 0.219901 0.220146

pre_exist_out 1.000000 1.000000

mem_embedding_out 0.999954 0.999954

mem_timestamp_out 1.000000 1.000000

mem_egopose_out nan nan

mem_ref_point_out nan nan

mem_velo_out 0.999961 0.999961

outs_dec 0.628729 0.738208

这个打印的信息是每一个输出从相关输入开始计算的所有余弦相似度的平均值吗?

您好,地平线工具链在持续迭代优化,为了给您提供更好的服务,希望您能抽出3分钟左右的时间,将您在使用工具链期间的感受和建议告诉我们,您的宝贵意见对我们很重要,非常感谢!-
问卷链接地平线算法工具链使用满意度反馈

bias_correction这边打印的是当前输出层开启偏差校准前后的余弦相似度,并非所有的平均值

你好,量化精度损失是以量化前后模型Metric例如mAP, EndPointError等的变化来衡量的,PTQ过程中打印的Cosine Similarity是针对当前层的,如果值偏小或者为负数,说明当前层以当前精度量化产生的量化损失较大,当前层量化敏感,但是个别层量化敏感不表示量化后模型完全不能用,关键还是要看量化模型整体精度,整体精度符合预期的情况下不必纠结某些层的Cosine Similarity较低;