SpeedMonitor#
- class composer.callbacks.SpeedMonitor(window_size=100)[source]#
Logs the training throughput.
The training throughput in terms of number of samples per second is logged on the
Event.BATCH_ENDevent if we have reached thewindow_sizethreshold.The wall clock train time is logged on every
Event.BATCH_ENDevent.The average throughout over an epoch is logged on the
Event.EPOCH_ENDevent.Example
>>> from composer import Trainer >>> from composer.callbacks import SpeedMonitor >>> # constructing trainer object with this callback >>> trainer = Trainer( ... model=model, ... train_dataloader=train_dataloader, ... eval_dataloader=eval_dataloader, ... optimizers=optimizer, ... max_duration='1ep', ... callbacks=[SpeedMonitor(window_size=100)], ... )
The training throughput is logged by the
Loggerto the following keys as described below.Key
Logged data
throughput/samples_per_secRolling average (over
window_sizemost recent batches) of the number of samples processed per secondwall_clock/trainTotal elapsed training time
wall_clock/valTotal elapsed validation time
wall_clock/totalTotal elapsed time (wall_clock/train + wall_clock/val)
- Parameters
window_size (int, optional) โ Number of batches to use for a rolling average of throughput. Defaults to 100.