TensorFlow tf.nn.max_pool实现池化操作方式


Posted in Python onJanuary 04, 2020

max pooling是CNN当中的最大值池化操作,其实用法和卷积很类似

有些地方可以从卷积去参考【TensorFlow】 tf.nn.conv2d实现卷积的方式

tf.nn.max_pool(value, ksize, strides, padding, name=None)

参数是四个,和卷积很类似:

第一个参数value:需要池化的输入,一般池化层接在卷积层后面,所以输入通常是feature map,依然是[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]这种形式

示例源码:

假设有这样一张图,双通道

第一个通道:

TensorFlow tf.nn.max_pool实现池化操作方式

第二个通道:

TensorFlow tf.nn.max_pool实现池化操作方式

用程序去做最大值池化:

import tensorflow as tf
 
a=tf.constant([
  [[1.0,2.0,3.0,4.0],
  [5.0,6.0,7.0,8.0],
  [8.0,7.0,6.0,5.0],
  [4.0,3.0,2.0,1.0]],
  [[4.0,3.0,2.0,1.0],
   [8.0,7.0,6.0,5.0],
   [1.0,2.0,3.0,4.0],
   [5.0,6.0,7.0,8.0]]
 ])
 
a=tf.reshape(a,[1,4,4,2])
 
pooling=tf.nn.max_pool(a,[1,2,2,1],[1,1,1,1],padding='VALID')
with tf.Session() as sess:
 print("image:")
 image=sess.run(a)
 print (image)
 print("reslut:")
 result=sess.run(pooling)
 print (result)

这里步长为1,窗口大小2×2,输出结果:

image:
[[[[ 1. 2.]
 [ 3. 4.]
 [ 5. 6.]
 [ 7. 8.]]
 
 [[ 8. 7.]
 [ 6. 5.]
 [ 4. 3.]
 [ 2. 1.]]
 
 [[ 4. 3.]
 [ 2. 1.]
 [ 8. 7.]
 [ 6. 5.]]
 
 [[ 1. 2.]
 [ 3. 4.]
 [ 5. 6.]
 [ 7. 8.]]]]
reslut:
[[[[ 8. 7.]
 [ 6. 6.]
 [ 7. 8.]]
 
 [[ 8. 7.]
 [ 8. 7.]
 [ 8. 7.]]
 
 [[ 4. 4.]
 [ 8. 7.]
 [ 8. 8.]]]]

池化后的图就是:

TensorFlow tf.nn.max_pool实现池化操作方式

证明了程序的结果是正确的。

我们还可以改变步长

pooling=tf.nn.max_pool(a,[1,2,2,1],[1,2,2,1],padding='VALID')

最后的result就变成:

reslut:
[[[[ 8. 7.]
 [ 7. 8.]]
 
 [[ 4. 4.]
 [ 8. 8.]]]]

以上这篇TensorFlow tf.nn.max_pool实现池化操作方式就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python中itertools模块用法详解
Sep 25 Python
Python使用Scrapy保存控制台信息到文本解析
Dec 27 Python
Python爬虫实现全国失信被执行人名单查询功能示例
May 03 Python
详解Python中的四种队列
May 21 Python
PyTorch CNN实战之MNIST手写数字识别示例
May 29 Python
Python UnboundLocalError和NameError错误根源案例解析
Oct 31 Python
华为校园招聘上机笔试题 扑克牌大小(python)
Apr 22 Python
Django中URL的参数传递的实现
Aug 04 Python
Python sorted对list和dict排序
Jun 09 Python
浅析Python迭代器的高级用法
Jul 16 Python
python 常见的排序算法实现汇总
Aug 21 Python
python unittest单元测试的步骤分析
Aug 02 Python
TensorFlow tf.nn.conv2d实现卷积的方式
Jan 03 #Python
Python调用钉钉自定义机器人的实现
Jan 03 #Python
pytorch中的上采样以及各种反操作,求逆操作详解
Jan 03 #Python
pytorch 获取tensor维度信息示例
Jan 03 #Python
pytorch中torch.max和Tensor.view函数用法详解
Jan 03 #Python
pytorch逐元素比较tensor大小实例
Jan 03 #Python
pytorch 改变tensor尺寸的实现
Jan 03 #Python
You might like
PHP实现json_decode不转义中文的方法
2017/05/20 PHP
两个DIV等高的JS的实现代码
2007/12/23 Javascript
js 数值项目的格式化函数代码
2010/05/14 Javascript
验证javascript中Object和Function的关系的三段简单代码
2010/06/27 Javascript
JS HTML5 音乐天气播放器(Ajax获取天气信息)
2013/05/26 Javascript
jquery点击页面任何区域实现鼠标焦点十字效果
2013/06/21 Javascript
基于jquery自定义的漂亮单选按钮RadioButton
2013/11/19 Javascript
JavaScript跨域方法汇总
2014/10/16 Javascript
js电话号码验证方法
2015/09/28 Javascript
JS实现部分HTML固定页面顶部随屏滚动效果
2015/12/24 Javascript
jQuery validate插件实现ajax验证重复的2种方法
2016/01/22 Javascript
js类式继承与原型式继承详解
2016/04/07 Javascript
深入浅析Extjs中store分组功能的使用方法
2016/04/20 Javascript
node-http-proxy修改响应结果实例代码
2016/06/06 Javascript
JavaScript实现时间倒计时跳转(推荐)
2016/06/28 Javascript
JS常用函数和常用技巧小结
2016/10/15 Javascript
JS实现的自动打字效果示例
2017/03/10 Javascript
JS实现图片点击后出现模态框效果
2017/05/03 Javascript
vue轮播图插件vue-awesome-swiper的使用代码实例
2017/07/10 Javascript
微信小程序数字滚动插件使用详解
2018/02/02 Javascript
从零开始搭建webpack+react开发环境的详细步骤
2018/05/18 Javascript
用WebStorm进行Angularjs 2开发(环境篇:Windows 10,Angular-cli方式)
2018/12/05 Javascript
ElementUI 修改默认样式的几种办法(小结)
2020/07/29 Javascript
[57:29]Alliance vs KG 2019国际邀请赛小组赛 BO2 第二场 8.16
2019/08/17 DOTA
python网络编程学习笔记(10):webpy框架
2014/06/09 Python
Python编程产生非均匀随机数的几种方法代码分享
2017/12/13 Python
python实现kMeans算法
2017/12/21 Python
mac下给python3安装requests库和scrapy库的实例
2018/06/13 Python
python提取包含关键字的整行数据方法
2018/12/11 Python
Python enumerate函数功能与用法示例
2019/03/01 Python
python实现在多维数组中挑选符合条件的全部元素
2019/11/26 Python
Python如何省略括号方法详解
2020/03/21 Python
Django QuerySet查询集原理及代码实例
2020/06/13 Python
英国家居用品和床上用品零售商:P&B Home
2020/01/16 全球购物
2019年大学推荐信
2019/06/24 职场文书
yyds什么意思?90后已经听不懂00后讲话了……
2022/02/03 杂记