Shortcuts

tqdm_logger#

TQDM logger.

Classes

ProgressBar

TQDM progress bar handler to log training progress and computed metrics.

class ignite.contrib.handlers.tqdm_logger.ProgressBar(persist=False, bar_format='{desc}[{n_fmt}/{total_fmt}] {percentage:3.0f}%|{bar}{postfix} [{elapsed}<{remaining}]', **tqdm_kwargs)[source]#

TQDM progress bar handler to log training progress and computed metrics.

Parameters
  • persist (bool) – set to True to persist the progress bar after completion (default = False)

  • bar_format (Optional[str]) – Specify a custom bar string formatting. May impact performance. [default: ‘{desc}[{n_fmt}/{total_fmt}] {percentage:3.0f}%|{bar}{postfix} [{elapsed}<{remaining}]’]. Set to None to use tqdm default bar formatting: ‘{l_bar}{bar}{r_bar}’, where l_bar=’{desc}: {percentage:3.0f}%|’ and r_bar=’| {n_fmt}/{total_fmt} [{elapsed}<{remaining}, {rate_fmt}{postfix}]’. For more details on the formatting, see tqdm docs.

  • tqdm_kwargs (Any) – kwargs passed to tqdm progress bar. By default, progress bar description displays “Epoch [5/10]” where 5 is the current epoch and 10 is the number of epochs; however, if max_epochs are set to 1, the progress bar instead displays “Iteration: [5/10]”. If tqdm_kwargs defines desc, e.g. “Predictions”, than the description is “Predictions [5/10]” if number of epochs is more than one otherwise it is simply “Predictions”.

Examples

Simple progress bar

trainer = create_supervised_trainer(model, optimizer, loss)

pbar = ProgressBar()
pbar.attach(trainer)

# Progress bar will looks like
# Epoch [2/50]: [64/128]  50%|█████      [06:17<12:34]

Log output to a file instead of stderr (tqdm’s default output)

trainer = create_supervised_trainer(model, optimizer, loss)

log_file = open("output.log", "w")
pbar = ProgressBar(file=log_file)
pbar.attach(trainer)

Attach metrics that already have been computed at ITERATION_COMPLETED (such as RunningAverage)

trainer = create_supervised_trainer(model, optimizer, loss)

RunningAverage(output_transform=lambda x: x).attach(trainer, 'loss')

pbar = ProgressBar()
pbar.attach(trainer, ['loss'])

# Progress bar will looks like
# Epoch [2/50]: [64/128]  50%|█████      , loss=0.123 [06:17<12:34]

Directly attach the engine’s output

trainer = create_supervised_trainer(model, optimizer, loss)

pbar = ProgressBar()
pbar.attach(trainer, output_transform=lambda x: {'loss': x})

# Progress bar will looks like
# Epoch [2/50]: [64/128]  50%|█████      , loss=0.123 [06:17<12:34]

Example where the State Attributes trainer.state.alpha and trainer.state.beta are also logged along with the NLL and Accuracy after each iteration:

pbar.attach(
    trainer,
    metric_names=["nll", "accuracy"],
    state_attributes=["alpha", "beta"],
)

Note

When adding attaching the progress bar to an engine, it is recommend that you replace every print operation in the engine’s handlers triggered every iteration with pbar.log_message to guarantee the correct format of the stdout.

Note

When using inside jupyter notebook, ProgressBar automatically uses tqdm_notebook. For correct rendering, please install ipywidgets. Due to tqdm notebook bugs, bar format may be needed to be set to an empty string value.

Changed in version 0.4.7: attach now accepts an optional list of state_attributes

attach(engine, metric_names=None, output_transform=None, event_name=Events.ITERATION_COMPLETED, closing_event_name=Events.EPOCH_COMPLETED, state_attributes=None)[source]#

Attaches the progress bar to an engine object.

Parameters
  • engine (Engine) – engine object.

  • metric_names (Optional[Union[str, List[str]]]) – list of metric names to plot or a string “all” to plot all available metrics.

  • output_transform (Optional[Callable]) – a function to select what you want to print from the engine’s output. This function may return either a dictionary with entries in the format of {name: value}, or a single scalar, which will be displayed with the default name output.

  • event_name (Union[Events, CallableEventWithFilter]) – event’s name on which the progress bar advances. Valid events are from Events.

  • closing_event_name (Union[Events, CallableEventWithFilter]) – event’s name on which the progress bar is closed. Valid events are from Events.

  • state_attributes (Optional[List[str]]) – list of attributes of the trainer.state to plot.

Return type

None

Note

Accepted output value types are numbers, 0d and 1d torch tensors and strings.

attach_opt_params_handler(engine, event_name, *args, **kwargs)[source]#

Intentionally empty

Parameters
Return type

RemovableEventHandle

log_message(message)[source]#

Logs a message, preserving the progress bar correct output format.

Parameters

message (str) – string you wish to log.

Return type

None