# tf.VariableSynchronization

<br />

|---|
| [![](https://www.tensorflow.org/images/GitHub-Mark-32px.png) View source on GitHub](https://github.com/tensorflow/tensorflow/blob/v2.14.0/tensorflow/python/ops/variables.py#L61-L85) |

Indicates when a distributed variable will be synced.

#### View aliases


**Compat aliases for migration**

See
[Migration guide](https://www.tensorflow.org/guide/migrate) for
more details.

[`tf.compat.v1.VariableSynchronization`](https://www.tensorflow.org/api_docs/python/tf/VariableSynchronization)

<br />

- `AUTO`: Indicates that the synchronization will be determined by the current `DistributionStrategy` (eg. With `MirroredStrategy` this would be `ON_WRITE`).
- `NONE`: Indicates that there will only be one copy of the variable, so there is no need to sync.
- `ON_WRITE`: Indicates that the variable will be updated across devices every time it is written.
- `ON_READ`: Indicates that the variable will be aggregated across devices
  when it is read (eg. when checkpointing or when evaluating an op that uses
  the variable).

  Example:

    >>> temp_grad=[tf.Variable([0.], trainable=False,
    ...                      synchronization=tf.VariableSynchronization.ON_READ,
    ...                      aggregation=tf.VariableAggregation.MEAN
    ...                      )]

<br />

<br />

<br />

| ## Class Variables ||
|---|---|
| AUTO | `<VariableSynchronization.AUTO: 0>` |
| NONE | `<VariableSynchronization.NONE: 1>` |
| ON_READ | `<VariableSynchronization.ON_READ: 3>` |
| ON_WRITE | `<VariableSynchronization.ON_WRITE: 2>` |

<br />