tf.nn.max_pool(value, ksize, strides, padding, name=None)
参数:
- value:需要池化的输入,一般池化层接在卷积层后面,依然是[batch, height, width, channels]这样的shape;
- ksize:池化窗口的大小,取一个四维向量,一般是[1, height, width, 1],因为我们不想在batch和channels上做池化,所以这两个维度设为了1;
- strides:和卷积类似,窗口在每一个维度上滑动的步长,一般也是[1, stride,stride, 1];
- padding:和卷积类似,可以取'VALID' 或者'SAME'。
返回一个Tensor,类型不变,shape仍然是[batch, height, width, channels]这种形式。
实例:
# 第一层卷积层,64个卷积核,大小为5*5,3通道(RGB三种颜色通道) # 1).定义权重 weight1 = variable_with_weight_losses(shape=[5,5,3,64], stddev=0.05, wl=0.0) # 2).卷积操作 kernel1 = tf.nn.conv2d(image_holder, filter=weight1, strides=[1, 1, 1, 1], padding='SAME') # 3).定义偏差 bias1 = tf.Variable(tf.constant(0.0, shape=[64])) # 4).relu激活函数 conv1 = tf.nn.relu(tf.nn.bias_add(kernel1, bias1)) # 5).最大池化 pool1 = tf.nn.max_pool(conv1, ksize=[1, 3, 3, 1], strides=[1, 2, 2, 1], padding='SAME')