CNN中padding的作用

padding是增加图片各个边的pixels的数量,具体增加的数量由filter的尺寸和stride大小共同决定。padding的上限是维持feature map大小和原图大小一致。目的是保持feature map不要太小。

padding的意义:

1)为了不丢弃原图信息

2)为了保持feature map大小与原图一致

3)为了让更深层的layer的input依旧保持足够大的信息量

4)为了实现上述目的,且不做多余的事情,padding出来的pixel的值均为0,不存在噪音问题。

相关计算方法:

计算feature map 长与宽的公式 =

n 原图片(input)长与宽,p为padding,f是filter的长与宽, s是stride值;

补充资料:

convolution op有两种type:有padding=SAME,无padding=VALID。

1)“valid”表示不适用填充(只使用有效窗口位置);

2)“same”表示填充后输出的宽度和高度与输入相同。

padding参数的默认值为“valid”。

两种type和成新图长宽计算方法:

1)如何计算无padding新和成图的(w,h)?

w = h = n - f + 1

2)如何计算加padding之后的新和成图的(w,h)?

w = h  = n + 2p - f +1

如果达成效果n = w = h ,那么P的值就是P = (f - 1)/2,f约定俗成为奇数。

奇数的原因:

1)“更自然,不会出现左右不均”,至少很难加一个分数pixel

2)奇数可以有居中pixel,方便说明周边pixel的位置

 

参考:https://link.zhihu.com/?target=https%3A//www.bilibili.com/video/av22581633/

https://zhuanlan.zhihu.com/p/31645196

 padding 课程 文本笔记 视频笔记 新发现3

 

你可能感兴趣的:(深度学习,tensorflow)