mindspore.ops.sum

查看源文件
mindspore.ops.sum(input, dim=None, keepdim=False, *, dtype=None)[源代码]

计算Tensor指定维度元素的和。

参数:
  • input (Tensor) - 输入Tensor。

  • dim (Union[None, int, tuple(int), list(int)]) - 求和的维度。如果 dimNone ,对Tensor中的所有元素求和。 如果 dim 为int组成的tuple或list,将对tuple中的所有维度求和,取值范围必须在 \([-input.ndim, input.ndim)\) 。默认值: None

  • keepdim (bool) - 是否保留输出Tensor的维度,如果为 True ,保持对应的维度且长度为1。如果为 False ,不保持维度。默认值: False

关键字参数:
  • dtype (mindspore.dtype, 可选) - 期望输出Tensor的类型。默认值: None

返回:

Tensor, input 指定维度的和。

异常:
  • TypeError - input 不是Tensor类型。

  • TypeError - dim 类型不是int,tulpe(int),list(int)或None。

  • ValueError - dim 取值不在 \([-input.ndim, input.ndim)\) 范围。

  • TypeError - keepdim 不是Tensor类型。

支持平台:

Ascend GPU CPU

样例:

>>> import numpy as np
>>> from mindspore import Tensor, ops
>>> from mindspore import dtype as mstype
>>> x = Tensor(np.array([[[1, 1, 1, 1, 1, 1], [2, 2, 2, 2, 2, 2], [3, 3, 3, 3, 3, 3]],
...                      [[4, 4, 4, 4, 4, 4], [5, 5, 5, 5, 5, 5], [6, 6, 6, 6, 6, 6]],
...                      [[7, 7, 7, 7, 7, 7], [8, 8, 8, 8, 8, 8], [9, 9, 9, 9, 9, 9]]]), mstype.float32)
>>> out = ops.sum(x)
>>> print(out)
270.0
>>> out = ops.sum(x, dim=2)
>>> print(out)
[[ 6. 12. 18.]
 [24. 30. 36.]
 [42. 48. 54.]]
>>> out = ops.sum(x, dim=2, keepdim=True)
>>> print(out)
[[[ 6.]
 [12.]
 [18.]]
[[24.]
 [30.]
 [36.]]
[[42.]
 [48.]
 [54.]]]