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之間進行:

調整係數計算如下,相鄰tensors按channel均衡調整之後,分佈範圍將達到相一致的水平:

2. Bias Correction

Per-tensor或Per-channel量化的誤差,直接體現在Conv2D等計算節點的輸出產生了誤差項:

沿channel c的誤差項,可按前置BN層的參數予以估計:

將估計獲得的誤差項補償回Bias,可提升一定的量化精度。

  • 基於BN層的調整策略

"A Quantization-Friendly Separable Convolution for MobileNets" 這篇文章2提出了基於BN層的調整策略,即將BN層中趨於零的Variance替換爲剩餘Variance的均值,以消除對應通道輸出的奇異性,從而獲得對量化更爲友好的Activation數值分佈。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章