Warning: This project is deprecated. TensorFlow Addons has stopped development, The project will only be providing minimal maintenance releases until May 2024. See the full announcement here or on github.

TensorFlow Addons Callbacks: TimeStopping

View on TensorFlow.org Run in Google Colab View source on GitHub Download notebook

Overview

This notebook will demonstrate how to use TimeStopping Callback in TensorFlow Addons.

Setup

pip install -U tensorflow-addons
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 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(Dropout(0.2))
model.add(Dense(10, activation='softmax'))

model.compile(optimizer='adam',
              loss = 'sparse_categorical_crossentropy',
              metrics=['accuracy'])

Simple TimeStopping Usage

# initialize TimeStopping callback 
time_stopping_callback = tfa.callbacks.TimeStopping(seconds=5, verbose=1)

# train the model with tqdm_callback
# make sure to set verbose = 0 to disable
# the default progress bar.
model.fit(x_train, y_train,
          batch_size=64,
          epochs=100,
          callbacks=[time_stopping_callback],
          validation_data=(x_test, y_test))
Epoch 1/100
938/938 [==============================] - 3s 2ms/step - loss: 0.3420 - accuracy: 0.9022 - val_loss: 0.1628 - val_accuracy: 0.9522
Epoch 2/100
938/938 [==============================] - 2s 2ms/step - loss: 0.1636 - accuracy: 0.9514 - val_loss: 0.1122 - val_accuracy: 0.9656
Epoch 3/100
938/938 [==============================] - 2s 2ms/step - loss: 0.1213 - accuracy: 0.9642 - val_loss: 0.0932 - val_accuracy: 0.9711
Timed stopping at epoch 3 after training for 0:00:05
<keras.callbacks.History at 0x7fb5df60c130>