Quantization and Training of Neural Networks
参考论文Quantization and Training of Neural Networks for Efficient Integer-Arithmetic-Only Inference
1. Weight quantization should be [-127, 127], not -128
原因有几点:
另外,注意量化过程只在forward时做,做完后copy回原来的weight,也就是后向更新梯度时,用的是旧的weight,否则会造成weight没法学习
2. Activation Quantization
在输入层/激活层/AvgPooling/Hardtanh/Upsample等后,添加量化损失的过程:
** Note: Training时限制相同的浮点范围 **
比如所有层统一限制0~4,如果第一层输入image范围是0~1,输出是0~4,那会造成其BN层的alpha比其他层要大4倍,引入更大的round量化误差
3. Conv+BN层量化的处理