什么是卷积?
卷积是指在滑动中提取特征的过程,可以形象地理解为用放大镜把每步都放大并且拍下来,再把拍下来的图片拼接成一个新的大图片的过程。
一、普通卷积**:(“卷积”就是“加权求和”)**
更详细请看笔者的博文:矩阵乘法实现卷积运算_caip12999203000的博客-CSDN博客_矩阵乘法实现卷积
**1.**以2D卷积为例,2D卷积是一个相当简单的操作

我们先从一个小小的权重矩阵,也就是 卷积核(kernel) 开始,让它逐步在二维输入数据上“扫描”。卷积核“滑动”的同时,计算权重矩阵和扫描所得的数据矩阵的乘积,然后把结果汇总成一个输出像素。
这里原理上使用的是滑动窗口,但也可以有更多高效的方法,例如:笔者的另外一篇文章,使用的是矩阵乘法实现的卷积运算。
**2.**卷积后的尺寸大小转换公式

(其中W1为输入矩阵大小,K为卷积核大小,P为向外填充的参数,S为步长,W2为输出的矩阵大小)
**3.**功能
特征图大小不变或缩小。根据公式通过调整P和S参数可实现特征图大小不变以及缩小。
4**.各个指标比较(参数量、计算量、感受野)**
(输入的通道数为M,尺寸为DF x DF ,输出通道数为N,卷积核大小为DK x DK ,忽略偏执b。)

**5.**代码实现
Pytorch**(参考)**
import torch.nn as nn
import torch
# 输入值
im = torch.randn(1, 1, 5, 5)
# 普通卷积使用
c = nn.Conv2d(1, 1, kernel_size=2, stride=2, padding=1)
output = c(im)
# 输出
print("输入:\n",im.shape)
print("输出:\n",output.shape)
print("卷积核参数:\n",list(c.parameters()))
结果展示:

二、**转置****卷积(**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对空洞卷积进行了深入的思考。目标检测中SSD与RFBNet,同样使用了空洞卷积。
2)ESPNet**,** ESP模块模块包含point-wise****卷积和空洞卷积金字塔,每层具有不同的dilation rate,在参数量不增加的情况下,能够融合多尺度特征,相比于深度可分离卷积,深度可分离空洞卷积金字塔性价比更高。(参考)
**6.**代码实现
Pytorch**(参考)**
自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。
深知大多数Linux运维工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!
因此收集整理了一份《2024年Linux运维全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。





既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Linux运维知识点,真正体系化!
由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新
如果你觉得这些内容对你有帮助,可以添加VX:vip1024b (备注Linux运维获取)


最全的Linux教程,Linux从入门到精通
======================
-
linux从入门到精通(第2版)
-
Linux系统移植
-
Linux驱动开发入门与实战
-
LINUX 系统移植 第2版
-
Linux开源网络全栈详解 从DPDK到OpenFlow

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

本书适合广大Linux初中级用户、开源软件爱好者和大专院校的学生阅读,同时也非常适合准备从事Linux平台开发的各类人员。
需要《Linux入门到精通》、《linux系统移植》、《Linux驱动开发入门实战》、《Linux开源网络全栈》电子书籍及教程的工程师朋友们劳烦您转发+评论
一个人可以走的很快,但一群人才能走的更远。不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎扫码加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

大Linux初中级用户、开源软件爱好者和大专院校的学生阅读,同时也非常适合准备从事Linux平台开发的各类人员。**
需要《Linux入门到精通》、《linux系统移植》、《Linux驱动开发入门实战》、《Linux开源网络全栈》电子书籍及教程的工程师朋友们劳烦您转发+评论
一个人可以走的很快,但一群人才能走的更远。不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎扫码加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
[外链图片转存中…(img-xdvHAWsV-1712614563364)]
本文深入解析卷积操作,涵盖普通卷积、转置卷积(反卷积/解卷积)和膨胀卷积(空洞卷积/扩张卷积)。内容包括卷积的概念、尺寸转换公式、功能、参数量、计算量、感受野的比较,以及各类型卷积的代码实现。特别讨论了转置卷积在图像生成和语义分割中的应用,以及膨胀卷积在增大感受野方面的优势。

4万+

被折叠的 条评论
为什么被折叠?



