Tensorflow学习笔记

使用tf.reduce_mean()做avg_pool

2018-01-27  本文已影响7人  Manfestain
reduce_mean(
    input_tensor,
    axis=None,
    keepdims=None,
    name=None,
    reduction_indices=None,
    keep_dims=None
)

axis表示按那个维度进行取平均值,当axis参数为list时,会按照list的值依次进行取平均,对于二维张量其取值有01,表示两个维度;当三维张量时其取值可以有012,表示三个维度,否则会出错

[[[ 1  2  3]
  [ 4  5  6]]

 [[ 7  8  9]
  [10 11 12]]]

括号外面的“维度”是一维、二维和三维,比如最外围的括号是一维,也就是0方向,其它类似;括号里面可以理解为“轴”,指的是返回低维数组含有原始高维数组某条轴上的所有数据,比如a111~ a341和a112~ a342,就是0轴上的数据,其它类似。

keep_dims=True表示取均值完后的维度和输入维度相同


使用tf.reduce_mean()实现avg_pool()

y1 = tf.reduce_mean(inputs, [1, 2], keep_dims=True, name='avg_pool')

假设inputs的维度是32x224x224x3y1的维度就是32x1x1x3,会先对inputs按照[1, 2]中的1按照第二维度取平均,也就是图1中a141、a241、a341这样取平均,然后对第一次取平均的结果按照[1, 2]中的2按第一维度取平均,也就是图1中的a311、a321、a331、a341这样取平均。


可能理解不到位,欢迎指正!

上一篇下一篇

猜你喜欢

热点阅读