mindspore.ops.inplace_sub
- mindspore.ops.inplace_sub(x, v, indices)[source]
Subtracts v into specified rows of x. Computes \(y = x\); \(y[i,] -= input\_v\).
Note
indices refers to the left-most dimension.
- Parameters
indices (Union[int, tuple]) – Indices into the left-most dimension of x, and determines which rows of x to subtract with v. It is an int or tuple, whose value is in [0, the first dimension size of x).
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 who 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.
- 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_sub(x, input_v, indices) >>> print(output) [[0.5 1. ] [2. 2.5] [5. 6. ]]