mindspore.ops.scatter_add

查看源文件
mindspore.ops.scatter_add(input_x, indices, updates)[源代码]

根据指定索引和更新值对 input_x 进行加法更新。

\[\text{input_x}[\text{indices}[i, ..., j], :] \mathrel{+}= \text{updates}[i, ..., j, :]\]

说明

  • 支持隐式类型转换、类型提升。

  • 因Parameter对象不支持类型转换,当 input_x 为低精度数据类型时,会抛出异常。

  • updates 的shape为 indices.shape + input_x.shape[1:]

参数:
  • input_x (Union[Parameter, Tensor]) - 输入的parameter或tensor。

  • indices (Tensor) - 指定索引。

  • updates (Tensor) - 更新值。

返回:

Tensor

支持平台:

Ascend GPU CPU

样例:

>>> import mindspore
>>> input_x = mindspore.Parameter(mindspore.tensor([[0.0, 0.0, 0.0], [0.0, 0.0, 0.0]],
...                               mindspore.float32), name="x")
>>> indices = mindspore.tensor([[0, 1], [1, 1]], mindspore.int32)
>>> updates = mindspore.tensor([[[1.0, 1.0, 1.0], [3.0, 3.0, 3.0]],
...                            [[7.0, 7.0, 7.0], [9.0, 9.0, 9.0]]], mindspore.float32)
>>> output = mindspore.ops.scatter_add(input_x, indices, updates)
>>> print(output)
[[ 1.  1.  1.]
 [19. 19. 19.]]