tensorflow_conv2d_max_pool卷积池化padding参数为SAME和VALID的区别
来源:互联网 发布:网络奇谈恐惧鸟电子版 编辑:程序博客网 时间:2024/06/06 12:43
卷积:conv2
"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
"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 betweenSAME
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(strides[1]))
out_width = ceil(float(in_width - filter_width + 1) / float(strides[2]))
I'll give an example to make it clearer:
x
: input image of shape [2, 3], 1 channelvalid_pad
: max pool with 2x2 kernel, stride 2 and VALID padding.same_pad
: max pool with 2x2 kernel, stride 2 and SAME padding (this is theclassic way to go)
The output shapes are:
valid_pad
: here, no padding so the output shape is [1, 1]same_pad
: here, we pad the image to the shape [2, 4] (with-inf
and then apply max pool), so the output shape is [1, 2]
x = tf.constant([[1., 2., 3.], [4., 5., 6.]])x = tf.reshape(x, [1, 2, 3, 1]) # give a shape accepted by tf.nn.max_poolvalid_pad = tf.nn.max_pool(x, [1, 2, 2, 1], [1, 2, 2, 1], padding='VALID')same_pad = tf.nn.max_pool(x, [1, 2, 2, 1], [1, 2, 2, 1], padding='SAME')valid_pad.get_shape() == [1, 1, 1, 1] # valid_pad is [5.]same_pad.get_shape() == [1, 1, 2, 1] # same_pad is [5., 6.]
阅读全文
1 0
- tensorflow_conv2d_max_pool卷积池化padding参数为SAME和VALID的区别
- 卷积神经网络中same padding 和 valid padding
- [AI, 深度学习] tensorflow中padding="SAME"和"VALID"的区别
- Tensorflow中padding的两种类型SAME和VALID
- Tensorflow中padding的两种类型SAME和VALID
- Tensorflow中padding的两种类型SAME和VALID
- Tensorflow中padding的两种类型SAME和VALID
- Tensorflow中padding的两种类型SAME和VALID
- Tensorflow中padding的两种类型SAME和VALID
- tensorflow:SAME VALID padding
- valid 与 same的卷积方式
- TensorFlow中CNN的两种padding方式“SAME”和“VALID”
- Tensorflow里的padding操作(VALID和SAME两种)
- TensorFlow中CNN的两种padding方式“SAME”和“VALID”
- tf的“SAME”和“VALID”
- 卷积和池化的区别
- 卷积网络中的VALID与SAME
- padding和margin的区别
- .net 本地文件上传至服务器
- HashMap和Hashtable的区别
- 事务注解
- 【爬虫】手把手教你写网络爬虫(3)
- HDU 2830 Matrix Swapping II
- tensorflow_conv2d_max_pool卷积池化padding参数为SAME和VALID的区别
- 字符串-leetcode 557 Reverse Words in a String III
- PHP如何实现简单的接口
- label一点分享
- 解析BeanDefinition之解析各种属性。
- 解决viewpager嵌套滑动冲突,并保留侧滑菜单功能
- 决策树的相关概念
- FFMpeg处理RTMP流
- IPv4数据报