1. 程式人生 > >(筆記)通過知識蒸餾和量化進行模型壓縮MODEL COMPRESSION VIA DISTILLATION AND QUANTIZATION

(筆記)通過知識蒸餾和量化進行模型壓縮MODEL COMPRESSION VIA DISTILLATION AND QUANTIZATION

(筆記)Model Compression via Distillation and Quantization

原文連結:

程式碼:

摘要

主要介紹了兩種演算法。
1)加入知識蒸餾loss的量化訓練。
2)訓練量化集p。

演算法一:加入知識蒸餾loss的量化訓練

有一個浮點模型w,一個量化模型w^q,用量化模型計算前向loss(加上知識蒸餾的loss),對w^q計算梯度,用以更新浮點模型。每次前向計算之前用更新的浮點模型更新量化模型。
這裡寫圖片描述

演算法二:訓練量化集p

此方法適合非線性量化。量化函式的輸入為浮點模型引數w和量化集合p。訓練在於優化量化集合p。
由量化函式、浮點模型w和量化集合p可得量化模型w^q,量化模型做前向傳播,對w^q求梯度,根據等式(6)求loss對p的梯度,更新p。
這裡寫圖片描述


這裡寫圖片描述

效果

最後用量化ResNet-18去學ResNet-34效果不好,於是採用更寬的ResNet-18,結果引數比ResNet-34多一倍多,bucket-size也用到了256個。
這裡寫圖片描述
這裡寫圖片描述
這裡寫圖片描述
這裡寫圖片描述
這裡寫圖片描述
這裡寫圖片描述