RSVP for your your local TensorFlow Everywhere event today!


Scatter updates into an existing tensor according to indices.

This operation creates a new tensor by applying sparse updates to the passed in tensor. This operation is very similar to 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.

  • 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 function

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

A Tensor. Has the same type as tensor.