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]

举例

tf.nn.max_pool()函数的解释与用法-LMLPHP
图片来源
上图是用2x2的池化窗口,以步长为2x2进行最大池化得到的结果。

03-08 23:28