神经网络——关于卷积

多通道卷积

计算量

图片

上图计算量为:28 x 28 x 192 x 5 x 5 x 32 = 120,422,400次

图片

引入1x1卷积后的计算量为:28 x 28 x 192 x 1 x 1 x 16 + 28 x 28 x 16 x 5 x 5 x 32 = 12,443,648次

权重个数与输出特征图大小

图片

假如 previous layer 的大小为 28x28x192,那么上面网络的权重个数为:1 x 1 x 192 x 64 + 3 x 3 x 192 x 128 + 5 x 5 x 192 x 32 = 387072个,其输出的特征图大小为:28 x 28 x 64 + 28 x 28 x 128 + 28 x 28 x 32 + 28 x 28 x 192 = 28 x 28 x 416

图片

如果previous layer的大小为28x28x192,那么上面网络的权重个数为:1 x 1 x 192 x 64 + (1 x 1 x 192 x 96 + 3 x 3 x 96 x 128) + (1 x 1 x 192 x16 + 5 x 5 x 16 x 32) + 1 x 1 x 192 x 32 = 163328个,其输出的特征图大小为:28 x 28 x 64 + 28 x 28 x 128 + 28 x 28 x 32 + 28 x 28 x 32 = 28 x 28 x 256

卷积后加偏置

preview

不同卷积的操作方法

(即上面的多通道卷积):1X1X100X20的卷积核,输出20个通道,此时是100个相同的数同时操作所有通道。

常规卷积

Depthwise Convolution:不同于常规卷积操作,Depthwise Convolution 的一个卷积核负责一个通道,一个通道只被一个卷积核卷积。上面所提到的常规卷积每个卷积核是同时操作输入图片的每个通道。Depthwise Convolution 完成后的 Feature map 数量与输入层的通道数相同,无法扩展 Feature map。而且这种运算对输入层的每个通道独立进行卷积运算,没有有效的利用不同通道在相同空间位置上的 feature 信息。因此需要 Pointwise Convolution 来将这些 Feature map 进行组合生成新的 Feature map。

Depthwise Convolution

Depthwise Convolution 的参数个数为:N_depthwise = 3 × 3 × 3 = 27。

Depthwise Convolution 实现,groups = in_channels 即可:
self.depth_conv = nn.Conv2d(
    in_channels=in_ch,
    out_channels=in_ch,
    kernel_size=3,        
    stride=1,
    padding=1,
    groups=in_ch
)

Pointwise Convolution:Pointwise Convolution 的运算与常规卷积运算非常相似,它的卷积核的尺寸为 1×1×M(即1*1卷积),M 为上一层的通道数。所以这里的卷积运算会将上一步的 map 在深度方向上进行加权组合,生成新的 Feature map。有几个卷积核就有几个输出 Feature map。

Pointwise Convolution

Pointwise Convolution 的参数个数为:N_pointwise = 1 × 1 × 3 × 4 = 12。

Depthwise Separable Convolution(深度可分离卷积): 在 MobileNet 中提出,是将一个完整的卷积运算分解为两步进行,即 Depthwise Convolution 与 Pointwise Convolution。这样做可以让参数量和计算量都大幅下降。Depthwise 层,只改变 feature map 的大小,不改变通道数。而 Pointwise 层则相反,只改变通道数,不改变大小。这样将常规卷积的做法(改变大小和通道数)拆分成两步走。

Depthwise Separable Convolution

空洞卷积

在不增加参数量的情况下,增大感受野,但在实际中不好优化,速度会大大折扣。参考:理解 Deformable Convolutional Networks - 知乎 

空洞卷积

分组卷积

在 Inception 中提出,如下图。将输入特征的通道数和卷积核个数分为 g 组,每组的卷积核负责各自输入特征的通道数,可将参数降低至原来的 1/g。当 g 等于1时退化为常规卷积,当 g 等于通道数时为 Depthwise Convolution。

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值