(C3)卷积层特点及torch.nn.Conv2d()

卷积层

文章目录

  • 卷积层
    • 一、常规卷积
      • 1.1 特点
      • 1.2 参数量 和 计算量
    • 二、分组卷积
    • 三、可分离卷积
      • 3.1 逐深度卷积(Depthwise Convolution)
      • 3.2 逐点卷积(Pointwise Convolution)
      • 3.3 代码实现 ⭐

一、常规卷积

参考资料
卷积神经网络之卷积层中的多输入多输出通道
卷积中参数量和计算量
有图文讲解,更通俗易懂。

(C3)卷积层特点及torch.nn.Conv2d()_第1张图片

1.1 特点

1、每一个输入通道都有一个卷积核,输出的通道结果是所有输入通道和对应卷积核作用后结果的和
2、1×1的卷积核用于融合通道数据
(C3)卷积层特点及torch.nn.Conv2d()_第2张图片

1.2 参数量 和 计算量

直接截图记录

参数量

计算量

注:浮点运算量 FLOPs 和计算量不同,需要时再仔细查。


二、分组卷积

分组卷积(Group conv)与深度可分离卷积(Depthwise separable conv) ⭐

(C3)卷积层特点及torch.nn.Conv2d()_第3张图片
(C3)卷积层特点及torch.nn.Conv2d()_第4张图片

(C3)卷积层特点及torch.nn.Conv2d()_第5张图片


三、可分离卷积

空间可分离卷积(Spatially Separable Convolutions):不知道哪里提出来的

深度可分离卷积(depthwise separable convolution):逐深度卷积(Depthwise Convolution)、逐点卷积(Pointwise Convolution)。

这个感觉上更常用

3.1 逐深度卷积(Depthwise Convolution)

(C3)卷积层特点及torch.nn.Conv2d()_第6张图片

Depthwise Convolution完成后的Feature map数量与输入层的depth相同,但是这种运算对输入层的每个channel独立进行卷积运算后就结束了,没有有效的利用不同map在相同空间位置上的信息。因此需要增加另外一步操作来将这些map进行组合生成新的Feature map,即接下来的Pointwise Convolution。

3.2 逐点卷积(Pointwise Convolution)

(C3)卷积层特点及torch.nn.Conv2d()_第7张图片

(C3)卷积层特点及torch.nn.Conv2d()_第8张图片
Dk:卷积核大小

M:输入尺寸

N:输出尺寸

3.3 代码实现 ⭐

参考资料
可分离卷积及深度可分离卷积详解

torch.nn.Conv2d(in_channels, out_channels, kernel_size, stride=1, padding=0, dilation=1, groups=1, bias=True, padding_mode='zeros')

(C3)卷积层特点及torch.nn.Conv2d()_第9张图片

你可能感兴趣的:(CNN基础知识积累,深度学习,人工智能,神经网络)