Scatter updates into an existing tensor according to indices.
tf.raw_ops.TensorScatterUpdate(
tensor, indices, updates, bad_indices_policy='', 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, 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, the index is ignored.
- The order in which updates are applied is nondeterministic, so the output
will be nondeterministic if
indicescontains duplicates.
indices is an integer tensor containing indices into a new tensor of shape
shape.
indicesmust have at least 2 axes:(num_updates, index_depth).- The last axis of
indicesis how deep to index intotensorso this index depth must be less than the rank oftensor: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]:]
If indices contains any out-of-bound indices, depending on
bad_indices_policy, the op will either return an error or ignore the
out-of-bound indices. bad_indices_policy can be one of the following values:
- "" or "DEFAULT": raises on CPU and ignore on GPU. This is because historically on CPU and GPU we handle errors in different ways, and for backward compatibility we keep the default behavior.
- "ERROR": raises error; GPU does not support this value.
- "IGNORE": ignore the bad indices; supported on both CPU and GPU.
For usage examples see the python tf.tensor_scatter_nd_update function
Returns | |
|---|---|
A Tensor. Has the same type as tensor.
|