Stay organized with collections Save and categorize content based on your preferences.

View source on GitHub

A conditional accumulator for aggregating gradients.

Inherits From: ConditionalAccumulatorBase

Up-to-date gradients (i.e., time step at which gradient was computed is equal to the accumulator's time step) are added to the accumulator.

Extraction of the average gradient is blocked until the required number of gradients has been accumulated.

dtype Datatype of the accumulated gradients.
shape Shape of the accumulated gradients.
shared_name Optional. If non-empty, this accumulator will be shared under the given name across multiple sessions.
name Optional name for the accumulator.
reduction_type Reduction type to use when taking the gradient.

accumulator_ref The underlying accumulator reference.
dtype The datatype of the gradients accumulated by this accumulator.
name The name of the underlying accumulator.



View source

Attempts to apply a gradient to the accumulator.

The attempt is silently dropped if the gradient is stale, i.e., local_step is less than the accumulator's global time step.

grad The gradient tensor to be applied.
local_step Time step at which the gradient was computed.
name Optional name for the operation.

The operation that (conditionally) applies a gradient to the accumulator.

ValueError If grad is of the wrong shape


View source

Number of gradients that have currently been aggregated in accumulator.

name Optional name for the operation.

Number of accumulated gradients currently in accumulator.


View source

Sets the global time step of the accumulator.

The operation logs a warning if we attempt to set to a time step that is lower than the accumulator's own time step.

new_global_step Value of new time step. Can be a variable or a constant
name Optional name for the operation.

Operation that sets the accumulator's time step.


View source

Attempts to extract the average gradient from the accumulator.

The operation blocks until sufficient number of gradients have been successfully applied to the accumulator.

Once successful, the following actions are also triggered:

  • Counter of accumulated gradients is reset to 0.
  • Aggregated gradient is reset to 0 tensor.
  • Accumulator's internal time step is incremented by 1.

num_required Number of gradients that needs to have been aggregated
name Optional name for the operation

A tensor holding the value of the average gradient.

InvalidArgumentError If num_required < 1