前言
在进行卷积神经网络中,经常用到padding,padding在卷积神经网络中起到什么样的作用呢,又是如何发挥作用的呢?本文就此谈下自己看法。
代码中的显示
model.add(Conv2D(filters = 32,kernel_size = [3,3],strides = [1,1],padding = 'same',input_shape = [6,6,3]))
通过上面的代码可以看到padding作为参数被使用。那么下面就简单说下关于padding的作用及其如何发挥作用的。
卷积层与卷积核
假设我们已经知道了卷积的工作原理,那么卷积核在对应的卷积层上通过滑动的方式遍历整个卷积层得到了特征参数。
参考图形如下:
上图是简单的卷积处理方式,我们假设原始图片的尺寸是6x6,卷积核的大小是3x3,滑动步长为1。
那么按照卷积核的滑动方式,我们得到的feature map的尺寸为 (6−3+1)×(6−3+1)=16,我们可以看到相比原来的6*6=36的图像小了很多。
因此,这样处理方式就会有如下缺点:
1、卷积后的矩阵越变越小
2、输入矩阵的边缘部分发生卷积的次数相比其它部分要少,这就意味着边缘信息的丢失。
padding解决
为了解决上面两个问题,可以对输入图像进行padding处理,即填充像素。
如上,先将66的图像进行填充,我们假设padding参数为1,则上图由66的图像就变成一个88的图像,再进行卷积就可以了。
参数padding的设置通常是卷积核的长度减一再除以2所得。如本文所用的卷积核为33,则padding的值计算为:(3-1)/ 2 = 1
可以看到上图在原始图像的边缘用了像素填充,像素填充后的尺寸变为8×8,卷积核的大小为3×3,步长为1,经过卷积操作之后得到的feature map的尺寸是(8−3+1)×(8−3+1)=6×6,feature map的尺寸和原始输入图像的尺寸是一样的。文章来源:https://www.toymoban.com/news/detail-463466.html
这样就解决了feature map尺寸越来越小的问题。同时从图中可以看出,卷积核对边缘信息的处理不止处理了一次,对边缘信息的提取更加充分了。文章来源地址https://www.toymoban.com/news/detail-463466.html
到了这里,关于卷积神经网络中的padding理解的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!