scatter_add¶
dragon.
scatter_add
(
inputs,
axis=0,
copy=True,
**kwargs
)[source]¶Add elements along the given axis of index.
Number of dimensions of input and index should be same. For 3-d input, output is updated as:
out[index[i, j, k], j, k] += updates[i, j, k] # ``axis`` is 0 out[i, index[i, j, k], k] += updates[i, j, k] # ``axis`` is 1 out[i, j, index[i, j, k]] += updates[i, j, k] # ``axis`` is 2
Examples:
y = dragon.constant([[1, 2], [3, 4]]) x = dragon.constant([[5, 6], [7, 8]]) index = dragon.constant([[0, 0], [0, 0]]) print(dragon.scatter_add([y, index, x], axis=0)) # [[13, 16], [3, 4]] print(dragon.scatter_add([y, index, x], axis=1)) # [[12, 2], [18, 4]]
- Parameters:
- inputs (Sequence[dragon.Tensor]) – The input, index and updates tensor.
- axis (int, optional, default=0) – The axis of index values.
- copy (bool, optional, default=True) – Return a new tensor or call in-place.
- Returns:
dragon.Tensor – The output tensor.