【通俗易懂系列】深度可分离卷积

在计算资源受限制的移动端设备上,常规的卷积操作由于运算量大,经常难以满足实际运行速度的要求,这时,深度可分离卷积(Depthwise Separable Convolution)就排上了用场。深度可分离卷积是由Depthwise(DW)卷积与Pointwise(PW)卷积组成。该结构和常规卷积类似,可用来提取特征,但相比常规卷积,其参数量和运算成本较低。所以在一些轻量级网络中经常会用到此类结构,如MobileNet,ShuffleNet等。

常规卷积
对于一幅128×128像素、三通道彩色输入图像(尺寸为128×128×3),经过一个包含4个Filter的3×3卷积核的卷积层(Filter的个数对应输出通道数,此时卷积核尺寸为3×3×3×4),最终输出4个特征图(Feature Map)。整个过程可以用下图来表示。

conv-std

此时,卷积层共有4个Filter,每个Filter包含3个Kernel,每个Kernel的大小为3×3。因此卷积层的参数数量可以用如下公式来计算:

N_std = 4 × 3 × 3 × 3 = 108

深度可分离卷积
深度可分离卷积是将一个完整的卷积运算分解为两步进行,即Depthwise卷积与Pointwise卷积。

1)Depthwise卷积
不同于常规卷积操作,Depthwise卷积的一个卷积核负责一个通道,一个通道只被一个卷积核卷积。上面所提到的常规卷积每个卷积核是同时操作输入图片的每个通道。

同样是对于一幅128×128像素、三通道彩色输入图像(尺寸为128×128×3),Depthwise卷积首先经过第一次卷积运算,不同于上面的常规卷积,Depthwise卷积完全是在二维平面内进行。卷积核的数量与上一层的通道数相同,即,通道和卷积核一一对应。所以一个三通道的图像经过运算后生成了3个特征图,如下图所示。

depthwise-conv
其中一个Filter只包含一个大小为3×3的Kernel,卷积部分的参数个数计算如下:

N_depthwise = 3 × 3 × 3 = 27

Depthwise卷积完成后的特征图数量与输入层的通道数相同,无法扩展特征图数目。而且这种运算对输入层的每个通道独立进行卷积运算,没有有效地利用不同通道在相同空间位置上的特征信息。因此需要Pointwise卷积来将这些特征图进行组合生成新的特征图。

2)Pointwise卷积
Pointwise卷积的运算与常规卷积运算类似,它的卷积核的尺寸为 1×1×M,M为上一层的通道数。这里的卷积运算会将上一步的特征图在通道方向上进行加权组合,生成新的特征图。有几个卷积核就有几个输出特征图。如下图所示。
pointwise-conv

由于采用的是1×1卷积的方式,此步中卷积涉及到的参数个数可以计算为:

N_pointwise = 1 × 1 × 3 × 4 = 12

经过Pointwise卷积之后,同样输出了4张特征图,与常规卷积的输出维度相同。

参数对比
常规卷积的参数个数为:

N_std = 4 × 3 × 3 × 3 = 108

深度可分离卷积的参数由两部分相加得到:

N_depthwise = 3 × 3 × 3 = 27
N_pointwise = 1 × 1 × 3 × 4 = 12
N_separable = N_depthwise + N_pointwise = 39

相同的输入,同样是得到4张特征图,深度可分离卷积的参数个数是常规卷积的约三分之一。因此,在参数量相同的前提下,采用深度可分离卷积的神经网络层数可以做的更深。


参考文献
https://yinguobing.com/separable-convolution/

  • 47
    点赞
  • 143
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 5
    评论
分组卷积和深度可分离卷积是两种常用的卷积操作方法。 分组卷积(grouped convolution)是将输入的通道分成多个组,每个组内的通道进行独立的卷积操作,然后将各组的结果进行拼接。这种方法可以减少计算量和参数量,同时提高模型的非线性表达能力。例如,如果将输入的通道数分为两组,那么每组只需要进行一半的卷积操作,从而减少了计算量和参数量。 深度可分离卷积(depthwise separable convolution)是将标准卷积操作拆分成两个步骤:深度卷积和逐点卷积。首先,深度卷积操作对每个输入通道进行独立的卷积,然后使用逐点卷积将深度卷积的结果进行组合。深度可分离卷积可以有效地减少参数量和计算量,同时保持模型的表达能力。这种方法在轻量化和移动端模型中被广泛使用。 综上所述,分组卷积和深度可分离卷积是两种常用的卷积操作方法,它们可以在神经网络中提高计算效率并减少参数量,同时保持模型的表达能力。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* [对深度可分离卷积、分组卷积、空洞卷积的通俗理解(上篇)](https://blog.csdn.net/qq_27825451/article/details/102457264)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] - *3* [各种卷积层的理解(深度可分离卷积、分组卷积、扩张卷积、反卷积)](https://blog.csdn.net/gwplovekimi/article/details/89890510)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小麦草

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值