卷积的变种之分组卷积

分组卷积

介绍

分组卷积最初是在AlexNet网络中出现的,主要为了解决单个GPU无法处理含有大量计算量和存储需求的卷积层这个问题。目前,分组卷积多被用于构建用于移动设备的小型网络模型。例如深度可分离卷积。

原理

在介绍原理之前,需要放上一张经典的图示(图片来源)。
卷积的变种之分组卷积
其中,最上面的是传统卷积操作的示意图,下面的是分组卷积操作的示意图。

对分组卷积操作的说明:
既然是分组卷积,肯定是需要对输入特征图进行分组,例如:

  • 将输入特征图根据通道数分成g组,则每组输入特征图的尺寸为 H W ( c 1 / g ) HW(c_1/g) HW(c1/g)
  • 对应的卷积核大小为 h 1 w 1 ( c 1 / g ) h_1w_1(c_1/g) h1w1(c1/g),每组输出特征图尺寸为 H W ( c 2 / g ) HW(c_2/g) HW(c2/g)
  • 对g组的结果进行拼接,得到最终的输出特征图尺寸 H W c 2 HWc_2 HWc2
    参数量:
    h 1 w 1 ( c 1 / g ) ( c 2 / g ) g = h 1 w 1 c 1 c 2 ( 1 / g ) h_1w_1(c_1/g)(c_2/g)g=h_1w_1c_1c_2(1/g) h1w1(c1/g)(c2/g)g=h1w1c1c2(1/g),可见分组卷积的参数量是标准卷积的 1 / g 1/g 1/g