TensorFlow里的reduce_sum与reduce_mean

reduce_sum与reduce_mean

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

reduce_sum为降维求和,reduce_mean为降维求均值,参数都一致。

第二个参数axis: 指定的轴,如果不指定,则计算所有元素的均值;

第三个参数keep_dims:是否保持原来的维度,默认为False

第四个参数name: 操作的名称

第五个参数 reduction_indices:在以前版本中用来指定轴,已弃用;

其中比较难理解的是参数axis, reduction_indices,这两个参数是一个意思。

假设 matrix = [[[1.,2.],[3.,4.]], [[5.,6.],[7.,8.]]] #三维的张量 并且reduction_indices=[1] 或者 axis=[1]
## 针对每个去掉的方括号里面的元素求和。如果三维的,去掉中间的一维,即去掉第1维,那么第一维里面的元素分别是([1.,2.],[3.,4.])与 ([5.,6.],[7.,8.]) 
## 两组分别求和,为[4,6]与[12,14], 最后再加上最外层的一维方括号[],即为[[4., 6.], [12., 14.]]
## 简单来讲,维度是从外到内,最外层是0,然后就是去掉哪一维度,就先将这一维度的逗号改为加号(仅仅是这一维度,而不是更里面维度的),然后再去掉方括号,计算出结果就是正解

## reduction_indices=[0],  [[1.,2.],[3.,4.]]+[[5.,6.],[7.,8.]] = [[ 6.  8.] [10. 12.]]
## reduction_indices=[1], [[1.,2.]+[3.,4.],[5.,6.]+[7.,8.]] = [[ 4.  6.] [12. 14.]]
## reduction_indices=[2], [[1.+2.,3.+4.],[5.+6.,7.+8.]] = [[ 3.  7.] [11. 15.]]
## reduction_indices=None时,去掉所有的方括号[], 最终结果为36


keep_dims比较好理解,默认为False,即为不保持,如果设为True,原来是几维的,结果就补齐原有维度,
而且重点注意的是,在哪层降维,就在哪层加回括号,而不是简单的再最外层加一下而已
## reduce_sum(matrix, keep_dims=True, reduction_indices=None)   ###结果为 [[[36]]]
## reduce_sum(matrix, keep_dims=True, reduction_indices=[2])  ###结果为 [[[ 3.]  [ 7.]] [[11.] [15.]]]

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值