Scatter updates
into an existing tensor according to indices
.
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
, 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 intotensor
so 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]:]
For usage examples see the python tf.tensor_scatter_nd_update function
Args | |
---|---|
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). |
Returns | |
---|---|
A Tensor . Has the same type as tensor .
|