对CNN中padding零填充的理解

时间:2024-04-05 11:30:53

11.padding

为什么用padding进行填充?原因:2个
一:卷积的时候,希望图像大小不发生变化;
二:有的时候可能原始图像是除不尽的,如果不填充的话,余的像素就直接丢弃了,这样信息可能会丢失。那为了防止信息丢失,我们做一个填充。

注意:零填充填几层卷积自己会自己计算的(计算是在滑动窗口滑动之前就计算好的)。也就是说:不管哪种情况,padding的取值,先计算好,然后窗口才滑动 。。。 而不是滑动过程中发现像素不够,然后再进行零填充。

padding:是否进行数据的填充操作。
可选值:SAME表示进行最小填充,VALID表示不进行填充,直接删除多余的像素值。
对CNN中padding零填充的理解

当步长为1,padding为SAME的时候,卷积是不改变的feature map大小的。

对CNN中padding零填充的理解

举一个需要进行零填充的例子:

对CNN中padding零填充的理解
上例中如果padding设置为VALID,那无论在width还是height方向上滑动一次就结束了,那右边两列和下面两行数据就不要了,那这样的话信息会丢失一部分。

注意:

  1. padding填充方式:对图片进行四周填充
  2. 如果图片大小滑动窗口大小,步长,它们的取值使得图片的所有像素都被滑动窗口遍历完,这时候就无需零填充了。(padding虽被设置为SAME,但只有在需要零填充时才进行零填充)

真正意义上的填充。确实有填相同值,0,映射值等等都有,但是因为深度学习网络中,边缘的信息不是那么重要。所以在边缘填的是零。