1×1卷积在神经网络中的理解和应用

1×1卷积

我们经常会在各种网络中看到1×1的卷积核,这是一个非常实用的卷积核,那么为什么要使用1×1的卷积核呢?
我们可以从两个角度进行理解

信息融合

在这里插入图片描述
1×1卷积运算可以将多个通道的信息进行融合,例如上图中三个通道进行卷积后,变为一个通道,不同通道相同位置的像素会被加权相加在结果像素中。
在MobileNet中,需要进行Depthwise和pointwise操作:
在这里插入图片描述

  • Depthwise:将每一个通道分为一个组,每组一个卷积核专门负责这一个通道的卷积,相比于普通的卷积,计算量大大下降
  • Poinwise:因为每一个通道间都有关联,若只进行Depthwise会损失很多信息,我们需要将多个不相关的通道中的信息进行融合,就需要用到1×1卷积

升降维(减小计算量)

在这里插入图片描述

如上图所示,如果仅采用5×5的卷积核进行运算,那么我们的计算量是in_channels * Win * Hin * kernel_size ^ 2 * out_channels * Wout * Hout = 120,422,400

若先经过1×1的卷积运算将通道数将为16后在进行5 * 5的卷积运算,那么运算量会减少到十分之一

由此我们可以得到,通过1 * 1的卷积运算可以大大降低卷积运算的运算量

应用:googlenet每一个Inception最后、ResNet用于升降维、MobileNet 中的Pointwise
如下图所示(GoogleNet中的一个Inception):
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/gary101818/article/details/124573364
今日推荐