• TensorFlow:tf.reduce_mean(input_tensor, axis=None, keep_dims=False, name=None, reduction_indices=None)


    转载:https://www.cnblogs.com/yuzhuwei/p/6986171.html

    1.概述

    深度学习里研究的物体的关系,都是比较复杂的。比如一个图片32X32大小的,它的像素信息就有1024个点,如果考虑RGB三种颜色,就是1024X3了。对于目前还没有办法构造140亿个神经元的计算机来说,只能干一件事情,就是简化,化繁为简。为了简化,就需要使用算法来进行,在数学上最简单的处理,就是求平均值。这个道理非常简单,如果10个数,只要把它们相加,再除以10即可。对于0维数字,可以这样来计算,如果对于N维的张量,就不是这么简单的计算了。就拿二维的矩阵来说,它可以横着算,还可以是竖着算,还可以全部加到一起,再除以总数。可见对于N维的张量来说,有更多的可能,那么就得抽像一个数轴出来。数轴在初中的代数就学习了,可见数轴在高等数学里也会使用到的,N维张量,就是N个数轴的表示,如果沿着不同的数轴进行计算,就会产生不同的作用。其实平均值也可以算是降维思想的一种。

    在TF里,就提供了这样一个算法来计算张量的平均值:

    2.tf.reduce_mean

    tf.reduce_mean(input_tensor,  axis=None,  keep_dims=False,  name=None,  reduction_indices=None)

    沿着张量不同的数轴进行计算平均值。

    input_tensor: 被计算的张量,确保为数字类型。

    axis: 方向数轴,如果没有指明,默认是所有数轴都减小为1。

    keep_dims: 如果定义true, 则保留维数,但数量个数为0.

    name: 操作过程的名称。

    reduction_indices: 为了旧函数兼容的数轴。

    返回值:

    降低维数的平均值。

    3.代码实现

    import tensorflow as tf
    #创建张量  
    x = tf.Variable([[1., 2., 3.], [4., 5., 6.], [7., 8., 9.]]);
    #显示
    init = tf.global_variables_initializer();
    with tf.Session() as sess:
        sess.run(init);
        #tf.reduce_mean(input_tensor,  axis=None,  keep_dims=False,  name=None,  reduction_indices=None)
        y = tf.reduce_mean(x);
        y01 = tf.reduce_mean(x, axis=0, keep_dims=False);
        y02 = tf.reduce_mean(x, axis=0, keep_dims=True);
        y1 = tf.reduce_mean(x, axis=1);
        
        print("x = ", x.eval());
        print("tf.reduce_mean(x) = ", y.eval());
        print("tf.reduce_mean(x, axis=0, keep_dims=False) = ", y01.eval());
        print("tf.reduce_mean(x, axis=0, keep_dims=True) = ", y02.eval())
        print("tf.reduce_mean(x, axis=1) = ", y1.eval());

     执行结果:

    ('x = ', array([[ 1.,  2.,  3.],
           [ 4.,  5.,  6.],
           [ 7.,  8.,  9.]], dtype=float32))
    ('tf.reduce_mean(x) = ', 5.0)
    ('tf.reduce_mean(x, axis=0, keep_dims=False) = ', array([ 4.,  5.,  6.], dtype=float32))
    ('tf.reduce_mean(x, axis=0, keep_dims=True) = ', array([[ 4.,  5.,  6.]], dtype=float32))
    ('tf.reduce_mean(x, axis=1) = ', array([ 2.,  5.,  8.], dtype=float32))

    总结:

    tf.reduce_mean(x)表示计算全局平均值;
    tf.reduce_mean(x, axis=0)表示计算y轴平均值;
    tf.reduce_mean(x, axis=1)表示计算x轴平均值;



  • 相关阅读:
    Windows 8 应用的页面导航(1)
    开发 Windows 8 Bing地图应用(6)
    Windows 8 应用的页面导航(2)
    Windows 8 生命周期管理(4)
    删除DataTable重复列,只针对删除其中的一列重复的行
    Silverlight 数据库 Silverlight Database
    广告费用 会计处理及其改进
    Query to Join Delivery Details and MTL Material Table
    SAVEPOINT
    SYNCHRONIZE
  • 原文地址:https://www.cnblogs.com/chamie/p/8776703.html
Copyright © 2020-2023  润新知