Tensorflow卷积中Padding的两种方式

Tensorflow卷积中Padding的两种方式


两种Padding

  • VALID:若不够滑动,则将右下的剩余部分全部舍弃,从原矩阵左上角开始卷积。

H ′ = ⌈ H − k + 1 d ⌉ H'=\left \lceil \frac{H-k+1}{d} \right \rceil H=dHk+1

  • SAME:如果 H / d H/d H/d除不尽,会均匀地在左上、右下补0,令总长 L L L满足 L − k + 1 = d H L-k+1=dH Lk+1=dH,若补不够,则往右下补。

H ′ = ⌈ H d ⌉ H'=\left \lceil \frac{H}{d} \right \rceil H=dH

H H H表示卷积前尺寸, H ′ H' H表示卷积后尺寸, k k k为卷积核尺寸, d d d为步长, ⌈ x ⌉ \left \lceil x \right \rceil x表示向上取整。

在 Tensorflow 的 nn_ops.py 中有关于卷积运算输出尺寸的定义。

If padding == "SAME":
  output_spatial_shape[i] = ceil(input_spatial_shape[i] / strides[i])
If padding == "VALID":
  output_spatial_shape[i] =
    ceil((input_spatial_shape[i] -
          (spatial_filter_shape[i]-1) * dilation_rate[i])
         / strides[i]).

举例

例一

  考虑大小为 ( N , 3 , 3 , C ) (N,3,3,C) (N,3,3,C)的输入,忽略 b a t c h s i z e batchsize batchsize c h a n n e l channel channel,即考虑 ( 3 , 3 ) (3,3) (3,3) 大小的矩阵。现在用 ( 3 , 3 ) (3,3) (3,3) 大小的卷积核(方便起见,卷积核参数均为1)做步长 ( 1 , 1 ) (1,1) (1,1) 的卷积。padding=VALID 时,直接从矩阵左上角开始滑动,刚好 ( 3 , 3 ) (3,3) (3,3) 覆盖到了矩阵右下角,卷积结束,padding=SAME 时,先在周围补零,需要补零至长度 L L L,使 L − k + 1 = d H L-k+1=dH Lk+1=dH,故此处应补至5,即左上和右下各补一圈即可。最后再从补零后的矩阵的左上角开始滑动,直到右下角。

在这里插入图片描述

例二

  考虑大小为 ( N , 3 , 3 , C ) (N,3,3,C) (N,3,3,C)的输入,忽略 b a t c h s i z e batchsize batchsize c h a n n e l channel channel,即考虑 ( 3 , 3 ) (3,3) (3,3) 大小的矩阵。现在用 ( 2 , 2 ) (2,2) (2,2) 大小的卷积核(方便起见,卷积核参数均为1)做步长 ( 2 , 2 ) (2,2) (2,2) 的卷积。padding=VALID 时,直接从矩阵左上角开始滑动, ( 2 , 2 ) (2,2) (2,2) 没有到达矩阵右下角,卷积就结束了,剩余的将直接舍弃掉padding=SAME 时,先在周围补零,这里需要补长至4,优先补右下角,故在右下补一圈0。最后再从补零后的矩阵的左上角开始滑动,直到右下角。

在这里插入图片描述


参考

Tensorflow中padding的两种类型SAME和VALID
Tensorflow卷积与反卷积(目前看到的最详细的解释)
TensorFlow中CNN的两种padding方式“SAME”和“VALID”
tf.nn.conv2d_transpose
Tensorflow nn_ops.py

  • 3
    点赞
  • 27
    收藏
    觉得还不错? 一键收藏
  • 5
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值