mindspore.ops.InplaceIndexAdd

查看源文件
class mindspore.ops.InplaceIndexAdd(axis)[源代码]

逐元素将一个Tensor updates 添加到原Tensor var 的指定轴和索引处。

警告

这是一个实验性API,后续可能修改或删除。

更多参考详见 mindspore.ops.inplace_index_add()

参数:
  • axis (int) - 要执行添加操作的轴。应该在范围 \([0, len(var.dim))\) 内。

输入:
  • var (Union[Parameter, Tensor]) - 被添加的输入Parameter或Tensor,数据类型为uint8、int8、int16、int32、float16、float32或float64。

  • indices (Tensor) - axis 指定轴上执行添加操作的索引。是一个1D Tensor,shape为 \((updates.shape[axis],)\) ,它的每个值应在范围 \([0, var.shape[axis])\) 之内,数据类型为int32。

  • updates (Tensor) - 要添加的输入Tensor。必须与 var 具有相同的数据类型。 除 axis 维度外, updatesvar 的shape应一致。

输出:

Tensor,更新后的结果,其shape和dtype与 var 一致。

支持平台:

Ascend CPU

样例:

>>> import mindspore
>>> import numpy as np
>>> from mindspore import Tensor, ops, Parameter
>>> var = Parameter(Tensor(np.array([[1, 2], [3, 4], [5, 6]]), mindspore.float32))
>>> indices = Tensor(np.array([0, 1]), mindspore.int32)
>>> updates = Tensor(np.array([[0.5, 1.0], [1.0, 1.5]]), mindspore.float32)
>>> inplaceIndexAdd = ops.InplaceIndexAdd(axis=0)
>>> var = inplaceIndexAdd(var, indices, updates)
>>> print(var)
[[1.5 3. ]
 [4.  5.5]
 [5.  6. ]]