pytorch的padding的理解和操作 您所在的位置:网站首页 池化怎么计算 pytorch的padding的理解和操作

pytorch的padding的理解和操作

2024-07-17 22:32| 来源: 网络整理| 查看: 265

1  padding 的操作就是在图像块的周围加上格子, 从而使得图像经过卷积过后大小不会变化,这种操作是使得图像的边缘数据也能被利用到,这样才能更好地扩张整张图像的边缘特征.

公式表示如下:

2   卷积核中size的选择可能会导致input中的某几行(或者最后 几行)没有关联起来,这个可能是因为我们使用的模式是valid,而不是full(tensorflow中也叫做same模式,不过这个还没研究,下一步好好看一看.........)

如果想要充分的利用input信息,那么就要非常依赖于用户对于padding和stride等的参数设置,对于pytorch用户来说需要知道 卷积核的选取与设置是怎么样影响结果的.(我可能还不怎么清楚)

输入信号的格式:(N, C, H, W),其中N表示Batch size,C表示channel个数,H,W分别表示特征图的高和宽

在nn.Conv2d中padding实在卷积操作之前的, 可以进行补0操作,也可补其他的.

其中padding补0 的策略是四周都补,如果padding=1,那么就会在原来输入层的基础上,上下左右各补一行,如果padding=(1,1)中第一个参数表示在高度上面的padding,第二个参数表示在宽度上面的padding.如下图:

但是填充完值不是0 ,而是0.9862,是因为其加上了偏置值0.9862

3  pytorch中默认的padding类型是vaild,

 

 

拓展:卷积的三种模式

卷积的三种模式: full, same , valid

1  full mode

橙色部分为image,蓝色部分为绿薄核,full就是从滤波核和image刚开始相交就进行卷积,白色的部分填充为0

2  same mode

当filter的中心和image的边角重合时,开始做卷积运算,此时的filter范围比full模式小了一圈.

另外一层含义是,卷积过后输出的feature map尺寸与原图像的大小一致. (不过,大小的问题与卷积步长也有关系.)

same模式是比较常见的模式,因为在这种模式中,在图像前向传播的过程中可以让特征图的大小保持不变

3 valid mode

当filter全部在image中间的时候,进行卷积运算,可见,filter的移动范围更加小了

注意:卷积层和池化层中都会加入padding操作,

(1) 池化层的作用体现在降采样,保留图像的显著特征,降低图像维度,使得特征图变小,简化网络.,增大kernel的感受野,  同时,也会提供一些旋转不变性.  但是特征图变小,有可能会影响到网络的准确度(措施:可以通过增加特征的深度来弥补,如深度变成原来的2倍)

(2) 卷积会带来的两个问题(1,卷积运算后,输出图像的尺寸会缩小; 2 越是边缘的像素点,对输出的影响就越小,卷积的时候移到边缘就结束了,但是中间的像素点有可能会参与多次计算,但是边缘的像素点可能只参与一次计算....因此可能会丢失边缘信息.)

padding的用途: 保持边界信息;可以对有差异的图片进行补齐,使得图像的输入大小一致;在卷积层中加入padding ,会使卷基层的输入维度与输出维度一致; 同时,可以保持边界信息  ..

 

 



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有