Multiplies sparse updates into a variable reference.

tf.raw_ops.ScatterMul( ref, indices, updates, use_locking=False, name=None )

This operation computes

# Scalar indices ref[indices, ...] *= updates[...] # Vector indices (for each i) ref[indices[i], ...] *= updates[i, ...] # High rank indices (for each i, ..., j) ref[indices[i, ..., j], ...] *= updates[i, ..., j, ...]

This operation outputs `ref`

after the update is done. This makes it easier to chain operations that need to use the reset value.

Duplicate entries are handled correctly: if multiple `indices`

reference the same location, their contributions multiply.

Requires `updates.shape = indices.shape + ref.shape[1:]`

or `updates.shape = []`

.

Args | |
---|---|

`ref` | A mutable `Tensor` . Must be one of the following types: `float32` , `float64` , `int32` , `uint8` , `int16` , `int8` , `complex64` , `int64` , `qint8` , `quint8` , `qint32` , `bfloat16` , `uint16` , `complex128` , `half` , `uint32` , `uint64` . Should be from a `Variable` node. |

`indices` | A `Tensor` . Must be one of the following types: `int32` , `int64` . A tensor of indices into the first dimension of `ref` . |

`updates` | A `Tensor` . Must have the same type as `ref` . A tensor of updated values to multiply to `ref` . |

`use_locking` | An optional `bool` . Defaults to `False` . If True, the operation will be protected by a lock; otherwise the behavior is undefined, but may exhibit less contention. |

`name` | A name for the operation (optional). |

Returns | |
---|---|

A mutable `Tensor` . Has the same type as `ref` . |

© 2020 The TensorFlow Authors. All rights reserved.

Licensed under the Creative Commons Attribution License 3.0.

Code samples licensed under the Apache 2.0 License.

https://www.tensorflow.org/versions/r2.4/api_docs/python/tf/raw_ops/ScatterMul