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)
