卷积总结篇(普通卷积、转置卷积、膨胀卷积、分组卷积和深度可分离卷积)_dw卷积(1)

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化的资料的朋友,可以点击这里获取!

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

二、**转置****卷积(**Convolution Transposed,又叫反卷积、解卷积

更详细请看笔者的博文:转置卷积(Convolution Transposed又叫反卷积、解卷积)_caip12999203000的博客-CSDN博客

1.概念或背景

在这里插入图片描述

通常,对图像进行多次卷积运算后,特征图的尺寸会不断缩小。而对于某些特定任务 (如图像分割和图像生成等),需将图像恢复到原尺寸再操作。这个将图像由小分辨率映射到大分辨率的尺寸恢复操作,叫做 上采样 (Upsample)****。

**2.**卷积后的尺寸大小转换公式

(其中W1为输入矩阵大小,K为卷积核大小,P为向外填充的参数,S为步长,W2为输出的矩阵大小)

**3.**功能

特征图变大**(上采样)****。**将低分辨率的特征图样上采样到原始图像的分辨率大小,以给出原始图片的分割结果。

4.各个指标比较(参数量、计算量、感受野)

(输入的通道数为M,尺寸为DF x DF ,输出通道数为N,卷积核大小为DK  x DK ,忽略偏执b。)

**5.**转置卷积用途

**1)** DCGAN,生成器将随机值转变为一个全尺寸图片,此时需用到转置卷积。

2**)**在语义分割中,会在编码器中用卷积层提取特征,然后在解码器中恢复原先尺寸,从而对原图中的每个像素分类。该过程同样需用转置卷积。经典方法有 FCN U-net

3)CNN 可视化:通过转置卷积将 CNN 的特征图还原到像素空间,以观察特定特征图对哪些模式的图像敏感。

6**.**代码实现

Pytorch**(参考)**

import torch.nn as nn
import torch
# 输入值
im = torch.randn(1, 1, 5, 5)
# 转置卷积使用
c = nn.ConvTranspose2d(1, 1, kernel_size=2, bias=False)
output = c(im)
# 输出
print("输入:\n",im.shape)
print("输出:\n",output.shape)
print("卷积核参数:\n",list(c.parameters()))

结果展示


三、膨胀卷积( Dilated Convolution,又叫空洞卷积、扩张卷积

更详细请看笔者的博文:

膨胀卷积(Dilated convolutions)(又成空洞卷积、扩张卷积)_caip12999203000的博客-CSDN博客

1.概念或背景

在这里插入图片描述

膨胀卷积是在标准卷积的Convolution map的基础上注入空洞,以此来增加感受野(reception field)。因此,膨胀卷积在标准卷积的基础上又多了一个超参数(hyper-parameter)称之为膨胀率(dilation rate),该超参数指的是kernel的间隔数量。膨胀卷积是****为解决语义分割任务而提出的。

**2.**卷积后的尺寸大小转换公式

(其中W1为输入矩阵大小,K为卷积核大小,P为向外填充的参数,S为步长,a为膨胀率,W2为输出的矩阵大小)

**3.**功能

增大感受野,卷积核中间填充0。在于普通卷积相同的计算条件下的情况下,该卷积可以增大特征图的感受野。另外,通过修改padding的大小,可以保证输入输出特征图的shape不变。

4.各个指标比较(参数量、计算量、感受野)

(输入的通道数为M,尺寸为DF x DF ,输出通道数为N, a为膨胀率,卷积核大小为DK  x DK ,忽略偏执b。)

**5.**膨胀卷积用途

1)膨胀卷积**(Dilated Convolution**),广泛应用于语义分割与目标检测等任务中,语义分割中经典的deeplab系列与DUC对空洞卷积进行了深入的思考。目标检测中SSDRFBNet,同样使用了空洞卷积。

2)ESPNet**,** ESP模块模块包含point-wise****卷积空洞卷积金字塔,每层具有不同的dilation rate,在参数量不增加的情况下,能够融合多尺度特征,相比于深度可分离卷积,深度可分离空洞卷积金字塔性价比更高。(参考

**6.**代码实现

Pytorch**(参考)**

膨胀卷积中,padding与dilation所使用的因子需要是相同的,否则,可能会导致图像的尺寸会发生变化,就不是膨胀卷积了。

import torch.nn as nn
import torch
# 输入值
im = torch.randn(1, 1, 5, 5)
# 膨胀卷积使用
dilation=2 # 膨胀率
c=nn.Conv2d(1, 1, kernel_size=2, stride=2,
                    padding=dilation, bias=False, dilation=dilation)
output = c(im)
# 输出
print("输入:\n",im.shape)
print("输出:\n",output.shape)
print("卷积核参数:\n",list(c.parameters()))

结果展示:


四、分组卷积(Group Convolution)

更详细请看笔者的博文:

组卷积和深度可分离卷积_caip12999203000的博客-CSDN博客

1.概念或背景

分组卷积(Group Convolution)顾名思义,在对特征图进行卷积的时候,首先对特征图分组再卷积。

**2.**卷积后的尺寸大小转换公式

(其中W1为输入矩阵大小,K为卷积核大小,P为向外填充的参数,S为步长,W2为输出的矩阵大小)

**3.**功能

**1)**减少参数量,分成G组,则该层的参数量减为原来的1/G。
2)分组卷积可以看做是对原来的特征图进行了一个dropout,有正则的效果

4.各个指标比较(参数量、计算量、感受野)

(输入的通道数为M,尺寸为DF x DF ,输出通道数为N,卷积核大小为DK  x DK ,g为组数,忽略偏执b。)

**5.**分组卷积用途

**1)**分组卷积,最早在AlexNet中出现,由于当时的硬件资源有限,训练AlexNet时卷积操作不能全部放在同一个GPU处理,因此作者把feature maps分给多个GPU分别进行处理,最有把多个GPU的结果进行融合。

2) IGCV1**,**   简单通道的分组,都是只有一个分组,而以IGCV(Interleaved Group Convolutions交替组卷积)系列为代表的模型采用了多个分组卷积结构级联的形式。(参考

6**.**代码实现

Pytorch**(参考)**

import torch.nn as nn
import torch
import numpy as np
# 输入值
im = torch.randn(1, 4, 5, 5)
# 分组卷积使用
groups = 2 # 组数
c=nn.Conv2d(4, 2, kernel_size=2, stride=2,
                     padding=2, groups=groups, bias=False)
output = c(im)
# 输出
print("输入:\n",im.shape)
print("输出:\n",output.shape)
print("卷积核参数:\n",list(c.parameters()))

结果展示:

​​​​​​

五、深度可分离卷积

更详细请看笔者的博文:

组卷积和深度可分离卷积_caip12999203000的博客-CSDN博客

在计算资源受限制的移动端设备上,常规的卷积操作由于计算量大,经常难以满足实际运行速度的要求,这时深度可分离卷积(Depthwise Separable Convolution)就派上了用场。**深度可分离卷积是由Depthwise(DW)卷积与Pointwise(PW)卷积组成。该结构和常规卷积类似,可用来提取特征,但相比常规卷积,其参数量和运算成本较低,所以在一些轻量级网络中经常用到此结构,如MobileNet、**ShuffleNet

1.逐通道卷积Depthwise **ConvolutionDW卷积)**

Depthwise Convolution的一个卷积核负责一个通道一个通道只被一个卷积核卷积,这个过程产生的Feature Map通道数和输入的通道数一样。

2.逐点卷积Pointwise ConvolutionPW卷积**)**

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

**3.**深度可分离卷积的功能

可以看出运用深度可分离卷积比普通卷积减少了所需要的参数。重要的是深度可分离卷积将以往普通卷积操作同时考虑通道和区域改变成,卷积先只考虑区域,然后再考虑通道。实现了通道和区域的分离。

**4.**各个指标比较(参数量、计算量、感受野)

(输入的通道数为M,尺寸为DF x DF ,输出通道数为N, a为膨胀率,卷积核大小为DK  x DK , n为卷积核的个数,忽略偏执b。)

5.深度可分离卷积用途

1)在一些轻量级网络中经常用到此结构,如MobileNet****、ShuffleNetSqueezeNet

  1. Xception**,**  基 于Inception系列网络结构的基础上,结合depthwise separable convolution, 就是Xception。(参考

6**.**代码实现

Pytorch

import torch.nn as nn
import torch
import numpy as np
# 输入值
im = torch.randn(1, 4, 5, 5)
# 深度可分卷积使用
hidden_channel = 4 # 组数
out_channel = 1
# DW卷积
c1 = nn.Conv2d(hidden_channel, hidden_channel, kernel_size=2, stride=2, padding=2, groups=hidden_channel, bias=False)
# PW卷积
c2 = nn.Conv2d(hidden_channel, out_channel, kernel_size=1, bias=False)


![](https://img-blog.csdnimg.cn/img_convert/9a8cb5f8c0ec69e6499adead0da6e95b.png)


最全的Linux教程,Linux从入门到精通

======================

1.  **linux从入门到精通(第2版)**

2.  **Linux系统移植**

3.  **Linux驱动开发入门与实战**

4.  **LINUX 系统移植 第2版**

5.  **Linux开源网络全栈详解 从DPDK到OpenFlow**



![华为18级工程师呕心沥血撰写3000页Linux学习笔记教程](https://img-blog.csdnimg.cn/img_convert/59742364bb1338737fe2d315a9e2ec54.png)



第一份《Linux从入门到精通》466页

====================

内容简介

====

本书是获得了很多读者好评的Linux经典畅销书**《Linux从入门到精通》的第2版**。本书第1版出版后曾经多次印刷,并被51CTO读书频道评为“最受读者喜爱的原创IT技术图书奖”。本书第﹖版以最新的Ubuntu 12.04为版本,循序渐进地向读者介绍了Linux 的基础应用、系统管理、网络应用、娱乐和办公、程序开发、服务器配置、系统安全等。本书附带1张光盘,内容为本书配套多媒体教学视频。另外,本书还为读者提供了大量的Linux学习资料和Ubuntu安装镜像文件,供读者免费下载。



![华为18级工程师呕心沥血撰写3000页Linux学习笔记教程](https://img-blog.csdnimg.cn/img_convert/9d4aefb6a92edea27b825e59aa1f2c54.png)



**本书适合广大Linux初中级用户、开源软件爱好者和大专院校的学生阅读,同时也非常适合准备从事Linux平台开发的各类人员。**

> 需要《Linux入门到精通》、《linux系统移植》、《Linux驱动开发入门实战》、《Linux开源网络全栈》电子书籍及教程的工程师朋友们劳烦您转发+评论




**网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。**

**[需要这份系统化的资料的朋友,可以点击这里获取!](https://bbs.csdn.net/forums/4f45ff00ff254613a03fab5e56a57acb)**

**一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!**

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值