cumsum

paddle. cumsum ( x, axis=None, dtype=None, name=None, *, out=None ) [源代码]

沿给定 axis 计算 Tensor x 的累加和。

注意:结果的第一个元素和输入的第一个元素相同。

备注

别名支持: 参数名 input 可替代 xdim 可替代 axis,如 input=tensor_x 等价于 x=tensor_xdim=2 等价于 axis=2

参数

  • x (Tensor) - 累加的输入,需要进行累加操作的 Tensor。别名 input

  • axis (int,可选) - 指明需要累加的维度。-1 代表最后一维。默认:None,将输入展开为一维变量再进行累加计算。别名 dim

  • dtype (str|paddle.dtype|np.dtype,可选) - 输出 Tensor 的数据类型,支持 int32、int64、bfloat16、float16、float32、float64、complex64、complex128。当输入 x 的类型是 int8/int16/int32 时,默认值是 int64;否则默认值是 None。如果不为 None,那么在执行操作之前,输入 Tensor 将被转换为 dtype。这对于防止数据类型溢出非常有用。

  • name (str,可选) - 具体用法请参见 api_guide_Name,一般无需设置,默认值为 None。

关键字参数

  • out (Tensor,可选) - 输出 Tensor,若不为 None,计算结果将保存在该 Tensor 中,默认值为 None

返回

Tensor,累加的结果。

代码示例

>>> import paddle

>>> data = paddle.arange(12)
>>> data = paddle.reshape(data, (3, 4))

>>> y = paddle.cumsum(data)
>>> y
Tensor(shape=[12], dtype=int64, place=Place(cpu), stop_gradient=True,
[0 , 1 , 3 , 6 , 10, 15, 21, 28, 36, 45, 55, 66])

>>> y = paddle.cumsum(data, axis=0)
>>> y
Tensor(shape=[3, 4], dtype=int64, place=Place(cpu), stop_gradient=True,
[[0 , 1 , 2 , 3 ],
 [4 , 6 , 8 , 10],
 [12, 15, 18, 21]])

>>> y = paddle.cumsum(data, axis=-1)
>>> y
Tensor(shape=[3, 4], dtype=int64, place=Place(cpu), stop_gradient=True,
[[0 , 1 , 3 , 6 ],
 [4 , 9 , 15, 22],
 [8 , 17, 27, 38]])

>>> y = paddle.cumsum(data, dtype='float64')
>>> assert y.dtype == paddle.float64