tf.nn.max_pool()
tf.nn.max_pool()函数是TensorFlow搭建卷积神经网络(CNN)的一个重要的方法,是TensorFlow实现最大池化操作的函数。
参数解释
tf.nn.max_pool(value, ksize, strides, padding, name):
- value:池化层一般都是接在卷积层后面,用于减少参数矩阵的维度,从而减小最后全连接层的参数数目。所以value的正是卷积层的输出,也就是feature map,是一个四维向量,[batch, height, width, channels],可参见上一篇博文
- ksize:池化窗口的大小,也是四维向量,[batch, height, width, channels]。一般来说,池化只在每一个纵深维度上进行,所以通常将batch,channels都设为1,以保证图像在纵深维度上的尺寸是不变的。
- strides:池化窗口滑动的步长,是一个四维张量。对于图片,因为只有两维,通常strides取[1,stride,stride,1]。
- padding:在池化的过程中,由于池化窗口的大小和步长的限制,可能无法将图片的所有位置做完整的池化,所以就有了padding的两种方式,SAME和VALID,SAME方式是对矩阵进行补零操作,而VALID是进行舍弃,所以对于某些池化结果,SAME方式和VALID方式得到的维度是不同的。
- name:操作的名称
- 返回值:此函数返回的结果是一个Tensor,也就是feature map,也是四维[batch, height, width, channels]
举例
图片来源
上图是用2x2的池化窗口,以步长为2x2进行最大池化得到的结果。