卷积操作中的same padding与valid padding

  最近在研究卷积神经网络,很多卷积操作里头都会有padding这个选项,以keras中的Conv2D为例,padding操作有valid,same,casual等,我只讨论same和valid这两种模式,casual以后遇到再说。
假设模型的输入维度为n,kernel size为k,步长为s,输出维度为m。

same padding

  当strides=1时,利用same padding操作,模型的输入层和输出层的维度是一致的,我觉得这也是之所以叫"same"这个名字的原因,具体的输出维度如下:
m = ⌈ n s ⌉ m=\lceil \frac{n}{s} \rceil m=sn
测试代码如下:

import keras
from keras.layers import Conv2D,Input
a=Input(shape=(60,60,1))
conv_samepadding=Conv2D(1,(3,3),strides=(7,7),padding='same')
conv_validpadding=Conv2D(1,(3,3),strides=(7,7),padding='valid')
samepadding_a=conv_samepadding(a)
validpadding_a=conv_validpadding(a)
print(conv_samepadding.output_shape)
print(conv_validpadding.output_shape)

valid padding

  valid padding没有填充操作,输出维度的计算公式如下:
m = ⌊ n − k s ⌋ + 1 m=\lfloor \frac{n-k}{s} \rfloor+1 m=snk+1
参考资料1


  1. https://stackoverflow.com/questions/37674306/what-is-the-difference-between-same-and-valid-padding-in-tf-nn-max-pool-of-t# ↩︎

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值