mindspore.ops.cumsum

mindspore.ops.cumsum(x, axis, dtype=None)[源代码]

计算输入Tensor x 沿轴 axis 的累积和。

\[y_i = x_1 + x_2 + x_3 + ... + x_i\]

说明

目前Ascend平台上,对于静态shape的场景, x 的数据类型暂仅支持:int8、uint8、int32,float32和float16;对于动态shape的场景, x 的数据类型暂仅支持:int32、float32和float16。

参数:
  • x (Tensor) - 输入Tensor。shape为 \((N, *)\) ,其中 \(*\) 为任意数量的额外维度。

  • axis (int) - 累积和计算的轴。

  • dtype (mindspore.dtype, 可选) - 输出数据类型。如果不为None,则输入会转化为 dtype。这有利于防止数值溢出。如果为None,则输出和输入的数据类型一致。默认值: None

返回:

Tensor,和输入Tensor的shape相同。

异常:
  • TypeError - 如果 x 不是Tensor。

  • ValueError - 如果 axis 超出范围。

支持平台:

Ascend GPU CPU

样例:

>>> import mindspore
>>> import numpy as np
>>> from mindspore import Tensor
>>> import mindspore.ops as ops
>>> x = Tensor(np.array([[3, 4, 6, 10], [1, 6, 7, 9], [4, 3, 8, 7], [1, 3, 7, 9]]).astype(np.float32))
>>> # case 1: along the axis 0
>>> y = ops.cumsum(x, 0)
>>> print(y)
[[ 3.  4.  6. 10.]
 [ 4. 10. 13. 19.]
 [ 8. 13. 21. 26.]
 [ 9. 16. 28. 35.]]
>>> # case 2: along the axis 1
>>> y = ops.cumsum(x, 1)
>>> print(y)
[[ 3.  7. 13. 23.]
 [ 1.  7. 14. 23.]
 [ 4.  7. 15. 22.]
 [ 1.  4. 11. 20.]]