Tensorflow Model Quantization
Quantizing deep convolutional networks for efficient inference: A whitepaper
推理加速库:GEMMLOWP , Intel MKL-DNN , ARM CMSIS , Qualcomm SNPE , Nvidia TensorRT
降低模型复杂度的方法->降低权重和激活输出的精度要求-----int8,int16量化
1.优点
- 无需重训练
- 几乎不会有精度损失
- 模型尺寸更小。fp32->int8,模型理论减小4倍。
- 计算更快,大部分处理器8bit数据处理更快。
- 功耗更低。
- 更少的内存和缓存由于激活输出->更低精度的权重和激活输出有利于缓存更好的重用???
2.量化设计(Quantizer Design)
2.1 Uniform Affine Quantizer(映射量化)
尺度指定了量化的步长,浮点型0映射到零点。零点是一个整型数,确保0没有量化误差。
,
quantization operation,
(1)
(2)
尺度,z零点, round四舍五入,clamp取值范围0,N。
de-quantization operation,
(3)
2.2 Uniform symmetric quantizer(对称量化)-> 即z=0
quantization operation,
(4)
(5) or
(6)
de-quantization operation,
(7)
Pytorch Model Quantization
int8 quantization operation,
(8)
(9)
(10)
(11)
de-quantization operation,
(12)