卷积神经网络中same padding 和 valid padding

来源:互联网 发布:外国人抢购的国货知乎 编辑:程序博客网 时间:2024/05/17 03:24

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]))

输入:【N,2,3,1】样本数,2行,3列,1个颜色通道
如果:tf.nn.conv2d(x,W,strides=[1,1,1,1],padding=”SAME”)
strides 1*1 采用same padding
(2)/ 1 = 2
(3)/ 1 = 3
输出:【N,2,3,32】 32是卷积后的图像高度

strides 1*1 采用valid padding
(2 -1 +1)/ 1 = 2
(3 -1 +1)/ 1 = 3
输出:【N,2,3,32】 32是卷积后的图像高度
same padding 和 valid padding 输出结果相同

如果:tf.nn.conv2d(x,W,strides=[1,2,2,1],padding=”SAME”)
strides 2*2 采用same padding
(2)/ 2 = 1
ceil((3)/ 2) = 2
输出:【N,1,2,32】 32是卷积后的图像高度

strides 2*2 采用valid padding
ceil((2-2 +1)/ 2) = 1
(3 -2+ 1)/ 2 = 1
输出:【N,1,1,32】 32是卷积后的图像高度
same padding 和 valid padding 输出结果不相同