您当前的位置: 首页 > 

顺其自然~

暂无认证

  • 2浏览

    0关注

    1317博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

tf.reduce_sum理解(小记)

顺其自然~ 发布时间:2019-02-14 14:39:51 ,浏览量:2

reduce_sum应该理解为压缩求和,用于降维

# 'x' is [[1, 1, 1]

#         [1, 1, 1]]

#求和

tf.reduce_sum(x) ==> 6

#按列求和

tf.reduce_sum(x, 0) ==> [2, 2, 2]

#按行求和

tf.reduce_sum(x, 1) ==> [3, 3]

#按照行的维度求和

tf.reduce_sum(x, 1, keep_dims=True) ==> [[3], [3]]

#行列求和

tf.reduce_sum(x, [0, 1]) ==> 6

 

在计算损失时,通常会用到reduce_sum()函数来进行求和,但是在使用过程中常常会搞不清楚具体是怎样进行计算的,通过查阅资料,逐渐搞清楚了这个函数的用法,下面就来详细解释一下。

在TensorFlow官方文档中有这样的解释: 

è¿éåå¾çæè¿° 其实在reduce_sum()中,是从维度上去考虑的。其中的参数reduction_indices很容易搞蒙圈,上个图加深理解吧。 

调用reduce_sum(arg1, arg2)时,参数arg1即为要求和的数据,arg2有两个取值分别为0和1,通常用reduction_indices=[0]或reduction_indices=[1]来给arg2传递参数。从上图可以看出,当arg2 = 0时,是纵向对矩阵求和,原来矩阵有几列最后就得到几个值;相似地,当arg2 = 1时,是横向对矩阵求和,原来矩阵有几行最后就得到几个值;当省略arg2参数时,默认对矩阵所有元素进行求和,最后得到一个值。

看到这里,函数名的前缀为什么是reduce_其实也就很容易理解了,reduce就是“对矩阵降维”的含义,下划线后面的部分就是降维的方式,在reduce_sum()中就是按照求和的方式对矩阵降维。那么其他reduce前缀的函数也举一反三了,比如reduce_mean()就是按照某个维度求平均值,等等。

 

关注
打赏
1662339380
查看更多评论
立即登录/注册

微信扫码登录

0.0386s