mindspore.ops.InplaceIndexAdd

View Source On Gitee
class mindspore.ops.InplaceIndexAdd(axis)[source]

Adds Tensor updates to specified axis and indices of Tensor var element-wise.

Warning

This is an experimental API that is subject to change or deletion.

Refer to mindspore.ops.inplace_index_add() for more details.

Parameters

axis (int) – The dimension along which to index. It should be in range \([0, len(var.dim))\).

Inputs:
  • var (Union[Parameter, Tensor]) - The input Parameter or Tensor to add to, with data type uint8, int8, int16, int32, float16, float32, float64.

  • indices (Tensor) - The indies along axis to perform the addition. A 1D Tensor of shape \((updates.shape[axis],)\), every value of it should be in range \([0, var.shape[axis])\) with data type int32.

  • updates (Tensor) - The input Tensor with the value to add. Must have same data type as var. The shape must be the same as var except the axis th dimension.

Outputs:

Tensor, updated result, has the same shape and dtype as var.

Supported Platforms:

Ascend CPU

Examples

>>> 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. ]]