tf.nn.max_pool(value, ksize, strides, padding, name=None)
在输入上执行最大池化操作。
参数:
value | 一个4维张量,形状为[batch, height, width, channels] 类型为 float32, float64, qint8, quint8, qint32 |
---|---|
ksize | 长度大于等于4个的整数列表,表示输入张量的每个维度的窗口大小 |
strides | 长度大于等于4个的整数列表,表示输入张量的每个维度的滑动窗口的步幅 |
padding | 一个字符串,可以是’VALID’或’SAME’,填充算法,'VALID’为无填充,'SAME’使得输出的大小与输入相同 |
name(可选) | 操作的名称 |
返回:
一个与value相同类型的张量。
输出大小的计算(以height为例):
输出height=⌊height+2padding−ksizestrides+1⌋
\text{输出}height=\lfloor \frac{height+2padding-ksize}{strides}+1 \rfloor
输出height=⌊stridesheight+2padding−ksize+1⌋
例子
# x是一个形状为[1, 3, 3, 3] 的张量
>>>tf.nn.max_pool(x, ksize=[1,2,2,1], strides=[1,1,1,1], padding='SAME')
#shape为[1, 3, 3, 3]
>>>tf.nn.max_pool(x, ksize=[1,2,2,1], strides=[1,1,1,1], padding='VALID')
#shape为[1, 2, 2, 3]
类似用法
tf.nn.avg_pool 执行平均池化操作