分組卷積+squeezenet+mobilenet+shufflenet的引數及運算量解析

jacobssy發表於2018-07-16

之前被這幾個問題搞得很煩躁,記住了貌似領悟了,但是很快又會忘記,決心把這個寫得清楚點,方便自己查閱,也希望能幫助到有同樣困惑的朋友(個人理解,不一定正確,歡迎指出,在這裡不考慮偏置和加法計算量)

來一發普通的二維卷積

1.輸入feature map的格式為:m * m * h1

2.卷積核為 k * k

3.輸出feature map的格式為: n * n * h2

  • 引數量:k * k * h1 * h2

  • 計算量: k * k * h1 * n * n * h2

分組卷積

設分組大小為g,則:

  • 引數量: (k * k * h1/g * h2 /g) * g

  • 計算量:(k * k * h1/g *n *n * h2/g)*g

squeezenet

單元名字為fire_module, 先用一個1*1 但卷積核個數少於輸入的feature map 的進行squeeze,然後進入兩個個並行的1*1 ,3*3 的卷積,結果再concat,引數和運算量正常計算

mobilenet

用到了depth-wise 卷積:

  • 引數量:k*k*h1*1 + 1*1*h1*h2
  • 運算量:k*k*h1*n*n + 1*1*h2*n*n

shufflenet:

相當於把分組卷積裡的每組卷積之間進行channel的shuffle,引數與計算量類似分組卷積

相關文章