幾種輕量化卷積網絡計算量

 就近年提出的四個輕量化模型進行學習和對比,四個模型分別是:MobileNet、SqueezeNet、ShuffleNet。

 M表示輸入特徵的通道數,N表示輸出特徵的通道數。卷積核大小爲K*K,輸出特徵圖大小爲F*F.

1.普通卷積網絡的計算量: K*K*M*N*F*F.

   普通卷積網絡的參數量:K*K*M*N

2.MobileNet

   採用名爲 depth-wise separable convolution 的卷積方式代替傳統卷積方式,以達到減少網絡權值參數的目的。

通過採用 depth-wise convolution 的卷積方式,達到:1. 減少參數數量 2. 提升運算速度。

   第一步 Depth-wise convolution, 即逐通道的卷積,一個卷積核負責一個通道,一個通道只被一個卷積核「濾波」;第二步,Pointwise convolution,將 depth-wise convolution 得到的 feature map 再「串」起來,注意這個「串」是很重要的。

  mobileNet計算量: K*K*M*F*F+M*N*F*F

  mobileNet參數量:K*K*M+M*N 

  mobileNet與普通卷積操作的計算量比值:

\frac{K*K*M*F*F+N*M*F*F}{K*K*M*N*F*F}= \frac{1}{N}+\frac{1}{K^{2}}

3.分組卷積(group Convolution)

   分組大小爲G

    分組卷積的參數量=(K*K*M/G*N/G)*G

    分組卷積的計算量= (K*K*M/G*F*F*N/G)*G

4.Shufflenet

shuffle 具體來說是 channel shuffle,是將各部分的 feature map 的 channel 進行有序的打亂,構成新的 feature map,以解決 group convolution 帶來的「信息流通不暢」問題。

Shufflenet計算量:相當於把分組卷積裏每組卷積之間的channel進行shuffle,參數量與計算量類似分組卷積。

5.Squeezenet

首先 squeeze 層,就是 1*1 卷積,其卷積核數要少於上一層 feature map 數,這個操作從 inception 系列開始就有了,並美其名曰壓縮,個人覺得「壓縮」更爲妥當。

Expand 層分別用 1*1 和 3*3 卷積,然後 concat,這個操作在 inception 系列裏面也有。

Squeezenet計算量:先用1*1的卷積核(個數少於輸入通道)進行壓縮,然後進入兩個並行的1*1,3*3的卷積,結果再concat,參數和運算量正常計算。

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章