tf.nn.max_pool()和tf.nn.avg_pool()是TensorFlow中实现最大池化和平均池化的函数,在卷积神经网络中比较核心的方法。

有些和卷积很相似,可以参考TensorFlow函数之tf.nn.conv2d()(附代码详解)

两个函数调用方式相同,下边讲解以tf.nn.max_pool()为例子进行加讲解。


函数格式:

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

参数说明:

第一个参数value:需要做池化的输入图像,输入feaure map,因为池化在卷积后边。shape为[batch, in_height, in_width, in_channels]:

  • batch:训练时一个batch的图片数量
  • in_height:输入图像的高度
  • in_width:输入图像的宽度
  • in_channels:输入feature map的数量

第二个参数ksize:类似于卷积的过滤器,池化窗口的大小,是一个长度为4的一维数组,但是这个数组的第一个和最后一数必须为1,即[1, height, width, 1]。这意味着池化层的过滤器是不可以在batch和channels上做池化。实际应用中,使用最多的过滤器尺寸为[1, 2, 2, 1]或者[1, 3, 3, 1]

  • height:过滤器的高度
  • width:过滤器的宽度

第三个参数strides:不同维度上的步长,是一个长度为4的一维向量,[ 1, strides, strides, 1],第一维和最后一维的数字要求必须是1。因为卷积层的步长只对矩阵的长和宽有效。

第四个参数padding:string类型,是否考虑边界,值为“SAME”和“VALID”,"SAME"是考虑边界,不足的时候用填充周围,"VALID"则不考虑边界。

返回tensor,shape仍然是[batch, height, width, channels]这种形式。


下边通过例子来说明tf.nn.max_pool()函数的用法:

输入是1张 3*3 大小的feature map,数量是1,过滤器大小是[1, 2, 2, 1],步长是[1,1,1,1],padding值时'VALID',最后得到一个 2*2 的feature map。1张图最后输出就是一个 shape为[1,2,2,1] 的tensor。

#!/usr/bin/env python
# -*- coding:utf-8 -*-import tensorflow as tfvalue = tf.Variable(tf.random_normal([1, 3, 3, 1]))
ksize = [1, 2, 2, 1]pool = tf.nn.max_pool(value, ksize, strides=[1, 1, 1, 1], padding='VALID')with tf.Session() as sess:# 初始化变量op_init = tf.global_variables_initializer()sess.run(op_init)print("value的值为:")print(sess.run(value))print("池化值为:")print(sess.run(pool))

执行过程如下:

运行结果:

【TensorFlow】TensorFlow函数精讲之tf.nn.max_pool()和tf.nn.avg_pool()相关推荐

  1. TensorFlow基础篇(六)——tf.nn.max_pool()和tf.nn.avg_pool()

    tf.nn.max_pool()和tf.nn.avg_pool()是TensorFlow中实现最大池化和平均池化的函数,在卷积神经网络中比较核心的方法. 有些和卷积很相似,可以参考TensorFlow ...

  2. python相关函数_python常用函数精讲

    原标题:python常用函数精讲 返回值为bool类型的函数 bool是Boolean的缩写,只有真(True)和假(False)两种取值 bool函数只有一个参数,并根据这个参数的值返回真或者假. ...

  3. python常用函数-python常用函数精讲

    原标题:python常用函数精讲 返回值为bool类型的函数 bool是Boolean的缩写,只有真(True)和假(False)两种取值 bool函数只有一个参数,并根据这个参数的值返回真或者假. ...

  4. MATLAB的图像上怎么标记数据点?Text函数精讲

    MATLAB的图像上怎么标记数据点?&Text函数精讲 文章目录 MATLAB的图像上怎么标记数据点?&Text函数精讲 前言 一.用Text函数可实现指定位置的添加 二.使用方法 1 ...

  5. 【TensorFlow】TensorFlow函数精讲之tf.get_variable()和tf.get_variable_scope()

    目录 1.tf.get_variable() 2.tf.variable_scope() 3.tf.variable_scope() 函数嵌套 1.tf.get_variable() tf.get_v ...

  6. 【TensorFlow】TensorFlow函数精讲之tf.train.ExponentialMovingAverage()

    tf.train.ExponentialMovingAverage来实现滑动平均模型. 格式: tf.train.ExponentialMovingAverage(decay,num_step) 参数 ...

  7. 【TensorFlow】TensorFlow函数精讲之tf.nn.conv2d()

    博客之星评选,谢谢您的支持!微信.qq五连击投票(无需关注.无需登录) 人工智能博士(投票链接):http://m234140.nofollow.ax.mvote.cn/opage/4fddfa73- ...

  8. 【TensorFlow】TensorFlow函数精讲之tf.nn.softmax_cross_entropy_with_logits

    tf.nn.softmax_cross_entropy_with_logits()函数是TensorFlow中计算交叉熵常用的函数. 后续版本中,TensorFlow更新为:tf.nn.softmax ...

  9. 【TensorFlow】TensorFlow函数精讲之 tf.nn.relu()

    tf.nn.relu()函数是将大于0的数保持不变,小于0的数置为0,函数如图1所示. ReLU函数是常用的神经网络激活函数之一. 图1 ReLU函数图像 下边为ReLU例子: import tens ...

最新文章

  1. 增强学习(一) ----- 基本概念
  2. coroSync packmarker
  3. Silverlight 4.0添加鼠标右键菜单和Silverlight全屏模式的进入退出
  4. JAVA入门级教学之(do...while循环)
  5. python twisted教程 二:缓慢的诗
  6. 结局就在附近! (对于SQL Server 2008和SQL Server 2008 R2)
  7. input美化上传按钮美化
  8. 开发环境搭建好,也要做镜像
  9. 数据结构视频教程 -《[北风网]C#版数据结构与算法高级教程》
  10. Xshell复制粘贴快捷键设置
  11. 【WIN】svchost与共享进程服务
  12. C语言 单引号和双引号
  13. 扣哒世界的游戏开发2-2军事训练2
  14. Android开发动态的监听网络状态的变化
  15. 视频字幕 硬字幕 软字幕 外挂字幕 简介
  16. 最危险的计算机命令,十大危险cmd指令
  17. IT项目开发团队建设与管理总结(转)
  18. Vs2008编译vtk5.10详细教程
  19. VMware Workstation 14.1.2安装Win10 x64操作系统
  20. HTML span 标签 的详细用法

热门文章

  1. arcengine遍历属性表_小程序导出数据到excel表
  2. html织梦站内搜索代码,简单三步-实现dede站内搜索功能
  3. java replace stringbuilder_【基础篇】揭开String、StringBuilder以及StringBuffer的神秘面纱...
  4. 将更新面板的显示内容清除的代码实现;_免费开源:墨涩必应壁纸网盘系统1.0(自动壁纸更新免维护)
  5. java检索txt文本_lucene索引word/pdf/html/txt文件及检索(搜索引擎)
  6. 【windows】windows操作系统安全加固
  7. oracle半角全椒_Oracle全角和半角处理函数
  8. mysql基础事件_mysql 基础 事件(定时任务)
  9. python cookbook 小结
  10. STM32F407之常识