admin 管理员组

文章数量: 1087139


2024年5月30日发(作者:浏览器跨域解决方案)

卷积padding公式

卷积是深度学习中常用的一种操作,卷积层通常会加

上padding来保证输出的尺寸和输入的尺寸一样,从而更

好的保留图像的所有信息。本文将讨论卷积中padding的

定义、原理和公式。

一、定义

padding是指在卷积中,在输入的边缘填充一些全0

像素,以增加输出尺寸的技术,保证输出尺寸和输入尺寸

一致。padding的作用既可以保持尺寸,又可以避免在卷积

进行的时候边界信息丢失而影响最终结果。padding操作通

常应用于图像处理,但是在其他领域,如自然语言处理、

语音处理等方面也有所应用。

在卷积中,如果输入尺寸为 n × n ,卷积核尺寸为

k × k ,padding尺寸为 p ,那么输出尺寸的计算公式如

下:

输出尺寸 = (n - k + 2p)/ s + 1

其中,s表示步幅(stride)。如果不进行padding

操作,那么输出尺寸是(n - k)/ s + 1。padding对卷积

操作产生的影响,有时称为zero-padding或者valid

padding。

二、原理

padding技术是为了保证在进行维度缩减操作(比如

卷积、池化)的时候,边缘信息不被裁剪,这就需要在边

缘填充0,从而就可以保留边缘信息,使得输出尺寸等于输

入尺寸。

例如,一个5x5的输入张量,采用3x3的卷积核进行

卷积操作,并且步幅为1,那么输出张量尺寸为3x3。但

是,如果没有padding,那么会造成边缘信息的丢失,输出

尺寸降为了3x3,这并不是我们想要的结果。在这种情况

下,进行zero-padding操作,就可以让输出尺寸保持不

变,从而在神经网络中保留了更多信息。

三、padding公式

在卷积神经网络中,padding的操作通常用于靠近输

入图像边缘的图像区域,并且padding的值通常为0。

padding的大小会影响卷积层输出值的形状:

1. valid

在valid模式下,没有进行边界填充,卷积核尽可能

向图像的四个角移动,即不考虑边缘像素,输出特征图尺

寸比输入图像小。valid模式的卷积操作将切断图像的边

界,如果希望输出特征图和源图等大小,那么就需要在边

界填充。

2. same

在same模式下,卷积的输出尺寸等于输入尺寸。same

的定义是在卷积运算时,在四周各添加一圈和卷积核同大

小的0值像素,这样特征图的宽和长会保持不变。这样做

的好处是,当输入矩阵被卷积核卷积之后,卷积后的矩阵

与卷积前的矩阵尺寸相同。

3. full

在full模式下,是针对输出特征图FFT变换的写入方

式,需要进行更大宽度尺寸边界填充,因此输出图像的通

常比输入图像大。full卷积在计算时完全将滤波器和图像

翻折,然后进行线性卷积。

在计算卷积核操作时,常常使用以下公式:

输出尺寸 = (n + 2*p - k)/s + 1

其中,n表示原图像尺寸,p表示在三个维度上边缘填

充数。例如,输入图像大小为28x28,卷积核大小为5x5,

步幅为1,填充为2。则经过0padding处理,尺寸变为

32x32,输出特征图为28x28。

四、举例

要理解padding的作用,可以通过以下例子进行解

释。

假设我们有一个图像,大小为4X4,以及一个卷积核

大小为3X3。如果我们采用没有padding的方式进行计算,

那么输出张量将变得小于输入张量。这里四个角的数值是

4,1,16,9。

[4 3 5 0]

[2 4 1 4]

[1 16 9 1]

[2 5 2 5]

如果使用边缘1个像素的padding进行计算,那么输

出张量的大小将与输入张量相同。这样做是有意义的,因

为在计算过程中,每个像素的所有邻居都被视为与中心像

素相同重要。边缘1个像素的padding是指向原始边缘填

充一个0值单元格。如下图所示:

[0 0 0 0 0]

[0 4 3 5 0]

[0 2 4 1 4]

[0 1 16 9 1]

[0 2 5 2 5]

在这种情况下,输出张量的大小与输入张量相同。

在这个例子中,1个像素的padding(在图像的边缘填

充一个像素)保持了输入张量大小。这种情况是很常见

的,因为我们通常希望输出张量保持与输入张量相同的形

状。

五、结论

在本文中,我们探讨了在卷积神经网络中使用

padding技术的原理和公式。padding的目的是为了保持输

出尺寸和输入尺寸一致,从而保留图像的所有信息。

padding运算通常应用于图像处理,但是在其他领域如自然

语言处理、语音处理等方面也有所应用。padding的大小会

影响卷积层输出值的形状,因此需要在计算时进行考虑。

最终,padding操作是一个非常有用的技术,可以帮助神经

网络保留更多的原始信息,提取更准确的特征。


本文标签: 输出 尺寸 卷积 进行 输入