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 输出结果不相同

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐