pytorch中Conv1d、Conv2d与Conv3d详解

本文介绍了卷积的概念、意义及图像卷积处理方法。卷积可模拟生物视觉、提升算法性能和压缩数据。还详细阐述了PyTorch中的一维、二维、三维卷积,以及空洞卷积、转置卷积和深度可分离卷积,给出函数原型、原理示意图和示例代码。

1 卷积介绍

1.1 什么是卷积

卷积(convolution),是一种运算,你可以类比于加,减,乘,除,矩阵的点乘与叉乘等等,它有自己的运算规则,卷积的符号是星号*。表达式为:

连续卷积表达式:

离散卷积表达式为:

从参数上来看,x + (n-x) = n,可以类比为x + y = n,也就是说f, g的参数满足规律y = -x + n,即g的参数是f的参数先翻转再平移n。把g从右边褶到左边去,也就是卷积的卷的由来。然后在这个位置对两个函数的对应点相乘,然后相加,这个过程是卷积的积的过程。

因此卷积的过程可以理解为:翻转,滑动,叠加。其中翻转指的是g,滑动指的是n值在不断改变。最终将他们相乘相加。

1.2 卷积的意义

在泛函分析中,卷积、旋积或褶积是通过两个函数f和g生成第三个函数的一种数学运算,其本质是一种特殊的积分变换,表征函数f与g经过翻转和平移的重叠部分函数值乘积对重叠长度的积分。

如果将参加卷积的一个函数看作区间的指示函数,卷积还可以被看作是“滑动平均”的推广。卷积的意义如下:

  • 模拟生物视觉:卷积操作模拟了人眼对图像进行观察、辨认的过程,因此卷积在图像处理领域应用广泛。它可以帮助我们理解人类视觉系统如何工作,并且为我们提供了一种有效的处理图像和语音的方法。

  • 提升算法性能:卷积神经网络(CNN)是目前深度学习中最重要的模型之一,其基本结构就是卷积层,卷积操作在图像识别、语音识别和自然语言处理等领域提升了算法的性能。这使得卷积成为了现代机器学习和人工智能的重要组成部分。

  • 数据压缩:卷积可以通过降维和滤波等操作减小数据的尺寸,从而实现数据的压缩。这对于处理大规模数据、实现数据存储和传输非常有用。

1.3 图像的卷积处理

对图像的blur操作,即降噪平滑操作,就是使用的卷积运算,最终的效果取决于卷积核的设置。以单通道卷积为例。

均值卷积核,就是认为目标像素点的值是周围值的平均数,即周围各点对它的影响是一样的,此处卷积核以3X3为例。

高斯滤波认为各个像素点距离核中心的距离不一样,导致颜色的贡献程度不一样,因此给不同的点不同的权重。取图像中的部分像素点

我们把这个矩阵看成f(x,y)函数,下标为参数,像素点的值为函数结果,那么要求f(1,1)处的卷积运算结果,因为现在是二维函数了,因此对应的卷积表达式为:

对应到本例u=1, v=1

 

我们来构建g(1-x, 1-y)函数,暂定为3X3的矩阵,我们知道目标点f(1,1)要对应g(0,0),如果将g(0,0)设置在核的中心,那么根据下标展开之后我们就可以构建出g

 有了g函数之后,就可以执行运算了,注意运算的时候 f 和 g 的参数要符合卷积公式,即

其实这样就够了,但是便于理解和说明,我们将矩阵先沿着X轴翻转,再沿Y轴翻转,中心点在 g(0,0) 处,得到

虽然翻转了,但是运算公式没有变化,只是从观察上更好一一对应,也更方便计算。 

注意,将卷积核盖在目标像素点上面,将对应的像素点相乘相加,这种运算应该叫互相关运算(cross-correlation),通过将g进行翻转,使得卷积运算变成了互相关运算,将翻转之后的矩阵称为卷积核,并且在设计卷积核的时候就是参照互相关运算来的,而不会去关心真正的卷积运算。因此在实际应用中通常是直接去构建这个最终的矩阵。

在后续的计算中,将结果赋值给f(1,1),然后向右平移一格,达到边界后向下平移一格继续从左边开始卷积。整个过程中最外一层无法被算到,解决的方法是将原图像向外扩大一圈像素点并设置为0。通过设置不同的卷积核来达到不同的结果,这是机器视觉的基础操作。

2 pytorch中的卷积

CNN是深度学习的重中之重,而conv1Dconv2D,和conv3D又是CNN的核心,所以理解conv的工作原理就变得尤为重要,卷积中几个核心概念如下:

  • 卷积运算:卷积核在输入信号(图像)上滑动,相应位置上进行乘加。

  • 卷积核:又称为滤波器,过滤器,可认为是某种特征。

  • 卷积过程类似于用一个模版去图像上寻找与它相似的区域,与卷积核模式越相似,激活值越高,从而实现特征提取。

  • 卷积维度:一般情况下 ,卷积核在几个维度上滑动就是几维卷积。

2.1 一维卷积nn.Conv1d

一维卷积n

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

源启智能

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值