大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。
Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺
TensorFlow 最大池化
这是一个最大池化的例子max pooling 用了 2×2 的滤波器 stride 为 2。四个 2×2 的颜色代表滤波器移动每个步长所产出的最大值。
例如 [[1, 0], [4, 6]]
生成 6
,因为 6
是这4个数字中最大的。同理 [[2, 3], [6, 8]]
生成 8
。 理论上,最大池化操作的好处是减小输入大小,使得神经网络能够专注于最重要的元素。最大池化只取覆盖区域中的最大值,其它的值都丢弃。
TensorFlow 提供了 tf.nn.max_pool()
函数,用于对卷积层实现 最大池化 。
...
conv_layer = tf.nn.conv2d(input, weight, strides=[1, 2, 2, 1], padding='SAME') conv_layer = tf.nn.bias_add(conv_layer, bias) conv_layer = tf.nn.relu(conv_layer) # Apply Max Pooling conv_layer = tf.nn.max_pool( conv_layer, ksize=[1, 2, 2, 1], strides=[1, 2, 2, 1], padding='SAME')
tf.nn.max_pool()
函数实现最大池化时, ksize
参数是滤波器大小,strides
参数是步长。2×2 的滤波器配合 2×2 的步长是常用设定。
ksize
和 strides
参数也被构建为四个元素的列表,每个元素对应 input tensor 的一个维度 ([batch, height, width, channels]
),对 ksize
和 strides
来说,batch 和 channel 通常都设置成 1
。
设置
H = height, W = width, D = depth
- 输入维度是 4x4x5 (HxWxD)
- 滤波器大小 2×2 (HxW)
- stride 的高和宽都是 2 (S)
新的高和宽的公式是:
new_height = (input_height - filter_height)/S + 1 new_width = (input_width - filter_width)/S + 1
注意:池化层的输出深度与输入的深度相同。另外池化操作是分别应用到每一个深度切片层。
下图给你一个最大池化层如何工作的示例。这里,最大池化滤波器的大小是 2×2。当最大池化层在输入层滑动时,输出是这个 2×2 方块的最大值。
池化层输出结果
输出的维度大小是什么?格式写成 HxWxD。
2x2x5
发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/167237.html原文链接:https://javaforall.cn
【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛
【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...