Keras integration with TQDM progress bars.
- Keras is an awesome machine learning library for Theano or TensorFlow.
- TQDM is a progress bar library with good support for nested loops and Jupyter/IPython notebooks.
- TQDM supports nested progress bars. If you have Keras fit and predict loops within an outer TQDM loop, the nested loops will display properly.
- TQDM supports Jupyter/IPython notebooks.
- TQDM looks great!
TQDMNotebookCallback
with leave_inner=False
(default)
TQDMNotebookCallback
with leave_inner=True
TQDMCallback
for command-line scripts
Stable release
pip install keras-tqdm
Development release
pip install git+https://github.com/bstriner/keras-tqdm.git --upgrade --no-deps
Development mode (changes to source take effect without reinstalling)
git clone https://github.com/bstriner/keras-tqdm.git cd keras-tqdm python setup.py develop
It's very easy to use Keras TQDM. The only required change is to remove default messages (verbose=0) and add a callback to model.fit
. The rest happens automatically! For Jupyter Notebook required code modification is as simple as:
from keras_tqdm import TQDMNotebookCallback # keras, model definition... model.fit(X_train, Y_train, verbose=0, callbacks=[TQDMNotebookCallback()])
For plain text mode (e.g. for Python run from command line)
from keras_tqdm import TQDMCallback # keras, model definition... model.fit(X_train, Y_train, verbose=0, callbacks=[TQDMCallback()])
Use keras_tqdm
to utilize TQDM progress bars for Keras fit loops.
keras_tqdm
loops can be nested inside TQDM loops to display nested progress bars (although you can use them
inside ordinary for loops as well).
Set verbose=0
to suppress the default progress bar.
from keras_tqdm import TQDMCallback from tqdm import tqdm for model in tqdm(models, desc="Training several models"): model.fit(x, y, verbose=0, callbacks=[TQDMCallback()])
For IPython and Jupyter notebook TQDMNotebookCallback
instead of TQDMCallback
. Use tqdm_notebook
in your own code instead of tqdm
.
Formatting is controlled by python format strings. The default metric_format
is "{name}: {value:0.3f}"
.
For example, use TQDMCallback(metric_format="{name}: {value:0.6f}")
for 6 decimal points or {name}: {value:e}
for scientific notation.
Please feel free to submit PRs and issues. Comments, questions, and
requests are welcome. If you need more control, subclass
TQDMCallback
and override the tqdm
function.