RSVP for your your local TensorFlow Everywhere event today!

TensorFlow Addons Callbacks: TQDM Progress Bar

View on Run in Google Colab View source on GitHub Download notebook


This notebook will demonstrate how to use TQDMCallback in TensorFlow Addons.


pip install -U tensorflow-addons
!pip install -q "tqdm>=4.36.1"

import tensorflow as tf
import tensorflow_addons as tfa

from tensorflow.keras.datasets import mnist
from tensorflow.keras.models import Sequential
from tensorflow.keras.layers import Dense, Dropout, Flatten
import tqdm

# quietly deep-reload tqdm
import sys
from IPython.lib import deepreload 

stdout = sys.stdout
sys.stdout = open('junk','w')
sys.stdout = stdout


Import and Normalize Data

# the data, split between train and test sets
(x_train, y_train), (x_test, y_test) = mnist.load_data()
# normalize data
x_train, x_test = x_train / 255.0, x_test / 255.0

Build Simple MNIST CNN Model

# build the model using the Sequential API
model = Sequential()
model.add(Flatten(input_shape=(28, 28)))
model.add(Dense(128, activation='relu'))
model.add(Dense(10, activation='softmax'))

              loss = 'sparse_categorical_crossentropy',

Default TQDMCallback Usage

# initialize tqdm callback with default parameters
tqdm_callback = tfa.callbacks.TQDMProgressBar()

# train the model with tqdm_callback
# make sure to set verbose = 0 to disable
# the default progress bar., y_train,
          validation_data=(x_test, y_test))
Training:   0%|           0/10 ETA: ?s,  ?epochs/s
Epoch 1/10

0/938           ETA: ?s - 
Epoch 2/10

0/938           ETA: ?s - 
Epoch 3/10

0/938           ETA: ?s - 
Epoch 4/10

0/938           ETA: ?s - 
Epoch 5/10

0/938           ETA: ?s - 
Epoch 6/10

0/938           ETA: ?s - 
Epoch 7/10

0/938           ETA: ?s - 
Epoch 8/10

0/938           ETA: ?s - 
Epoch 9/10

0/938           ETA: ?s - 
Epoch 10/10

0/938           ETA: ?s - 
<tensorflow.python.keras.callbacks.History at 0x7f0fd7f75e10>

Below is the expected output when you run the cell above TQDM Progress Bar Figure

# TQDMProgressBar() also works with evaluate()
model.evaluate(x_test, y_test, batch_size=64, callbacks=[tqdm_callback], verbose=0)
0/157           ETA: ?s - Evaluating
[0.06871946156024933, 0.9797000288963318]

Below is the expected output when you run the cell above TQDM Evaluate Progress Bar Figure