# tf.scatter_mul(ref, indices, updates, use_locking=None, name=None)

### tf.scatter_mul(ref, indices, updates, use_locking=None, name=None)

See the guide: Variables > Sparse Variable Updates

Multiplies sparse updates into a variable reference.

This operation computes

# Scalar indices

# Vector indices (for each 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:].

#### Args:

• ref: A mutable Tensor. Must be one of the following types: float32, float64, int64, int32, uint8, uint16, int16, int8, complex64, complex128, qint8, quint8, qint32, half. 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:

Same as ref. Returned as a convenience for operations that want to use the updated values after the update is done.

Defined in tensorflow/python/ops/gen_state_ops.py.