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 普通卷積計算量為:
![[公式]](/image/aHR0cHM6Ly93d3cuemhpaHUuY29tL2VxdWF0aW9uP3RleD1IJTVDdGltZXMrVyslNUN0aW1lcytDJTVDdGltZXMrayslNUN0aW1lcyszJTVDdGltZXMrMw==.png)
- 圖7 Depthwise計算量為:
![[公式]](/image/aHR0cHM6Ly93d3cuemhpaHUuY29tL2VxdWF0aW9uP3RleD1IJTVDdGltZXMrVyslNUN0aW1lcytDKyU1Q3RpbWVzKzMlNUN0aW1lcysz.png)
- 圖8 Pointwise計算量為:
![[公式]](/image/aHR0cHM6Ly93d3cuemhpaHUuY29tL2VxdWF0aW9uP3RleD1IJTVDdGltZXMrVyU1Q3RpbWVzK0MlNUN0aW1lcytr.png)
通過Depthwise+Pointwise的拆分,相當於將普通卷積的計算量壓縮為:
![[公式]](/image/aHR0cHM6Ly93d3cuemhpaHUuY29tL2VxdWF0aW9uP3RleD0lNUNmcmFjJTdCZGVwdGh3aXNlJTJCcG9pbnR3aXNlJTdEJTdCY29udiU3RCUzRCU1Q2ZyYWMlN0JIJTVDdGltZXMrVyslNUN0aW1lcytDKyU1Q3RpbWVzKzMlNUN0aW1lcyszKyUyQitIJTVDdGltZXMrVyU1Q3RpbWVzK0MlNUN0aW1lcytrJTdEJTdCSCU1Q3RpbWVzK1crJTVDdGltZXMrQyU1Q3RpbWVzK2srJTVDdGltZXMrMyU1Q3RpbWVzKzMlN0QlM0QlNUNmcmFjJTdCMSU3RCU3QmslN0QrJTJCJTVDZnJhYyU3QjElN0QlN0IzJTVDdGltZXMrMyU3RA==.png)
