其他分享
首页 > 其他分享> > 模型量化-对称量化和非对称量化

模型量化-对称量化和非对称量化

作者:互联网

模型量化的目的

本文的模型量化是优化深度学习模型推理过程的内存容量和内存带宽问题的概念,通过将模型参数的浮点数类型转换称整型存储的一种模型压缩技术。以可以接受的精度损失换取更少的存储开销和带宽需求,更快的计算速度,更低的能耗与占用面积。

比如int8量化,就是让原来32bit存储的数字映射到8bit存储。int8范围是[-128,127], uint8范围是[0,255]。

模型量化优点:

模型量化缺点:

量化数据映射的实现

比如进行int8的量化,数据范围是[-128,127],最大值最小值分别是Xmax, Xmin,X_q表示量化后的数据,X_f表示浮点数据。

X_q=X_f/scale +zero

scale=(Xmax-Xmin)/(127-(-128))=(Xmax-Xmin)/255

zero=0-round(Xmin/scale)或者zero=255-round(Xmax/scale)

量化方式分为对称量化非对称量化,其中上面是非对称量化的方式,如果是对称量化,则是将原浮点数的范围由[Xmin, Xmax]扩充为[-Xmax, Xmax],这里假定 |Xmax|>|Xmin|。然后按照上面公式转换量化值。对称量化对于正负数不均匀分布的情况不够友好,比如如果浮点数全部是正数,量化后的数据范围是[128,255], [0,127]的范围就浪费了,减弱了int8数据的表示范围。

对称量化的图示

在这里插入图片描述

非对称量化的图示

在这里插入图片描述

标签:模型,127,Xmax,对称,Xmin,量化,非对称,int8
来源: https://blog.csdn.net/u010420283/article/details/114483073