首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

人工智能学习案例-卷积神经网络池化案例

Ø一个知识点,一个案例,一段代码,理论与实践结合

Ø通俗简单易懂,每个案例代码都非常简短.

Ø代码注解非常清楚

Ø系统化学习,包括编程,数学,numpy,tensorflow,matplotlib

让大家更快,更好的掌握人工智能

花两小时改变自己的命运

空间池化(也称为子采样或下采样)可降低每个特征映射的维度,并保留最重要的信息。空间池化有几种不同的方式:最大值,平均值,求和等。

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

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

第一个参数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]这种形式

importtensorflowastf

#定义输入数据

input = tf.constant([[1,1,2,4],

[5,6,7,8],

[3,2,1,],

[1,2,3,4]],dtype=tf.float32)

#修改输入数据维度,[batch, in_height, in_width, in_channels]这样的shape,具体含义是[训练时一个batch的图片数量,图片高度,图片宽度,图像通道数],注意这是一个4维的Tensor

input = tf.reshape(input,(1,4,4,1))

#第一个参数value:需要池化的输入[batch, height, width, channels]这样的shape

#第二个参数ksize:池化窗口的大小,取一个四维向量,一般是[1, height, width, 1]

pool = tf.nn.max_pool(input,[1,2,2,1],strides=[1,2,2,1],padding="VALID")

withtf.Session()assess:

print("池化后的值,:",sess.run(pool))

池化后的值,: [[[[6.]

[8.]]

[[3.]

[4.]]]]

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20180516G1SVCL00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券