即日起在codingBlog上分享您的技术经验即可获得积分,积分可兑换现金哦。

Tensorflow里padding的两种类型SAME与VALID

编程语言 mmc2015 22℃ 0评论


按照下面的解释,“SAME”用的比较多。same的含义是:长度除以步长向上取整。

For the SAME padding,
the output height and width are computed as:

out_height = ceil(float(in_height) / float(strides[1]))

out_width = ceil(float(in_width) / float(strides[2]))





http://blog.csdn.net/jasonzzj/article/details/53930074



SAME means that the output feature map has the same spatial dimensions as the input feature map. Zero padding is introduced to make the shapes match as needed, equally on every side of the input map.

VALID means no padding.

Padding could be used in convolution and pooling operations.


Here, take pooling for example:





If you like ascii art:

  • "VALID" =
    without padding:

       inputs:         1  2  3  4  5  6  7  8  9  10 11 (12 13)
                      |________________|                dropped
                                     |_________________|
  • "SAME" =
    with zero padding:

                   pad|                                      |pad
       inputs:      0 |1  2  3  4  5  6  7  8  9  10 11 12 13|0  0
                   |________________|
                                  |_________________|
                                                 |________________|

In this example:

  • Input width = 13
  • Filter width = 6
  • Stride = 5

Notes:

  • "VALID" only
    ever drops the right-most columns (or bottom-most rows).
  • "SAME" tries
    to pad evenly left and right, but if the amount of columns to be added is odd, it will add the extra column to the right, as is the case in this example (the same logic applies vertically: there may be an extra row of zeros at the bottom).




The TensorFlow Convolution example gives an overview about the difference
between SAME and VALID :

  • For the SAME padding,
    the output height and width are computed as:

    out_height = ceil(float(in_height) / float(strides[1]))

    out_width = ceil(float(in_width) / float(strides[2]))

And

  • For the VALID padding,
    the output height and width are computed as:

    out_height = ceil(float(in_height – filter_height + 1) / float(strides1))

    out_width = ceil(float(in_width – filter_width + 1) / float(strides[2]))


转载请注明:CodingBlog » Tensorflow里padding的两种类型SAME与VALID

喜欢 (0)or分享 (0)
发表我的评论
取消评论

*

表情