Data-Free Quantization Through Weight Equalization and Bias Correction
PDF:https://openaccess.thecvf.com/content_ICCV_2019/papers/Nagel_Data-Free_Quantization_Through_Weight_Equalization_and_Bias_Correction_ICCV_2019_paper.pdf
PyTorch: https://github.com/shanglianlm0525/PyTorch-Networks
1 概述
DFQ提出了一种不需要额外数据来finetune恢复精度的离线8bit量化方法,充分利用了relu函数的尺寸等价缩放的特性来调整不同channel的权重范围,同时还能纠正量化过程中引入的偏差。
2 Cross-layer range equalization for Weight tensor channel ranges
预模型里,同一层的卷积核,不同通道的卷积参数的数值范围是很不一致的。这样就直接导致了per-tensor量化后误差很大,量化后的版本很难近似原先的参数,如MobileNetV2在ImageNet上的精度从70.9% 降为 0.1%。per-channel的方法可以解决这个问题,但是在硬件实现上因为要针对每一个通道都有自己独立的缩放系数和偏移值考虑,会导致很多额外的开销。
DFQ利用ReLU函数的
f
(
s
x
)
=
s
f
(
x
)
f(sx)=sf(x)
f(sx)=sf(x), 有
即利用ReLU函数的缩放特性来进行上下层之间不同通道缩放系数的调整(Layer1除以
s
i
s_{i}
si,Layer2乘以对应的
s
i
s_{i}
si),
3 Quantization bias correction for Biased quantization error
FP32->INT8量化过程中带来的noise是有偏误差,这种noise会带入下一层,导致不同模型不同程度的性能下降,目前的方法基本依赖于finetune;