在 TensorFlow.org 上查看 |
在 Google Colab 中运行 |
在 GitHub 上查看源代码 |
下载笔记本 |
概述
此笔记本将演示如何使用 TensorFlow Addons 中的 TimeStopping 回调。
设置
pip install -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
/tmpfs/src/tf_docs_env/lib/python3.7/site-packages/tensorflow_addons/utils/ensure_tf_install.py:67: UserWarning: Tensorflow Addons supports using Python ops for all Tensorflow versions above or equal to 2.3.0 and strictly below 2.6.0 (nightly versions are not supported). The versions of TensorFlow you are currently using is 2.6.0 and is not supported. Some things might work, some things might not. If you were to encounter a bug, do not file an issue. If you want to make sure you're using a tested and supported configuration, either change the TensorFlow version or the TensorFlow Addons's version. You can find the compatibility matrix in TensorFlow Addon's readme: https://github.com/tensorflow/addons UserWarning,
导入并归一化数据
# 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
Downloading data from https://storage.googleapis.com/tensorflow/tf-keras-datasets/mnist.npz 16384/11490434 [..............................] - ETA: 0s 9527296/11490434 [=======================>......] - ETA: 0s 11493376/11490434 [==============================] - 0s 0us/step 11501568/11490434 [==============================] - 0s 0us/step
构建简单的 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'])
2021-08-13 19:51:38.498285: I tensorflow/stream_executor/cuda/cuda_gpu_executor.cc:937] successful NUMA node read from SysFS had negative value (-1), but there must be at least one NUMA node, so returning NUMA node zero 2021-08-13 19:51:38.506150: I tensorflow/stream_executor/cuda/cuda_gpu_executor.cc:937] successful NUMA node read from SysFS had negative value (-1), but there must be at least one NUMA node, so returning NUMA node zero 2021-08-13 19:51:38.507036: I tensorflow/stream_executor/cuda/cuda_gpu_executor.cc:937] successful NUMA node read from SysFS had negative value (-1), but there must be at least one NUMA node, so returning NUMA node zero 2021-08-13 19:51:38.508667: I tensorflow/core/platform/cpu_feature_guard.cc:142] This TensorFlow binary is optimized with oneAPI Deep Neural Network Library (oneDNN) to use the following CPU instructions in performance-critical operations: AVX2 AVX512F FMA To enable them in other operations, rebuild TensorFlow with the appropriate compiler flags. 2021-08-13 19:51:38.509232: I tensorflow/stream_executor/cuda/cuda_gpu_executor.cc:937] successful NUMA node read from SysFS had negative value (-1), but there must be at least one NUMA node, so returning NUMA node zero 2021-08-13 19:51:38.510194: I tensorflow/stream_executor/cuda/cuda_gpu_executor.cc:937] successful NUMA node read from SysFS had negative value (-1), but there must be at least one NUMA node, so returning NUMA node zero 2021-08-13 19:51:38.511098: I tensorflow/stream_executor/cuda/cuda_gpu_executor.cc:937] successful NUMA node read from SysFS had negative value (-1), but there must be at least one NUMA node, so returning NUMA node zero 2021-08-13 19:51:39.093394: I tensorflow/stream_executor/cuda/cuda_gpu_executor.cc:937] successful NUMA node read from SysFS had negative value (-1), but there must be at least one NUMA node, so returning NUMA node zero 2021-08-13 19:51:39.094491: I tensorflow/stream_executor/cuda/cuda_gpu_executor.cc:937] successful NUMA node read from SysFS had negative value (-1), but there must be at least one NUMA node, so returning NUMA node zero 2021-08-13 19:51:39.095386: I tensorflow/stream_executor/cuda/cuda_gpu_executor.cc:937] successful NUMA node read from SysFS had negative value (-1), but there must be at least one NUMA node, so returning NUMA node zero 2021-08-13 19:51:39.096269: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1510] Created device /job:localhost/replica:0/task:0/device:GPU:0 with 14648 MB memory: -> device: 0, name: Tesla V100-SXM2-16GB, pci bus id: 0000:00:05.0, compute capability: 7.0
简单的 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))
2021-08-13 19:51:40.120947: I tensorflow/compiler/mlir/mlir_graph_optimization_pass.cc:185] None of the MLIR Optimization Passes are enabled (registered 2) Epoch 1/100 1/938 [..............................] - ETA: 12:24 - loss: 2.4173 - accuracy: 0.0781 26/938 [..............................] - ETA: 1s - loss: 1.5276 - accuracy: 0.5793 52/938 [>.............................] - ETA: 1s - loss: 1.1426 - accuracy: 0.6830 79/938 [=>............................] - ETA: 1s - loss: 0.9382 - accuracy: 0.7385 106/938 [==>...........................] - ETA: 1s - loss: 0.8153 - accuracy: 0.7721 133/938 [===>..........................] - ETA: 1s - loss: 0.7410 - accuracy: 0.7924 160/938 [====>.........................] - ETA: 1s - loss: 0.6846 - accuracy: 0.8074 186/938 [====>.........................] - ETA: 1s - loss: 0.6423 - accuracy: 0.8190 212/938 [=====>........................] - ETA: 1s - loss: 0.6087 - accuracy: 0.8278 239/938 [======>.......................] - ETA: 1s - loss: 0.5817 - accuracy: 0.8347 265/938 [=======>......................] - ETA: 1s - loss: 0.5579 - accuracy: 0.8410 292/938 [========>.....................] - ETA: 1s - loss: 0.5343 - accuracy: 0.8470 319/938 [=========>....................] - ETA: 1s - loss: 0.5145 - accuracy: 0.8527 345/938 [==========>...................] - ETA: 1s - loss: 0.4998 - accuracy: 0.8568 372/938 [==========>...................] - ETA: 1s - loss: 0.4861 - accuracy: 0.8611 400/938 [===========>..................] - ETA: 1s - loss: 0.4719 - accuracy: 0.8654 426/938 [============>.................] - ETA: 0s - loss: 0.4602 - accuracy: 0.8688 453/938 [=============>................] - ETA: 0s - loss: 0.4486 - accuracy: 0.8720 479/938 [==============>...............] - ETA: 0s - loss: 0.4386 - accuracy: 0.8747 506/938 [===============>..............] - ETA: 0s - loss: 0.4301 - accuracy: 0.8771 531/938 [===============>..............] - ETA: 0s - loss: 0.4219 - accuracy: 0.8797 558/938 [================>.............] - ETA: 0s - loss: 0.4143 - accuracy: 0.8819 585/938 [=================>............] - ETA: 0s - loss: 0.4051 - accuracy: 0.8842 611/938 [==================>...........] - ETA: 0s - loss: 0.3983 - accuracy: 0.8861 638/938 [===================>..........] - ETA: 0s - loss: 0.3923 - accuracy: 0.8878 665/938 [====================>.........] - ETA: 0s - loss: 0.3855 - accuracy: 0.8898 691/938 [=====================>........] - ETA: 0s - loss: 0.3804 - accuracy: 0.8910 718/938 [=====================>........] - ETA: 0s - loss: 0.3746 - accuracy: 0.8927 745/938 [======================>.......] - ETA: 0s - loss: 0.3696 - accuracy: 0.8945 772/938 [=======================>......] - ETA: 0s - loss: 0.3643 - accuracy: 0.8959 799/938 [========================>.....] - ETA: 0s - loss: 0.3600 - accuracy: 0.8969 825/938 [=========================>....] - ETA: 0s - loss: 0.3546 - accuracy: 0.8986 852/938 [==========================>...] - ETA: 0s - loss: 0.3505 - accuracy: 0.8997 880/938 [===========================>..] - ETA: 0s - loss: 0.3463 - accuracy: 0.9009 907/938 [============================>.] - ETA: 0s - loss: 0.3422 - accuracy: 0.9019 934/938 [============================>.] - ETA: 0s - loss: 0.3380 - accuracy: 0.9031 938/938 [==============================] - 3s 2ms/step - loss: 0.3375 - accuracy: 0.9032 - val_loss: 0.1676 - val_accuracy: 0.9500 Epoch 2/100 1/938 [..............................] - ETA: 2s - loss: 0.2030 - accuracy: 0.9219 27/938 [..............................] - ETA: 1s - loss: 0.1782 - accuracy: 0.9502 53/938 [>.............................] - ETA: 1s - loss: 0.1839 - accuracy: 0.9496 80/938 [=>............................] - ETA: 1s - loss: 0.1778 - accuracy: 0.9496 108/938 [==>...........................] - ETA: 1s - loss: 0.1750 - accuracy: 0.9512 135/938 [===>..........................] - ETA: 1s - loss: 0.1706 - accuracy: 0.9523 161/938 [====>.........................] - ETA: 1s - loss: 0.1715 - accuracy: 0.9524 187/938 [====>.........................] - ETA: 1s - loss: 0.1765 - accuracy: 0.9505 214/938 [=====>........................] - ETA: 1s - loss: 0.1729 - accuracy: 0.9512 241/938 [======>.......................] - ETA: 1s - loss: 0.1736 - accuracy: 0.9505 267/938 [=======>......................] - ETA: 1s - loss: 0.1759 - accuracy: 0.9502 294/938 [========>.....................] - ETA: 1s - loss: 0.1750 - accuracy: 0.9505 320/938 [=========>....................] - ETA: 1s - loss: 0.1747 - accuracy: 0.9508 348/938 [==========>...................] - ETA: 1s - loss: 0.1755 - accuracy: 0.9503 375/938 [==========>...................] - ETA: 1s - loss: 0.1755 - accuracy: 0.9503 402/938 [===========>..................] - ETA: 1s - loss: 0.1754 - accuracy: 0.9506 428/938 [============>.................] - ETA: 0s - loss: 0.1733 - accuracy: 0.9512 455/938 [=============>................] - ETA: 0s - loss: 0.1729 - accuracy: 0.9513 482/938 [==============>...............] - ETA: 0s - loss: 0.1716 - accuracy: 0.9517 509/938 [===============>..............] - ETA: 0s - loss: 0.1724 - accuracy: 0.9511 535/938 [================>.............] - ETA: 0s - loss: 0.1707 - accuracy: 0.9513 561/938 [================>.............] - ETA: 0s - loss: 0.1690 - accuracy: 0.9518 588/938 [=================>............] - ETA: 0s - loss: 0.1693 - accuracy: 0.9514 615/938 [==================>...........] - ETA: 0s - loss: 0.1690 - accuracy: 0.9513 642/938 [===================>..........] - ETA: 0s - loss: 0.1676 - accuracy: 0.9517 670/938 [====================>.........] - ETA: 0s - loss: 0.1671 - accuracy: 0.9518 696/938 [=====================>........] - ETA: 0s - loss: 0.1662 - accuracy: 0.9519 724/938 [======================>.......] - ETA: 0s - loss: 0.1652 - accuracy: 0.9520 752/938 [=======================>......] - ETA: 0s - loss: 0.1643 - accuracy: 0.9524 779/938 [=======================>......] - ETA: 0s - loss: 0.1641 - accuracy: 0.9524 805/938 [========================>.....] - ETA: 0s - loss: 0.1637 - accuracy: 0.9524 832/938 [=========================>....] - ETA: 0s - loss: 0.1636 - accuracy: 0.9523 859/938 [==========================>...] - ETA: 0s - loss: 0.1629 - accuracy: 0.9526 885/938 [===========================>..] - ETA: 0s - loss: 0.1624 - accuracy: 0.9526 912/938 [============================>.] - ETA: 0s - loss: 0.1615 - accuracy: 0.9530 938/938 [==============================] - 2s 2ms/step - loss: 0.1608 - accuracy: 0.9532 - val_loss: 0.1146 - val_accuracy: 0.9639 Epoch 3/100 1/938 [..............................] - ETA: 2s - loss: 0.2198 - accuracy: 0.9062 28/938 [..............................] - ETA: 1s - loss: 0.1323 - accuracy: 0.9581 55/938 [>.............................] - ETA: 1s - loss: 0.1227 - accuracy: 0.9614 83/938 [=>............................] - ETA: 1s - loss: 0.1224 - accuracy: 0.9629 110/938 [==>...........................] - ETA: 1s - loss: 0.1221 - accuracy: 0.9635 137/938 [===>..........................] - ETA: 1s - loss: 0.1237 - accuracy: 0.9629 164/938 [====>.........................] - ETA: 1s - loss: 0.1229 - accuracy: 0.9639 191/938 [=====>........................] - ETA: 1s - loss: 0.1213 - accuracy: 0.9636 218/938 [=====>........................] - ETA: 1s - loss: 0.1203 - accuracy: 0.9639 245/938 [======>.......................] - ETA: 1s - loss: 0.1212 - accuracy: 0.9638 272/938 [=======>......................] - ETA: 1s - loss: 0.1219 - accuracy: 0.9638 298/938 [========>.....................] - ETA: 1s - loss: 0.1205 - accuracy: 0.9641 324/938 [=========>....................] - ETA: 1s - loss: 0.1218 - accuracy: 0.9633 351/938 [==========>...................] - ETA: 1s - loss: 0.1225 - accuracy: 0.9625 378/938 [===========>..................] - ETA: 1s - loss: 0.1231 - accuracy: 0.9625 406/938 [===========>..................] - ETA: 1s - loss: 0.1238 - accuracy: 0.9626 433/938 [============>.................] - ETA: 0s - loss: 0.1249 - accuracy: 0.9625 461/938 [=============>................] - ETA: 0s - loss: 0.1238 - accuracy: 0.9626 487/938 [==============>...............] - ETA: 0s - loss: 0.1251 - accuracy: 0.9624 513/938 [===============>..............] - ETA: 0s - loss: 0.1248 - accuracy: 0.9625 539/938 [================>.............] - ETA: 0s - loss: 0.1237 - accuracy: 0.9627 565/938 [=================>............] - ETA: 0s - loss: 0.1225 - accuracy: 0.9632 592/938 [=================>............] - ETA: 0s - loss: 0.1233 - accuracy: 0.9630 619/938 [==================>...........] - ETA: 0s - loss: 0.1214 - accuracy: 0.9636 646/938 [===================>..........] - ETA: 0s - loss: 0.1212 - accuracy: 0.9637 674/938 [====================>.........] - ETA: 0s - loss: 0.1219 - accuracy: 0.9635 700/938 [=====================>........] - ETA: 0s - loss: 0.1221 - accuracy: 0.9634 726/938 [======================>.......] - ETA: 0s - loss: 0.1220 - accuracy: 0.9635 754/938 [=======================>......] - ETA: 0s - loss: 0.1221 - accuracy: 0.9634 781/938 [=======================>......] - ETA: 0s - loss: 0.1218 - accuracy: 0.9635 808/938 [========================>.....] - ETA: 0s - loss: 0.1217 - accuracy: 0.9637 837/938 [=========================>....] - ETA: 0s - loss: 0.1210 - accuracy: 0.9639 866/938 [==========================>...] - ETA: 0s - loss: 0.1208 - accuracy: 0.9641 894/938 [===========================>..] - ETA: 0s - loss: 0.1211 - accuracy: 0.9639 921/938 [============================>.] - ETA: 0s - loss: 0.1212 - accuracy: 0.9638 938/938 [==============================] - 2s 2ms/step - loss: 0.1212 - accuracy: 0.9638 - val_loss: 0.0947 - val_accuracy: 0.9726 Timed stopping at epoch 3 after training for 0:00:05 <keras.callbacks.History at 0x7f7a91776b90>
在 TensorFlow.org 上查看
在 Google Colab 中运行
在 GitHub 上查看源代码
下载笔记本