mindspore.ops.tensor_scatter_min
- mindspore.ops.tensor_scatter_min(input_x, indices, updates)[source]
By comparing the value at the position indicated by indices in input_x with the value in the updates, the value at the index will eventually be equal to the smallest one to create a new tensor.
The last axis of the index is the depth of each index vector. For each index vector, there must be a corresponding value in updates. The shape of updates should be equal to the shape of input_x[indices]. For more details, see case below.
\[output\left [indices \right ] = \min(input\_x, update)\]Note
On GPU, if some values of the indices are out of bound, instead of raising an index error, the corresponding updates will not be updated to self tensor.
On CPU, if some values of the indices are out of bound, raising an index error.
On Ascend, out of bound checking is not supported, if some values of the indices are out of bound, unknown errors may be caused.
- Parameters
input_x (Tensor) – The input tensor. The dimension of input_x must be no less than indices.shape[-1].
indices (Tensor) – The index of input tensor whose data type is int32 or int64. The rank must be at least 2.
updates (Tensor) – The tensor to update the input tensor, has the same type as input_x And the shape of updates should be equal to \(indices.shape[:-1] + input\_x.shape[indices.shape[-1]:]\).
- Returns
Tensor, has the same shape and type as input_x.
- Raises
TypeError – If dtype of indices is neither int32 nor int64.
ValueError – If length of shape of input_x is less than the last dimension of shape of indices.
RuntimeError – If a value of indices is not in input_x on CPU backend.
- Supported Platforms:
Ascend
GPU
CPU
Examples
>>> import mindspore >>> import numpy as np >>> from mindspore import Tensor >>> from mindspore import ops >>> input_x = Tensor(np.array([[-0.1, 0.3, 3.6], [0.4, 0.5, -3.2]]), mindspore.float32) >>> indices = Tensor(np.array([[0, 0], [0, 0]]), mindspore.int32) >>> updates = Tensor(np.array([1.0, 2.2]), mindspore.float32) >>> output = ops.tensor_scatter_min(input_x, indices, updates) >>> print(output) [[ -0.1 0.3 3.6] [ 0.4 0.5 -3.2]]