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