cumprod

paddle. cumprod ( x, dim=None, dtype=None, name=None ) [源代码]

沿给定维度 dim 计算输入 tensor x 的累乘。

注解

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

参数

  • x (Tensor) - 累乘的输入,需要进行累乘操作的 tensor。

  • dim (int,可选) - 指明需要累乘的维度,取值范围需在[-x.rank,x.rank)之间,其中 x.rank 表示输入 tensor x 的维度,-1 代表最后一维。

  • dtype (str,可选) - 输出 tensor 的数据类型,支持 int32、int64、float32、float64、complex64、complex128。如果指定了,那么在执行操作之前,输入的 tensor 将被转换为 dtype 类型。这对于防止数据类型溢出非常有用。默认为:None。

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

返回

Tensor,累乘操作的结果。

代码示例

>>> import paddle

>>> data = paddle.arange(12)
>>> data = paddle.reshape(data, (3, 4))
>>> data
Tensor(shape=[3, 4], dtype=int64, place=Place(cpu), stop_gradient=True,
[[0 , 1 , 2 , 3 ],
 [4 , 5 , 6 , 7 ],
 [8 , 9 , 10, 11]])

>>> y = paddle.cumprod(data, dim=0)
>>> y
Tensor(shape=[3, 4], dtype=int64, place=Place(cpu), stop_gradient=True,
[[0  , 1  , 2  , 3  ],
 [0  , 5  , 12 , 21 ],
 [0  , 45 , 120, 231]])

>>> y = paddle.cumprod(data, dim=-1)
>>> y
Tensor(shape=[3, 4], dtype=int64, place=Place(cpu), stop_gradient=True,
[[0   , 0   , 0   , 0   ],
 [4   , 20  , 120 , 840 ],
 [8   , 72  , 720 , 7920]])

>>> y = paddle.cumprod(data, dim=1, dtype='float64')
>>> y
Tensor(shape=[3, 4], dtype=float64, place=Place(cpu), stop_gradient=True,
[[0.   , 0.   , 0.   , 0.   ],
 [4.   , 20.  , 120. , 840. ],
 [8.   , 72.  , 720. , 7920.]])

>>> assert y.dtype == paddle.float64