您的位置:首页 > 其它

Tensorflow中padding的两种类型SAME和VALID

2017-06-08 08:46 471 查看
按照下面的解释,“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:

down
vote
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]))
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息