深度學習模型壓縮

2021-09-03 07:20:11 字數 1360 閱讀 9108

(1)引入1*1的卷積降維--inception v1

例如googlenet,假設輸入是28✖️28✖️192的feature map,1*1的channel是64,3*3的channel是128,5*5的channel是32

在左圖被3個 不同尺寸的卷積核卷積之後,參數量是1*1*192*64+3*3*192*64+5*5*192*32=265344

如右圖,如果在3*3和5*5之前分別新增channel為96和 16的1*1的卷積核降維後,參數量是1*1*192*64+(1*1*192*96+3*3*96*128)+(1*1*192*16+5*5*16*32)=157184,是原來的大約0.6倍

此外,1*1的卷積還可以引入非線性,實現跨通道資訊互動。

1*1卷積和fc不同,fc要求輸入尺寸固定,cnn沒有限制;

(2)小的卷積核代替大的卷積核---vggnet的思想,inception v2 2

個3*3

的conv

的感知野相當於1個

5*5的

3個3*

3的感知野相當於7*

7拆分的優點:

1.引入了更多的非線性,使網路學習能力更好;

2.減少了參數量

(3)用1*3和3*1的卷積

前提是矩陣的秩比較低,可以拆分

引入了factorization into small convolutions的思想,將乙個較大的二維卷積拆成兩個較小的一維卷積,比如將7´7卷積拆成1´7卷積和7´1卷積,或者將3✖️3卷積拆成1✖️3卷積和3✖️1卷積,如上圖所示。一方面節約了大量引數,加速運算並減輕了過擬合(比將7✖️7卷積拆成1✖️7卷積和7✖️1卷積,比拆成3個3✖️3卷積更節約引數),同時增加了一層非線性擴充套件模型表達能力。**中指出,這種非對稱的卷積結構拆分,其結果比對稱地拆為幾個相同的小卷積核效果更明顯,可以處理更多、更豐富的空間特徵,增加特徵多樣性。

2.學習蒸餾teacher-student網路

3.剪枝

4.量化

5.低位元

不改變模型和參數量,將float64的網路遷移到float32實現,理論上可以基本達到不掉精度,但是gpu的佔用率和記憶體大大減少

甚至是int16,int8,int4,甚至是二值三值的網路。

乙個v1-v4總結很好的部落格:

還沒看,先放個鏈結的

蒸餾法:

剪枝法:

模型壓縮:(經典:含蒸餾、剪枝、量化等介紹)

深度學習模型壓縮

前言 目前在深度學習領域分類兩個派別,一派為學院派,研究強大 複雜的模型網路和實驗方法,為了追求更高的效能 另一派為工程派,旨在將演算法更穩定 高效的落地在硬體平台上,效率是其追求的目標。複雜的模型固然具有更好的效能,但是高額的儲存空間 計算資源消耗是使其難以有效的應用在各硬體平台上的重要原因。最近...

深度學習 模型壓縮 PaddleSlim

paddleslim是乙個模型壓縮工具庫,包含模型剪裁 定點量化 知識蒸餾 超參搜尋和模型結構搜尋等一系列模型壓縮策略。對於業務使用者,paddleslim提供完整的模型壓縮解決方案,可用於影象分類 檢測 分割等各種型別的視覺場景。同時也在持續探索nlp領域模型的壓縮方案。另外,paddleslim...

深度學習模型壓縮方法綜述(一)

深度學習模型壓縮方法綜述 一 深度學習模型壓縮方法綜述 二 深度學習模型壓縮方法綜述 三 目前在深度學習領域分類兩個派別,一派為學院派,研究強大 複雜的模型網路和實驗方法,為了追求更高的效能 另一派為工程派,旨在將演算法更穩定 高效的落地在硬體平台上,效率是其追求的目標。複雜的模型固然具有更好的效能...