# tf.raw_ops.TensorScatterUpdate

<br />

Scatter `updates` into an existing tensor according to `indices`.

#### View aliases


**Compat aliases for migration**

See
[Migration guide](https://www.tensorflow.org/guide/migrate) for
more details.

[`tf.compat.v1.raw_ops.TensorScatterUpdate`](https://www.tensorflow.org/api_docs/python/tf/raw_ops/TensorScatterUpdate)

<br />

    tf.raw_ops.TensorScatterUpdate(
        tensor, indices, updates, name=None
    )

This operation creates a new tensor by applying sparse `updates` to the passed
in `tensor`.
This operation is very similar to [`tf.scatter_nd`](https://www.tensorflow.org/versions/r2.13/api_docs/python/tf/scatter_nd), except that the updates are
scattered onto an existing tensor (as opposed to a zero-tensor). If the memory
for the existing tensor cannot be re-used, a copy is made and updated.

If `indices` contains duplicates, then we pick the last update for the index.

If an out of bound index is found on CPU, an error is returned.

> [!WARNING]
> **Warning:** There are some GPU specific semantics for this operation.

- If an out of bound index is found, the index is ignored.
- The order in which updates are applied is nondeterministic, so the output will be nondeterministic if `indices` contains duplicates.

`indices` is an integer tensor containing indices into a new tensor of shape
`shape`.

- `indices` must have at least 2 axes: `(num_updates, index_depth)`.
- The last axis of `indices` is how deep to index into `tensor` so this index depth must be less than the rank of `tensor`: `indices.shape[-1] <= tensor.ndim`

if `indices.shape[-1] = tensor.rank` this Op indexes and updates scalar elements.
if `indices.shape[-1] < tensor.rank` it indexes and updates slices of the input
`tensor`.

Each `update` has a rank of `tensor.rank - indices.shape[-1]`.
The overall shape of `updates` is:

    indices.shape[:-1] + tensor.shape[indices.shape[-1]:]

For usage examples see the python [tf.tensor_scatter_nd_update](https://www.tensorflow.org/api_docs/python/tf/tensor_scatter_nd_update) function

<br />

<br />

<br />

| ## Args ||
|---|---|
| `tensor` | A `Tensor`. Tensor to copy/update. |
| `indices` | A `Tensor`. Must be one of the following types: `int16`, `int32`, `int64`, `uint16`. Index tensor. |
| `updates` | A `Tensor`. Must have the same type as `tensor`. Updates to scatter into output. |
| `name` | A name for the operation (optional). |

<br />

<br />

<br />

<br />

| ## Returns ||
|---|---|
| A `Tensor`. Has the same type as `tensor`. ||

<br />