mindspore.ops.inplace_add

mindspore.ops.inplace_add(x, v, indices)[source]

Adds v into specified rows of x. Computes y = x; y[i,] += v.

Note

indices refers to the left-most dimension.

Parameters
  • x (Tensor) – The first input is a tensor whose data type is float16, float32, float64 or int32. \((N,*)\) where \(*\) means, any number of additional dimensions, its rank should be less than 8.

  • v (Tensor) – The second input is a tensor that has the same dimension sizes as x except the first dimension, which must be the same as indices’ size. It has the same data type with x.

  • indices (Union[int, tuple]) – Indices into the left-most dimension of x, and determines which rows of x to add with v. It is an integer or a tuple, whose value is in [0, the first dimension size of x).

Returns

Tensor, has the same shape and dtype as x.

Raises
  • TypeError – If indices is neither int nor tuple.

  • TypeError – If indices is a tuple whose elements are not all int.

  • ValueError – If the rank of x is not equal to the rank of v.

  • ValueError – If the length of indices is not equal to v.shape[0].

  • ValueError – If the values of indices are not in range of [0, x.shape[0]).

Supported Platforms:

Ascend CPU

Examples

>>> import numpy as np
>>> import mindspore
>>> from mindspore import Tensor, ops
>>> indices = (0, 1)
>>> x = Tensor(np.array([[1, 2], [3, 4], [5, 6]]), mindspore.float32)
>>> input_v = Tensor(np.array([[0.5, 1.0], [1.0, 1.5]]), mindspore.float32)
>>> output = ops.inplace_add(x, input_v, indices)
>>> print(output)
[[1.5 3. ]
 [4.  5.5]
 [5.  6. ]]