使用tf.reduce_mean()做avg_pool

reduce_mean(
    input_tensor,
    axis=None,
    keepdims=None,
    name=None,
    reduction_indices=None,
    keep_dims=None
)

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

  • 对于二维张量
    0表示按列取平均
    1表示按行取平均
  • 对于三维张量:如图1,
    0标志按宽,也就是张量的第一个维度
    1表示按高,也就是张量的第二个维度
    2表示按长,也就是张量的第三个维度
    图1

    可以这样理解:对于如下这个数组
[[[ 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这样取平均。


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

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • TF API数学计算tf...... :math(1)刚开始先给一个运行实例。tf是基于图(Graph)的计算系统...
    MachineLP阅读 3,563评论 0 1
  • 1. tf函数 tensorflow 封装的工具类函数 | 操作组 | 操作 ||:-------------| ...
    南墙已破阅读 5,259评论 0 5
  • “非你莫属”求职全过程(设想) 1:开场白 尊敬的十二位老板,三位HR老师,涂磊老师,以及在场的所有伙伴们,大家晚...
    彭先生的杂货铺阅读 1,513评论 0 2
  • 作者 云出岫无心 年关渐近。待我走出房门,去寻些年味来。 腊月廿七,上街。作主妇状,背了花背兜,双手抱在胸前,往人...
    井希柱阅读 352评论 1 3
  • 提起苏东坡,大家最先想到的可能是"大江东去,浪淘尽,千古风流人物","明月几时有,把酒问青天",可能是他的文学头衔...
    幽园蝶居阅读 660评论 0 2