勵志

勵志人生知識庫

剪枝量化方法

剪枝量化方法結合了剪枝和量化的技術,以減少模型大小和提高計算效率。剪枝是一種減少神經網路中權重數量的方法,而量化則是將浮點權重轉換為低精度整數表示。

剪枝量化方法可以分為以下幾類:

K-Means量化方法:這種方法在最小值和最大值之間設立K個centroids,然後將參數中的每一個權值就近到其中一個centroid。這種方法可以根據K的大小調整量化的精度,K越大,量化精度越高,對應的量化bit位也越高。

二值量化方法:直接按符號進行二值化,或者使用兩個值的均值進行替換。例如,BS-Flexible方法就是對二值化進行改進,使其適用於self-attention層的1-bit att-quantization。

疊代幅度剪枝方法:將權值小於某一個閾值的參數全部用零替換。這種方法特別簡單,但效果相對有限。

剪枝量化流程:剪枝和量化通常是在模型訓練後進行的。首先進行訓練,然後進行剪枝,得到權重,最後再訓練。剪枝過程中,訓練過程的最佳化器不能太劇烈,也不能太溫柔,否則會破壞已有學到的東西。常用的最佳化器包括SGDAdam

量化原理:量化的原理是將權重映射到INT8的範圍之間,計算速度快。量化的映射範圍一般是不等分的,因為權重一般較小,在原點處可以近似看成等分。

量化計算驗證:使用一層3x3網路驗證量化計算,包括weight的value,zero_point,量化值和scale。輸入四張圖片,將其轉換成uint8,進行卷積計算(定點),然後再轉換回浮點。

綜上所述,剪枝量化方法通過結合剪枝和量化技術,可以在不影響模型性能的情況下,顯著減少模型大小和提高計算效率。