用TensorFlow实现卷积神经网络中的池化层
2017-03-14 17:02
176 查看
卷积神经网络中卷积层之间往往会加上一个池化层。池化层可以非常有效的缩小矩阵的尺寸,从而减少最后全连接层中的参数。使用池化层既可以加快计算速度,也可以有防止过拟合问题的作用。
池化层前向传播的过程也是通过移动一个类似过滤器的结构完成的。不过池化层过滤器中的计算不是节点的加权和,而是采用更加简单的最大值或者平均值运算。使用最大值操作的池化层被称为最大池化层,这是被使用的最多的池化层结构。使用平均值操作的池化层被称为平均池化层。其他池化层在实践中使用的比较少。
与池化层的过滤器类似,池化层的过滤器也需要人工设定过滤器的大小、是否使用全0填充以及过滤器移动的步长等设置,而且这些设置的意义也是一样的。卷积层和池化层中过滤器移动的方式是类似的,唯一的区别在于卷积层使用的过滤器是横跨整个深度的,而池化层使用的过滤器只影响一个深度上的节点。
tf.nn.max_pool实现了最大池化层的前向传播过程,它的参数和tf.nn.conv2d函数类似。
ksize提供了过滤器的尺寸,strides提供了步长信息,padding提供了是否使用全0填充。
pool = tf.nn.max_pool(actived_conv, ksize=[1,3,3,1], strides=[1,2,2,1], padding='SAME')
池化层前向传播的过程也是通过移动一个类似过滤器的结构完成的。不过池化层过滤器中的计算不是节点的加权和,而是采用更加简单的最大值或者平均值运算。使用最大值操作的池化层被称为最大池化层,这是被使用的最多的池化层结构。使用平均值操作的池化层被称为平均池化层。其他池化层在实践中使用的比较少。
与池化层的过滤器类似,池化层的过滤器也需要人工设定过滤器的大小、是否使用全0填充以及过滤器移动的步长等设置,而且这些设置的意义也是一样的。卷积层和池化层中过滤器移动的方式是类似的,唯一的区别在于卷积层使用的过滤器是横跨整个深度的,而池化层使用的过滤器只影响一个深度上的节点。
tf.nn.max_pool实现了最大池化层的前向传播过程,它的参数和tf.nn.conv2d函数类似。
ksize提供了过滤器的尺寸,strides提供了步长信息,padding提供了是否使用全0填充。
pool = tf.nn.max_pool(actived_conv, ksize=[1,3,3,1], strides=[1,2,2,1], padding='SAME')
相关文章推荐
- 机器学习实验(四):用tensorflow实现卷积神经网络识别人类活动
- 【TensorFlow】tf.nn.max_pool实现池化操作
- Tensorflow实现卷积神经网络
- 【Deep Learning】tensorflow实现卷积神经网络(AlexNet)
- Tensorflow实现卷积神经网络
- Tensorflow实现卷积神经网络,用于人脸关键点识别
- 深度学习之卷积神经网络CNN及tensorflow代码实现示例详细介绍
- 【Tensorflow】实现简单的卷积神经网络CNN实际代码
- 【TensorFlow】tf.nn.max_pool实现池化操作
- TensorFlow实现卷积神经网络
- tensorflow tutorials(七):用tensorflow实现卷积神经网络(Convolutional Neural Networks)
- Deep Learning-TensorFlow (1) CNN卷积神经网络_MNIST手写数字识别代码实现详解
- TensorFlow实现卷积神经网络(简单)
- 卷积神经网络CNN原理以及TensorFlow实现
- Tensorflow实战5:实现简单的卷积神经网络
- Tensorflow实现卷积神经网络
- 学习用tensorflow实现卷积神经网络中的卷积层随笔
- TensorFlow--tf.nn.max_pool实现池化操作
- TensorFlow上实现卷积神经网络CNN
- TensorFlow 用 tf.nn.max_pool 实现最大池化操作