Ø一个知识点,一个案例,一段代码,理论与实践结合
Ø通俗简单易懂,每个案例代码都非常简短.
Ø代码注解非常清楚
Ø系统化学习,包括编程,数学,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.]]]]
领取专属 10元无门槛券
私享最新 技术干货