量化及定點化模型壓縮常見方法、特定及優缺點整理

量化及定點化模型壓縮常見方法、特定及優缺點整理

模型壓縮簡答說就是將龐大的深度學習模型進行壓縮,常見方法包括五大類,分別是剪枝、量化、正則化、知識蒸餾、條件計算。

量化是模型壓縮常用方法之一,本文不完全包括了一些神經網路Fixed-Point Training(定點化訓練)相關的方法進行了詳細整理,拆分,並對優缺點進行了對比分析。

資源整理自網路,資源獲取見源地址:https://github。com/A-suozhang/awesome-quantization-and-fixed-point-training

本文的最終目的是面向FPGA等嵌入式裝置的NN 部署/訓練,的一個軟體模擬工具。為了Scalability,會嘗試實現一些較為General的定點訓練技巧現方式

以及諸如MobileNet, ShuffleNet 等輕量化網路設計

Quantization的兩種主要方式

基於CodeBook的(Deep Compression) :實際引數還是高精度的,無法利用定點計算進行加速,僅能減少儲存

基於定點數(Fixed Point表示),(IBM的FP8也可以歸入此類) :可利用定點計算加速,故本文主要採取該方式

目前預計的幾種場景

Post-Training Quantization :

在完成FP訓練之後的壓縮,產生定點的W/A進行部署

Example:Distillation,EntropyConstraintQ, IncrementalQ

Quantize-Aware Training :

在訓練過程中考慮定點的影響,在訓練中採取Fixed,產生定點的W/A進行部署

Example:StraightThroughActivation的方法(訓練時用Fixed Inference,但是梯度是對應的全精度副本做)

Fixed-Point Training:

訓練過程中進行純定點(W/G/A),模擬在純定點裝置上進行訓練

Example:WAGE

有點激進,不知道是否能實現

Binary-Network

量化及定點化模型壓縮常見方法、特定及優缺點整理

量化及定點化模型壓縮常見方法、特定及優缺點整理

量化及定點化模型壓縮常見方法、特定及優缺點整理

量化及定點化模型壓縮常見方法、特定及優缺點整理