mindspore.ops.unsorted_segment_prod
- mindspore.ops.unsorted_segment_prod(x, segment_ids, num_segments)[源代码]
沿分段计算输入Tensor元素的乘积。
unsorted_segment_prod的计算过程如下图所示:
说明
如果 segment_ids 中不存在segment_id i ,则将使用1填充输出 output[i] 。
segment_ids 必须是一个非负Tensor。
- 参数:
x (Tensor) - shape: \((x_1, x_2, ..., x_R)\) 。数据类型支持float16、float32或int32。
segment_ids (Tensor) - 用于指示每个元素所属段的标签,将shape设置为 \((x_1, x_2, ..., x_N)\) ,其中0<N<=R。数据类型支持int32。
num_segments (Union[int, Tensor], 可选) - 分段数量 \(z\) ,可以为int或零维的Tensor。
- 返回:
Tensor, shape为 \((z, x_{N+1}, ..., x_R)\)。
- 异常:
TypeError - num_segments 不是int类型。
- 支持平台:
Ascend
GPU
CPU
样例:
>>> from mindspore import Tensor >>> from mindspore import ops >>> import numpy as np >>> x = Tensor(np.array([[1, 2, 3], [4, 5, 6], [4, 2, 1]]).astype(np.float32)) >>> segment_ids = Tensor(np.array([0, 1, 0]).astype(np.int32)) >>> num_segments = 2 >>> output = ops.unsorted_segment_prod(x, segment_ids, num_segments) >>> print(output) [[4. 4. 3.] [4. 5. 6.]]