tensorflow中tf.nn.max_pool()函数讲解

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

函数的作用是找到按照 ksize进行移动找到input中的数据最大值 然后进行输出

tf.nn.max_pool()包含四个参数信息

第一个参数:表示input 标识的是输入的真实数据           其形状是 [batch_size, in_height, in_width, in_channels]

 

第二个参数:   表示的是卷积核大小                只能是具体的list数据不能是list的变量

 

第三个参数是: 表示卷积的步长                     也只能是具体的list数据 不能是list的变量

 

# 第四个参数:网上有很多的例子将padding中SAME 和 VALID,但是都是模糊不清的 我通过一个例子解释一下

下面是个直观图

假设输入图像的高和宽是:   5 * 5   过滤器大小是 3 * 3    步长 3 * 3   

输出图像的特征

输入数据的大小
12345
678910
1112131415
100100100100100
100100100100100

 

      

 

过滤器 3 * 3

                 

 

 

 

 

 

       程序最后的数据是

 

 

 

如果使用VALID的话  只能做一次卷积操作  下一次的时候会超过input的宽度  所以输出的是 1 * 1

 

SAME的话  就是为了解决剩下的两个格子不能使用的问题   会把input自动扩展 使其能够进行下一步扩展  2 * 2

OK代码是不会说谎的  用代码来证明我们的猜想

 

# -*- coding: utf-8 -*-
# @Time    : 2019/3/13 22:34
# @Author  : YYLin
# @Email   : 854280599@qq.com
# @File    : Tensorflow.py
import tensorflow as tf
import numpy as np

# 定义一个tensorflow 变量
input = tf.Variable(tf.random_normal([10, 5, 5, 3]))




tf_pooling_result = tf.nn.max_pool(input, [1, 3, 3, 1], [1,3,3,1],padding = 'SAME')
print("*************tf_pooling_result**************", tf_pooling_result)

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值