SpeedMonitor

class composer.callbacks.speed_monitor.SpeedMonitor(window_size: int)[source]

Bases: composer.core.callback.RankZeroCallback

Logs the training throughput.

It logs:

  • A rolling average (over the window_size most recent batches) of the number of samples processed per second to the throughput/step key.

  • The number of samples processed per second, averaged over an entire epoch, to the throughput/epoch key.

  • The total elapsed training time to the wall_clock_train key.

Parameters

window_size (int) – Number of batchs to use for a rolling average of throughput.

batch_end(state: State, logger: Logger)[source]

Called on the BATCH_END event.

Parameters
  • state (State) – The global state.

  • logger (Logger) – The logger.

batch_start(state: State, logger: Logger) None[source]

Called on the BATCH_START event.

Parameters
  • state (State) – The global state.

  • logger (Logger) – The logger.

epoch_end(state: State, logger: Logger)[source]

Called on the EPOCH_END event.

Parameters
  • state (State) – The global state.

  • logger (Logger) – The logger.

epoch_start(state: State, logger: Logger)[source]

Called on the EPOCH_START event.

Parameters
  • state (State) – The global state.

  • logger (Logger) – The logger.

load_state_dict(state: composer.core.types.StateDict) None[source]

Restores the state of the object.

Parameters

state (StateDict) – The state of the object, as previously returned by state_dict()

state_dict() composer.core.types.StateDict[source]

Returns a dictionary representing the internal state.

The returned dictionary must be pickale-able via torch.save().

Returns

StateDict – The state of the object