模型轻量化

1. 轻量化网络

参考: https://zhuanlan.zhihu.com/p/35405071

 

Mobilenet v1核心是把卷积拆分为Depthwise+Pointwise两部分。

模型轻量化_第1张图片图5

为了解释Mobilenet,假设有  的输入,同时有  个  的卷积。如果设置  且  ,那么普通卷积输出为  ,如图6。

模型轻量化_第2张图片图6 普通3x3卷积,k=2

Depthwise是指将  的输入分为  组,然后每一组做 卷积,如图7。这样相当于收集了每个Channel的空间特征,即Depthwise特征。

模型轻量化_第3张图片

图7 depthwise卷积,g=k=3

Pointwise是指对  的输入做  个普通的  卷积,如图8。这样相当于收集了每个点的特征,即Pointwise特征。Depthwise+Pointwise最终输出也是  。

模型轻量化_第4张图片

图8 pointwise卷积,k=2

这样就把一个普通卷积拆分成了Depthwise+Pointwise两部分。其实Mobilenet v1就是做了如下转换,如图9:

  • 普通卷积:3x3 Conv+BN+ReLU
  • Mobilenet卷积:3x3 Depthwise Conv+BN+ReLU 和 1x1 Pointwise Conv+BN+ReLU

模型轻量化_第5张图片图9

那这样做有什么好处?对比一下不同卷积的乘法次数:

  • 图6 普通卷积计算量为: 
  • 图7 Depthwise计算量为: 
  • 图8 Pointwise计算量为: 

通过Depthwise+Pointwise的拆分,相当于将普通卷积的计算量压缩为:

你可能感兴趣的:(模型轻量化)