Lightning supports two different types of progress bars (`tqdm <https://github.com/tqdm/tqdm>`_ and `rich <https://github.com/Textualize/rich>`_). :class:`~pytorch_lightning.callbacks.TQDMProgressBar` is used by default,
but you can override it by passing a custom :class:`~pytorch_lightning.callbacks.TQDMProgressBar` or :class:`~pytorch_lightning.callbacks.RichProgressBar` to the ``callbacks`` argument of the :class:`~pytorch_lightning.trainer.trainer.Trainer`.
You could also use the :class:`~pytorch_lightning.callbacks.ProgressBarBase` class to implement your own progress bar.
-------------
TQDMProgressBar
---------------
The :class:`~pytorch_lightning.callbacks.TQDMProgressBar` uses the `tqdm <https://github.com/tqdm/tqdm>`_ library internally and is the default progress bar used by Lightning.
It prints to ``stdout`` and shows up to four different bars:
-**sanity check progress:** the progress during the sanity check run
-**main progress:** shows training + validation progress combined. It also accounts for multiple validation runs during training when :paramref:`~pytorch_lightning.trainer.trainer.Trainer.val_check_interval` is used.
-**validation progress:** only visible during validation; shows total progress over all validation datasets.
-**test progress:** only active when testing; shows total progress over all test datasets.
For infinite datasets, the progress bar never ends.
You can update ``refresh_rate`` (rate (number of batches) at which the progress bar get updated) for :class:`~pytorch_lightning.callbacks.TQDMProgressBar` by:
..code-block:: python
from pytorch_lightning.callbacks import TQDMProgressBar