[TensorFlow 学习笔记-07]池化函数(Pooling Function)

来源:互联网 发布:php include() 编辑:程序博客网 时间:2024/05/22 03:12

[版权说明]

TensorFlow 学习笔记参考:

李嘉璇 著 TensorFlow技术解析与实战

黄文坚 唐源 著 TensorFlow实战郑泽宇

顾思宇 著 TensorFlow实战Google深度学习框架

乐毅 王斌 著 深度学习-Caffe之经典模型详解与实战

TensorFlow中文社区 http://www.tensorfly.cn/

极客学院 著 TensorFlow官方文档中文版

TensorFlow官方文档英文版

以及各位大大的CSDN博客和Github等等...希望本系列博文没有侵犯版权!(若侵权,请联系我,邮箱:1511082629@nbu.edu.cn )

欢迎大家转载分享,会不定期更新。鉴于博主本人水平有限,如有问题。恳请批评指正!


1. 池化(Pooling)概念

在神经网络中,池化函数(Pooling Function)一般在卷积函数的下一层。在经过卷积层提取特征之后,得到的特征图代表了比像素更高级的特征,已经可以交给分类器进行训练分类了。但是我们每一组卷积核都生成一副与原图像素相同大小的卷积图,节点数一点没少。如果使用了多个卷积核还会使得通道数比之前多的多!我靠,这维度不一下子上去了嘛。所以卷积之后我们需要进行池化,也就是进行降维。

池化操作是利用一个矩阵窗口在张量上进行扫描,将每个矩阵中的通过取最大值或者平均值等来减少元素的个数(备注:最大值和平均值的方法可以使得特征提取拥有“平移不变性”,也就说图像有了几个像素的位移情况下,依然可以获得稳定的特征组合,平移不变形对于识别十分重要)。

池化的过程:如下图所示(左边红色区域里边的数据分别为2 2 2 4,有点不清晰),kernel size 就是矩阵窗口大小,Stides 就是移动的步长。

Max Pooling就找每个矩阵窗口中的最大值;

Mean Pooling就是对每个矩阵窗口中取平均值;

Stochastic Pooling详解见http://www.cnblogs.com/tornadomeet/p/3432093.html


其他的地方和卷积相似:

pool = tf.nn.max_pool(conv, ksize=[1,2,2,1], strides=[1,2,2,1], padding='SAME')


原创粉丝点击