mindspore.ops.scatter_nd_div
- mindspore.ops.scatter_nd_div(input_x, indices, updates, use_locking=False)[source]
Perform a sparse division update on input_x based on the specified indices and update values.
Note
Support implicit type conversion and type promotion.
The dimension of indices is at least 2, and its shape must be indices.shape[-1] <= len(indices.shape).
The shape of updates is indices.shape[:-1] + input_x.shape[indices.shape[-1]:].
- Parameters
- Returns
Tensor
- Supported Platforms:
GPU
CPU
Examples
>>> import numpy as np >>> import mindspore >>> input_x = mindspore.Parameter(mindspore.tensor([1, 2, 3, 4, 5, 6, 7, 8], ... mindspore.float32), name="x") >>> indices = mindspore.tensor([[2], [4], [1], [7]], mindspore.int32) >>> updates = mindspore.tensor([6, 7, 8, 9], mindspore.float32) >>> output = mindspore.ops.scatter_nd_div(input_x, indices, updates, False) >>> print(output) [1. 0.25 0.5 4. 0.71428573 6. 7. 0.8888889 ] >>> input_x = mindspore.Parameter(mindspore.tensor(np.ones((4, 4, 4)), mindspore.float32)) >>> indices = mindspore.tensor(np.array([[0], [2]]), mindspore.int32) >>> updates = mindspore.tensor(np.array([[[1, 1, 1, 1], [2, 2, 2, 2], [3, 3, 3, 3], [4, 4, 4, 4]], ... [[5, 5, 5, 5], [6, 6, 6, 6], [7, 7, 7, 7], [8, 8, 8, 8]]]), mindspore.float32) >>> output = mindspore.ops.scatter_nd_div(input_x, indices, updates, False) >>> print(output) [[[1. 1. 1. 1. ] [0.5 0.5 0.5 0.5 ] [0.33333334 0.33333334 0.33333334 0.33333334] [0.25 0.25 0.25 0.25 ]] [[1. 1. 1. 1. ] [1. 1. 1. 1. ] [1. 1. 1. 1. ] [1. 1. 1. 1. ]] [[0.2 0.2 0.2 0.2 ] [0.16666667 0.16666667 0.16666667 0.16666667] [0.14285715 0.14285715 0.14285715 0.14285715] [0.125 0.125 0.125 0.125 ]] [[1. 1. 1. 1. ] [1. 1. 1. 1. ] [1. 1. 1. 1. ] [1. 1. 1. 1. ]]]