为什么卷积核通常都是奇数(1x1、3x3...)

1,为了方便same padding时的处理。如步长为1时,要补充k-1的zero padding才能使输出输出的尺寸一致,这时候如果核大小k是偶数,则需要补充奇数的zero padding,不能平均分到feature map的两侧。

padding时对称:保证了 padding 时,图像的两边依然相 对称 。 在卷积时,我们有时候需要卷积前后的尺寸不变。这时候我们就需要用到padding。假设图像的大小,也就是被卷积对象的大小为nn,卷积核大小为kk,padding的幅度设为(k-1)/2时,卷积后的输出就为(n-k+2((k-1)/2))/1+1=n,即卷积输出为nn,保证了卷积前后尺寸不变。但是如果k是偶数的话,(k-1)/2就不是整数了。

输出图像大小 = (输入图片大小 - 卷积核大小 + 2*padding)/ stride步长 + 1

见下图,输入图像大小4x4,如果通过3x3卷积,输出图像大小不变,那么(4 - 3 + x) / 1 + 1 = 4.需要padding大小为x = 2,那么上下左右各填0即可,

如下图,如果采用偶数2x2卷积,那么需要(4 - 2 + x) / 1 + 1.= 4填充为x = 1,那么只能在一边添加。

2,为了统一标准。卷积核的滑动是默认使用中心点作为基准而进行的,而奇数核拥有这样天然的基准。这样每次计算完后的数放在中心位置。(其实自己定义偶数核的基准也是可以的,如使用核的左上角作为基准。)

3,为了更好地获取中心信息。由于奇数核拥有天然的绝对中心点,因此在做卷积的时候能更好地获取到中心这样的概念信息。

保护位置信息:保证了锚点刚好在中间,方便以模块中心为标准进行滑动卷积,避免了位置信息发生偏移 。 在CNN中,进行卷积操作时一般会以卷积核模块的一个位置为基准进行滑动,这个基准通常就是卷积核模块的中心。若卷积核为奇数,卷积锚点很好找,自然就是卷积模块中心,但如果卷积核是偶数,这时候就没有办法确定了,让谁是锚点似乎都不怎么好。

道生一,一生二,二生三,三生万物

综上,卷积核一般都把size设为奇数,主要有以下两个原因:

1.保证锚点(卷积核的中心)刚好在中间,方便以模块中心为标准进行滑动卷积。

2.保证了padding时,图像的两边依然相对称

  • 2
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值