对深度可分离卷积、分组卷积、空洞卷积、转置卷积的理解

参考:
https://blog.csdn.net/chaolei3/article/details/79374563
https://blog.csdn.net/jiachen0212/article/details/78548667
https://blog.csdn.net/u014722627/article/details/60574260
https://blog.csdn.net/LoseInVain/article/details/81098502

深度可分离卷积
在《Python深度学习》(Keras之父执笔)这本书里看到:

注意,大部分(或全部)普通卷积很可能不久后会被深度可分离卷积(depthwise separable convolution)所替代, 后者与前者等效,但速度更快,表示效率更高。

  1. 简介
    在可分离卷积中,它将对区域和通道的计算分离开,而普通卷积是同时考虑区域和通道的。
  2. 通过例子对比可分离卷积和普通卷积的区别
    假设一个3×3大小的filter,其输入通道为16,输出通道为32
    普通卷积的参数: (3×3×16)×32=4068
    可分离卷积:
    先考虑区域,即每个通道对应一个3×3×1大小的filter, 然后考虑通道对应32个1×1×16大小的filter
    参数计算: (3×3×1)×16 + (1×1×16)×32=656
    下面这张图来自参考链接1
    在这里插入图片描述

分组卷积

  1. 简介
    Group convolution最早在AlexNet中出现,受硬件资源的限制,无法将卷积操作在一个GPU进行处理。
    分组卷积是沿通道方向将数据分组,假设分成g组,那么每一组中的通道数为c1/g,对应输出的通道数为c2/g。
  2. 通过一个例子理解分组卷积
    输入通道为256,输出通道为256,filter大小为3×3
    普通卷积的参数: (3×3×256)×256
    分组卷积:当组数为8时,每一组的输入通道数为32,输出通道数为32。((3×3×32)×32×8)
    可见,分组卷积的参数变为原来的八分之一,极大地减小了参数。

空洞卷积
空洞卷积是针对图像语义分割问题中下采样(即池化操作)会降低图像分辨率,丢失信息而提出的一种卷积思路。空洞卷积通过对卷积核添加空洞来扩大感受野,感受野是指数级增长的。
空洞卷积并不增加参数量,多出的点给出的权值就是0,无需训练。

转置卷积
用转置卷积进行上采样,当用神经网络生成图片的时候,经常需要将一些低分辨率的图片转换为高分辨率的图片。
简单来说,转置卷积恢复了原来的shape,value并不一致,但是维持了对应关系,即进行卷积操作的时候,x4影响了y0, y2位置的数值生成,那么转置卷积的时候,y0, y2 的值会影响x4值的生成,只是此时x4的值和之前的值不相同罢了。
下图来自李宏毅老师的课件
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/YQMind/article/details/82977172