cumprod¶
沿给定维度 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