CNN之tf.nn.max_pool简单暴力带你学

tf.nn.max_pool 从数学的角度看这个,超好理解。

在网上看了半天没看明白咋回事,于是自己决定研究一下,不搞花里胡哨,让大家直接理解他到底要干啥!!!!!

import tensorflow.compat.v1  as tf
tf.compat.v1.disable_eager_execution()
x=tf.constant([[1.,10.,3.,4.,],[5.,6.,7.,8.],[9.,10.,11.,12.],[13.,14.,15.,16]])
x=tf.reshape(x,[2,2,4,1])
SAME=tf.nn.max_pool(x,[1,1,2,1],[1,2,2,1],padding='SAME')#value, ksize, strides, padding Kize表示窗口大小 strides表示步长
a=tf.nn.max_pool(x,[1,2,1,1],[1,2,2,1],padding='SAME')#
with tf.Session() as sess:
	a0=sess.run(x)
	a1=sess.run(SAME)
	a2=sess.run(a)
	print(a0)
	print(a1)
	print(a2)

在这里插入图片描述
我先把矩阵变成[2,2,4,1]形式,简单粗暴的说就是整体分为两大块,然后两大块有分成两小块,两小块里分成4*1的矩阵,大家要注意中括号就能看明白我说的。
然后开始正题!!!!!
窗口[1,1,2,1],步长[1,2,2,1]分别为我定义的窗口大小和步长;
大家跟我一起先看然后看窗口第一个数 1,意思就是我会从第一大块开始,然后看步长第一个数字 1,说明我是一步一步走的,这两大块我都会遍历一遍,(意思就是这两大块我都会拿出几个数);
然后在看窗口第二个数 1,就是我们接下来会从两小块的第一块开始,在看步长第二个数 2 ,意思我是一次走两步,意思我只能分别在两小块里的第一块取数因为他总共就俩;
然后在看窗口第三个数 2 ,意思我从那小块的第二个数开始,在看步长第三个也是 2 所以就是 10 4 10 12
在这[1,1,2,1],[1,2,2,1]里插入图片描述
这个大家可以自行验证[1,2,1,1],[1,2,2,1]
在这里插入图片描述

  • 4
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值