Post-training量化策略——without training or re-training

基于Pre-trained模型,采用Post-training量化策略,能够在一定程度上弥补量化精度损失,并且避免了相对耗时的quantization-ware training或re-training过程。

  • WA与BC

"Data-Free Quantization through Weight Equalization and Bias Correction" 这篇文章提出了两种post-training策略,包括Weight Adjustment (WA)与Bias Correction (BC)。

Paper地址:

1. Weight Adjustment

在执行Per-tensor量化时,由于Weights或Activation的数值分布存在奇异性,例如存在个别数值较大的outliers,导致宽泛的分布区间对量化(如MAX方法)不友好,产生较大的量化精度损失。Weight Adjustment通过在相邻的[Weight-tensor, Weight-tensor]或[Activation-tensor, Weight-tensor]之间,执行均衡调整、等价变换(确保变换后推理精度不变),使得调整之后的数值分布对量化更为友好。

具体的WA策略如下所示,均衡调整通常在W1的output channel与W2的input channel之间进行:

Post-training量化策略——without training or re-training_第1张图片

Post-training量化策略——without training or re-training_第2张图片

调整系数计算如下,相邻tensors按channel均衡调整之后,分布范围将达到相一致的水平:

Post-training量化策略——without training or re-training_第3张图片

2. Bias Correction

Per-tensor或Per-channel量化的误差,直接体现在Conv2D等计算节点的输出产生了误差项:

Post-training量化策略——without training or re-training_第4张图片

沿channel c的误差项,可按前置BN层的参数予以估计:

Post-training量化策略——without training or re-training_第5张图片

将估计获得的误差项补偿回Bias,可提升一定的量化精度。

  • 基于BN层的调整策略

"A Quantization-Friendly Separable Convolution for MobileNets" 这篇文章2提出了基于BN层的调整策略,即将BN层中趋于零的Variance替换为剩余Variance的均值,以消除对应通道输出的奇异性,从而获得对量化更为友好的Activation数值分布。

你可能感兴趣的:(深度学习,模型压缩,优化加速,模型压缩,深度学习,模型量化)