Tensorflow中的两种padding方式

Tensorflow中的两种padding方式

tensorflow中进行卷积以及池化操作时会用到padding参数,在tensorflow中有两种方式分别为‘SAME’和‘VALID’。
先不考虑padding方式,输出尺寸计算公式为:
O = ((I - K + P) / S) + 1 (结果可能不是整数,padding参数的作用就是防止结果为非整数)
其中O为输出尺寸,I为输入尺寸,K为kernel尺寸,P为padding的尺寸(padding方式是用来控制P的大小),S为stride尺寸。

VALID方式

此种设置下,P的尺寸为0,经过公式计算后,如果O为非整数,卷积操作将会依次从输入左上角开始进行直至超出输入边界。
即:
O = floor(((I - K + 0) / S) + 1)

SAME方式

VALID比较容易理解,那么SAME的padding方式是怎么确定上下左右边界的尺寸?
首先O的尺寸有另外的计算方式:
O = ceil(I / S)
然后根据O反推出P的大小。
beg_P = P // 2
end_P = P - beg_P
其中beg_P对应左,上,end_P对应右,下。
经过padding后同样满足公式:O = floor(((I - K + 0) / S) + 1)

后记

本文纯属查阅资料以及代码测试后的推测,也许存在错误,望不吝赐教。

参考:
https://stackoverflow.com/questions/37674306/what-is-the-difference-between-same-and-valid-padding-in-tf-nn-max-pool-of-t
https://github.com/pjreddie/darknet/issues/950

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值