TensorFlow.orgで表示 |
Google Colab で実行 |
GitHub でソースを表示{ |
ノートブックをダウンロード/a0} |
概要
このノートブックでは、TensorFlowアドオンでTimeStoppingコールバックを使用する方法を紹介します。
セットアップ
pip install -q -U tensorflow-addonsimport tensorflow_addons as tfa
from tensorflow.keras.datasets import mnist
from tensorflow.keras.models import Sequential
from tensorflow.keras.layers import Dense, Dropout, Flatten
データのインポートと正規化
# 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
シンプルなMNIST CNNモデルの構築
# 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'])
シンプルなTimeStoppingの使用法
# 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 1/938 [..............................] - ETA: 11:17 - loss: 2.3041 - accuracy: 0.1406 25/938 [..............................] - ETA: 1s - loss: 1.9067 - accuracy: 0.4004 51/938 [>.............................] - ETA: 1s - loss: 1.6017 - accuracy: 0.5183 76/938 [=>............................] - ETA: 1s - loss: 1.4185 - accuracy: 0.5796 101/938 [==>...........................] - ETA: 1s - loss: 1.2900 - accuracy: 0.6209 127/938 [===>..........................] - ETA: 1s - loss: 1.1901 - accuracy: 0.6520 154/938 [===>..........................] - ETA: 1s - loss: 1.1108 - accuracy: 0.6763 180/938 [====>.........................] - ETA: 1s - loss: 1.0496 - accuracy: 0.6948 207/938 [=====>........................] - ETA: 1s - loss: 0.9967 - accuracy: 0.7106 233/938 [======>.......................] - ETA: 1s - loss: 0.9534 - accuracy: 0.7234 258/938 [=======>......................] - ETA: 1s - loss: 0.9175 - accuracy: 0.7339 283/938 [========>.....................] - ETA: 1s - loss: 0.8860 - accuracy: 0.7432 309/938 [========>.....................] - ETA: 1s - loss: 0.8567 - accuracy: 0.7518 336/938 [=========>....................] - ETA: 1s - loss: 0.8295 - accuracy: 0.7598 362/938 [==========>...................] - ETA: 1s - loss: 0.8059 - accuracy: 0.7667 388/938 [===========>..................] - ETA: 1s - loss: 0.7844 - accuracy: 0.7730 413/938 [============>.................] - ETA: 1s - loss: 0.7656 - accuracy: 0.7785 439/938 [=============>................] - ETA: 0s - loss: 0.7477 - accuracy: 0.7837 464/938 [=============>................] - ETA: 0s - loss: 0.7317 - accuracy: 0.7884 490/938 [==============>...............] - ETA: 0s - loss: 0.7163 - accuracy: 0.7929 516/938 [===============>..............] - ETA: 0s - loss: 0.7020 - accuracy: 0.7971 542/938 [================>.............] - ETA: 0s - loss: 0.6886 - accuracy: 0.8010 569/938 [=================>............] - ETA: 0s - loss: 0.6756 - accuracy: 0.8048 595/938 [==================>...........] - ETA: 0s - loss: 0.6639 - accuracy: 0.8082 621/938 [==================>...........] - ETA: 0s - loss: 0.6528 - accuracy: 0.8114 648/938 [===================>..........] - ETA: 0s - loss: 0.6419 - accuracy: 0.8146 674/938 [====================>.........] - ETA: 0s - loss: 0.6320 - accuracy: 0.8175 699/938 [=====================>........] - ETA: 0s - loss: 0.6230 - accuracy: 0.8201 725/938 [======================>.......] - ETA: 0s - loss: 0.6140 - accuracy: 0.8227 751/938 [=======================>......] - ETA: 0s - loss: 0.6055 - accuracy: 0.8252 776/938 [=======================>......] - ETA: 0s - loss: 0.5977 - accuracy: 0.8274 802/938 [========================>.....] - ETA: 0s - loss: 0.5899 - accuracy: 0.8297 828/938 [=========================>....] - ETA: 0s - loss: 0.5825 - accuracy: 0.8318 854/938 [==========================>...] - ETA: 0s - loss: 0.5754 - accuracy: 0.8339 881/938 [===========================>..] - ETA: 0s - loss: 0.5684 - accuracy: 0.8359 907/938 [============================>.] - ETA: 0s - loss: 0.5619 - accuracy: 0.8378 934/938 [============================>.] - ETA: 0s - loss: 0.5554 - accuracy: 0.8397 938/938 [==============================] - 3s 3ms/step - loss: 0.5543 - accuracy: 0.8400 - val_loss: 0.1561 - val_accuracy: 0.9564 Epoch 2/100 1/938 [..............................] - ETA: 2s - loss: 0.0763 - accuracy: 0.9688 28/938 [..............................] - ETA: 1s - loss: 0.1442 - accuracy: 0.9578 53/938 [>.............................] - ETA: 1s - loss: 0.1548 - accuracy: 0.9550 79/938 [=>............................] - ETA: 1s - loss: 0.1597 - accuracy: 0.9538 105/938 [==>...........................] - ETA: 1s - loss: 0.1627 - accuracy: 0.9528 132/938 [===>..........................] - ETA: 1s - loss: 0.1651 - accuracy: 0.9521 158/938 [====>.........................] - ETA: 1s - loss: 0.1665 - accuracy: 0.9517 184/938 [====>.........................] - ETA: 1s - loss: 0.1678 - accuracy: 0.9514 211/938 [=====>........................] - ETA: 1s - loss: 0.1690 - accuracy: 0.9511 238/938 [======>.......................] - ETA: 1s - loss: 0.1700 - accuracy: 0.9508 264/938 [=======>......................] - ETA: 1s - loss: 0.1707 - accuracy: 0.9506 291/938 [========>.....................] - ETA: 1s - loss: 0.1715 - accuracy: 0.9503 318/938 [=========>....................] - ETA: 1s - loss: 0.1722 - accuracy: 0.9501 343/938 [=========>....................] - ETA: 1s - loss: 0.1727 - accuracy: 0.9500 370/938 [==========>...................] - ETA: 1s - loss: 0.1730 - accuracy: 0.9499 397/938 [===========>..................] - ETA: 1s - loss: 0.1733 - accuracy: 0.9498 423/938 [============>.................] - ETA: 0s - loss: 0.1735 - accuracy: 0.9498 450/938 [=============>................] - ETA: 0s - loss: 0.1736 - accuracy: 0.9497 477/938 [==============>...............] - ETA: 0s - loss: 0.1736 - accuracy: 0.9497 503/938 [===============>..............] - ETA: 0s - loss: 0.1736 - accuracy: 0.9497 529/938 [===============>..............] - ETA: 0s - loss: 0.1736 - accuracy: 0.9497 556/938 [================>.............] - ETA: 0s - loss: 0.1735 - accuracy: 0.9497 583/938 [=================>............] - ETA: 0s - loss: 0.1735 - accuracy: 0.9498 609/938 [==================>...........] - ETA: 0s - loss: 0.1734 - accuracy: 0.9498 634/938 [===================>..........] - ETA: 0s - loss: 0.1734 - accuracy: 0.9498 660/938 [====================>.........] - ETA: 0s - loss: 0.1733 - accuracy: 0.9498 686/938 [====================>.........] - ETA: 0s - loss: 0.1732 - accuracy: 0.9498 713/938 [=====================>........] - ETA: 0s - loss: 0.1730 - accuracy: 0.9499 740/938 [======================>.......] - ETA: 0s - loss: 0.1728 - accuracy: 0.9499 766/938 [=======================>......] - ETA: 0s - loss: 0.1725 - accuracy: 0.9500 791/938 [========================>.....] - ETA: 0s - loss: 0.1723 - accuracy: 0.9501 816/938 [=========================>....] - ETA: 0s - loss: 0.1721 - accuracy: 0.9501 844/938 [=========================>....] - ETA: 0s - loss: 0.1719 - accuracy: 0.9502 870/938 [==========================>...] - ETA: 0s - loss: 0.1717 - accuracy: 0.9502 896/938 [===========================>..] - ETA: 0s - loss: 0.1715 - accuracy: 0.9503 922/938 [============================>.] - ETA: 0s - loss: 0.1712 - accuracy: 0.9503 938/938 [==============================] - 2s 2ms/step - loss: 0.1711 - accuracy: 0.9504 - val_loss: 0.1126 - val_accuracy: 0.9669 Timed stopping at epoch 2 after training for 0:00:05 <tensorflow.python.keras.callbacks.History at 0x7fb6af066240>
TensorFlow.orgで表示
Google Colab で実行
GitHub でソースを表示{
ノートブックをダウンロード/a0}