1. 輕量化網絡
參考: https://zhuanlan.zhihu.com/p/35405071
Mobilenet v1核心是把卷積拆分為Depthwise+Pointwise兩部分。
圖5
為了解釋Mobilenet,假設有 的輸入,同時有
個
的卷積。如果設置
且
,那么普通卷積輸出為
,如圖6。
圖6 普通3x3卷積,k=2
Depthwise是指將 的輸入分為
組,然后每一組做
卷積,如圖7。這樣相當於收集了每個Channel的空間特征,即Depthwise特征。
圖7 depthwise卷積,g=k=3
Pointwise是指對 的輸入做
個普通的
卷積,如圖8。這樣相當於收集了每個點的特征,即Pointwise特征。Depthwise+Pointwise最終輸出也是
。
圖8 pointwise卷積,k=2
這樣就把一個普通卷積拆分成了Depthwise+Pointwise兩部分。其實Mobilenet v1就是做了如下轉換,如圖9:
- 普通卷積:3x3 Conv+BN+ReLU
- Mobilenet卷積:3x3 Depthwise Conv+BN+ReLU 和 1x1 Pointwise Conv+BN+ReLU
圖9
那這樣做有什么好處?對比一下不同卷積的乘法次數:
- 圖6 普通卷積計算量為:
- 圖7 Depthwise計算量為:
- 圖8 Pointwise計算量為:
通過Depthwise+Pointwise的拆分,相當於將普通卷積的計算量壓縮為: