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

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]这种形式

最初的矩阵是这样的,维度是[2, 4, 4]

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_new = tf.reshape(a, [1, 4, 4, 2])

经过reshape操作后,变成下面这样,作为输入,矩阵的含义为 (batch_size, height, width, channels),这里的channel数为2,所以有两个通道,红色代表channel 1,蓝色代表channel 2。

pooling=tf.nn.max_pool(a_new,[1,2,2,1],[1,1,1,1],padding='VALID')pooling = tf.nn.max_pool(   h,   ksize=[1, height, width, 1],  strides=[1, 1, 1, 1],  padding='VALID',name="pool")

h : 需要池化的输入,一般池化层接在卷积层后面,所以输入通常是feature map,依然是[batch_size, height, width, channels]这样的shape
k_size : 池化窗口的大小,取一个四维向量,一般是[1, height, width, 1],因为我们不想在batch和channels上做池化,所以这两个维度设为了1
strides : 窗口在每一个维度上滑动的步长,一般也是[1, stride,stride, 1]
padding: 填充的方法,SAME或VALID,SAME表示添加全0填充,VALID表示不添加
这里的k_size 维度是[1, 2, 2, 1],形状如下

用k_size 分别遍历a_new的两个channel

 首先,对第一个channel的第一列和第二列的前两行进行max_pool,得到最大值为8,然后对第二个channel的第一列和第二列的前两行进行max_pool,得到最大值为7,遍历完前两行后, 接着对第一个channel的第一列和第二列的中间两行进行max_pool,的搭配最大值为6,这样依次遍历下去,最终得到的结果是

max_pool操作中的维度变化
h = [batch_size, height_1, width_1, channels]
ksize = [1, height_2, width_2, 1]

最终得到的pool的shape为
[batch_size, height_1-height_2+1, width_1-width_2+1,channels]

参考:

https://blog.csdn.net/m0_37586991/article/details/84575325

max pooling相关推荐

  1. 对Max Pooling的理解

    Max Pooling是什么 在卷积后还会有一个 pooling 的操作. max pooling 的操作如下图所示:整个图片被不重叠的分割成若干个同样大小的小块(pooling size).每个小块 ...

  2. 自然语言处理中CNN模型几种常见的Max Pooling操作

    /* 版权声明:可以任意转载,转载时请标明文章原始出处和作者信息 .*/ author: 张俊林 (想更系统地学习深度学习知识?请参考:深度学习枕边书) CNN是目前自然语言处理中和RNN并驾齐驱的两 ...

  3. CNNs中,什么是max pooling, 为什么需要max pooling

    max pooling是发生在卷积层与池化层的一种图片压缩方法. 而卷积层和池化层是CNNs中最重要的两部分,因为有卷积层, 所以叫做卷积神经网络. 假设一张2d, 一层的图片, 大小为4 * 4, ...

  4. CNN max pooling、Relu、round 等环节梯度如何反传?

    神经网络中,一个小的trick有可能让网络performance变得非常好.对于神经网络的理解,我们不应该停留在对于pytorch.tf等的依赖上,他们经常性的考虑到了我们可能出错的地方,并进行了修正 ...

  5. 【阅读笔记】Why Discard if You can Recycle?: A Recycling Max Pooling Module for 3D Point Cloud Analysis

    Why Discard if You can Recycle?:A Recycling Max Pooling Module for 3D Point Cloud Analysis 如果可以回收,为什 ...

  6. 人脸识别---Gabor特征(mean pooling和max pooling)

    Abstract-本文主要讲解Gabor特征在人脸识别中的使用.       在此不讲Gabor滤波器的原理,网上有很多博客已经介绍了大量关于Gabor滤波器.此文讲下提取出来后的Gabor滤波器的处 ...

  7. 【CV】图像分类中的max pooling和average pooling区别

    卷积神经网络中,经常采用池化操作,一般都会在卷积层后面接一个池化操作.近些年,比较主流的ImageNet的分类算法模型都是使用max pooling,很少使用average Pooling,这对我们平 ...

  8. Global Average Pooling与FC、Global Max Pooling的比较

    原文 Global Average Pooling(简称GAP,全局池化层)技术最早提出是在这篇论文(第3.2节)中,被认为是可以替代全连接层的一种新技术.在keras发布的经典模型中,可以看到不少模 ...

  9. 深度学习:使用卷积网络实现计算机图像识别,卷积和max pooling操作介绍

    深度学习在计算机图像识别上的应用非常成功.利用深度学习,我们能够对图片进行高精度识别,实现这一功能的,主要依靠神经网络中的一种分支,名为卷积网络.卷积网络与我们前面实现的网络不通之处在于,它可以直接接 ...

最新文章

  1. 技术 | 入门机器学习必须知道的6件事,你可未必都了然于心了
  2. 总结一下嵌入式OLED显示屏显示中文汉字的办法
  3. qq群发信息显示服务器检测到,关于如何突破QQ群发消息屏蔽或限制经验总结
  4. 前端学习(3284):立即执行函数三
  5. Zabbix配置模板监控指定服务器主机
  6. k8s删除deployment_k8s灾备指南(Velero)
  7. 深度学习福利入门到精通第三讲——VGGNet模型
  8. 闲来无事,画个佩奇可好?
  9. phpstud使用教程_phpStudy2017使用教程,自定义php版本功能上线!
  10. 计算机组成原理课程要求及目的,计算机组成原理-教学大纲
  11. 痞子衡嵌入式:超级下载算法RT-UFL v1.0在Segger Ozone下的使用
  12. c语言程序设计第五版第四章例题
  13. 如何发送国际短信更便宜、更稳定?
  14. 浅谈online judge平台 spj [special judge] 使用 | 修改问题
  15. Spring —— Spring 手册官网下载地址
  16. 【mysql】mysql 中 text,longtext,mediumtext 字段类型的意思, 以及区别
  17. AI时代已经起航,一些问题仍待解决
  18. 计算机由于exls表格经常卡,excel表格数据多总是卡-EXCEL表格中的不多,但是老是卡,怎么办?...
  19. Eclipse中java文件图标变成空心J如何解决
  20. 高准艾默生质量流量计的故障原因和解决方案

热门文章

  1. 网络地址转换(NAT)
  2. 0. Google机器学习(ML)课程---简介
  3. ZFS - 文件系统简介
  4. 《Essential C++》学习笔记
  5. 优化器统计信息_高水位_柱状图等
  6. 毒瘤题---------------##
  7. 离你最近的三个人,决定了你的人生走向
  8. 以太坊的数据存储结构
  9. penalty term_Google Penalty 101 –手动和算法惩罚指南
  10. python正太分布概率计算