TensorFlow.orgで表示 |
Google Colabで実行 |
GitHub でソースを表示 |
ノートブックをダウンロード |
概要
TensorFlow Model Optimization ツールキットの一部である重みクラスタリングのエンドツーエンドの例へようこそ。
その他のページ
重みクラスタリングの紹介、およびクラスタリングを使用すべきかどうかの判定(サポート情報も含む)については、概要ページをご覧ください。
ユースケースに合った API を素早く特定するには(16 個のクラスタでモデルを完全クラスタ化するケースを超える内容)、総合ガイドをご覧ください。
内容
チュートリアルでは、次について説明しています。
- MNIST データセットの
tf.kerasモデルを最初からトレーニングする - 重みクラスタリング API を適用してモデルを微調整し、精度を確認する
- クラスタリングによって 6 倍小さな TF および TFLite モデルを作成する
- 重みクラスタリングとポストトレーニング量子化を組み合わせて、8 倍小さな TFLite モデルを作成する
- TF から TFLite への精度の永続性を確認する
セットアップ
この Jupyter ノートブックは、ローカルの virtualenv または Colab で実行できます。依存関係のセットアップに関する詳細は、インストールガイドをご覧ください。
pip install -q tensorflow-model-optimizationimport tensorflow as tf
from tensorflow import keras
import numpy as np
import tempfile
import zipfile
import os
クラスタを使用せずに、MNIST の tf.keras モデルをトレーニングする
# Load MNIST dataset
mnist = keras.datasets.mnist
(train_images, train_labels), (test_images, test_labels) = mnist.load_data()
# Normalize the input image so that each pixel value is between 0 to 1.
train_images = train_images / 255.0
test_images = test_images / 255.0
# Define the model architecture.
model = keras.Sequential([
keras.layers.InputLayer(input_shape=(28, 28)),
keras.layers.Reshape(target_shape=(28, 28, 1)),
keras.layers.Conv2D(filters=12, kernel_size=(3, 3), activation=tf.nn.relu),
keras.layers.MaxPooling2D(pool_size=(2, 2)),
keras.layers.Flatten(),
keras.layers.Dense(10)
])
# Train the digit classification model
model.compile(optimizer='adam',
loss=tf.keras.losses.SparseCategoricalCrossentropy(from_logits=True),
metrics=['accuracy'])
model.fit(
train_images,
train_labels,
validation_split=0.1,
epochs=10
)
Epoch 1/10 1/1688 [..............................] - ETA: 1:09:26 - loss: 2.3776 - accuracy: 0.0938 24/1688 [..............................] - ETA: 3s - loss: 2.1879 - accuracy: 0.3025 49/1688 [..............................] - ETA: 3s - loss: 2.0258 - accuracy: 0.4017 74/1688 [>.............................] - ETA: 3s - loss: 1.8641 - accuracy: 0.4692 99/1688 [>.............................] - ETA: 3s - loss: 1.7198 - accuracy: 0.5192 124/1688 [=>............................] - ETA: 3s - loss: 1.6008 - accuracy: 0.5570 148/1688 [=>............................] - ETA: 3s - loss: 1.5053 - accuracy: 0.5860 173/1688 [==>...........................] - ETA: 3s - loss: 1.4205 - accuracy: 0.6109 198/1688 [==>...........................] - ETA: 3s - loss: 1.3480 - accuracy: 0.6318 222/1688 [==>...........................] - ETA: 3s - loss: 1.2872 - accuracy: 0.6491 247/1688 [===>..........................] - ETA: 2s - loss: 1.2321 - accuracy: 0.6645 272/1688 [===>..........................] - ETA: 2s - loss: 1.1834 - accuracy: 0.6781 298/1688 [====>.........................] - ETA: 2s - loss: 1.1383 - accuracy: 0.6906 323/1688 [====>.........................] - ETA: 2s - loss: 1.0996 - accuracy: 0.7013 349/1688 [=====>........................] - ETA: 2s - loss: 1.0634 - accuracy: 0.7113 375/1688 [=====>........................] - ETA: 2s - loss: 1.0304 - accuracy: 0.7203 399/1688 [======>.......................] - ETA: 2s - loss: 1.0028 - accuracy: 0.7279 423/1688 [======>.......................] - ETA: 2s - loss: 0.9773 - accuracy: 0.7348 447/1688 [======>.......................] - ETA: 2s - loss: 0.9539 - accuracy: 0.7412 471/1688 [=======>......................] - ETA: 2s - loss: 0.9323 - accuracy: 0.7470 495/1688 [=======>......................] - ETA: 2s - loss: 0.9121 - accuracy: 0.7524 519/1688 [========>.....................] - ETA: 2s - loss: 0.8932 - accuracy: 0.7575 545/1688 [========>.....................] - ETA: 2s - loss: 0.8742 - accuracy: 0.7626 571/1688 [=========>....................] - ETA: 2s - loss: 0.8563 - accuracy: 0.7674 596/1688 [=========>....................] - ETA: 2s - loss: 0.8402 - accuracy: 0.7717 622/1688 [==========>...................] - ETA: 2s - loss: 0.8244 - accuracy: 0.7759 647/1688 [==========>...................] - ETA: 2s - loss: 0.8102 - accuracy: 0.7797 672/1688 [==========>...................] - ETA: 2s - loss: 0.7967 - accuracy: 0.7833 696/1688 [===========>..................] - ETA: 2s - loss: 0.7844 - accuracy: 0.7867 721/1688 [===========>..................] - ETA: 1s - loss: 0.7721 - accuracy: 0.7899 745/1688 [============>.................] - ETA: 1s - loss: 0.7610 - accuracy: 0.7929 770/1688 [============>.................] - ETA: 1s - loss: 0.7499 - accuracy: 0.7959 795/1688 [=============>................] - ETA: 1s - loss: 0.7393 - accuracy: 0.7987 820/1688 [=============>................] - ETA: 1s - loss: 0.7291 - accuracy: 0.8014 845/1688 [==============>...............] - ETA: 1s - loss: 0.7194 - accuracy: 0.8040 870/1688 [==============>...............] - ETA: 1s - loss: 0.7101 - accuracy: 0.8065 895/1688 [==============>...............] - ETA: 1s - loss: 0.7011 - accuracy: 0.8089 920/1688 [===============>..............] - ETA: 1s - loss: 0.6925 - accuracy: 0.8112 945/1688 [===============>..............] - ETA: 1s - loss: 0.6843 - accuracy: 0.8134 970/1688 [================>.............] - ETA: 1s - loss: 0.6764 - accuracy: 0.8155 995/1688 [================>.............] - ETA: 1s - loss: 0.6687 - accuracy: 0.8176 1020/1688 [=================>............] - ETA: 1s - loss: 0.6613 - accuracy: 0.8195 1045/1688 [=================>............] - ETA: 1s - loss: 0.6542 - accuracy: 0.8215 1070/1688 [==================>...........] - ETA: 1s - loss: 0.6473 - accuracy: 0.8233 1095/1688 [==================>...........] - ETA: 1s - loss: 0.6407 - accuracy: 0.8251 1121/1688 [==================>...........] - ETA: 1s - loss: 0.6340 - accuracy: 0.8269 1146/1688 [===================>..........] - ETA: 1s - loss: 0.6278 - accuracy: 0.8285 1171/1688 [===================>..........] - ETA: 1s - loss: 0.6218 - accuracy: 0.8302 1195/1688 [====================>.........] - ETA: 1s - loss: 0.6161 - accuracy: 0.8317 1220/1688 [====================>.........] - ETA: 0s - loss: 0.6105 - accuracy: 0.8332 1246/1688 [=====================>........] - ETA: 0s - loss: 0.6047 - accuracy: 0.8347 1271/1688 [=====================>........] - ETA: 0s - loss: 0.5994 - accuracy: 0.8362 1297/1688 [======================>.......] - ETA: 0s - loss: 0.5940 - accuracy: 0.8376 1322/1688 [======================>.......] - ETA: 0s - loss: 0.5889 - accuracy: 0.8390 1346/1688 [======================>.......] - ETA: 0s - loss: 0.5842 - accuracy: 0.8402 1371/1688 [=======================>......] - ETA: 0s - loss: 0.5794 - accuracy: 0.8415 1396/1688 [=======================>......] - ETA: 0s - loss: 0.5748 - accuracy: 0.8427 1421/1688 [========================>.....] - ETA: 0s - loss: 0.5702 - accuracy: 0.8439 1447/1688 [========================>.....] - ETA: 0s - loss: 0.5656 - accuracy: 0.8452 1472/1688 [=========================>....] - ETA: 0s - loss: 0.5613 - accuracy: 0.8463 1497/1688 [=========================>....] - ETA: 0s - loss: 0.5571 - accuracy: 0.8474 1522/1688 [==========================>...] - ETA: 0s - loss: 0.5530 - accuracy: 0.8485 1547/1688 [==========================>...] - ETA: 0s - loss: 0.5490 - accuracy: 0.8496 1572/1688 [==========================>...] - ETA: 0s - loss: 0.5451 - accuracy: 0.8506 1597/1688 [===========================>..] - ETA: 0s - loss: 0.5413 - accuracy: 0.8516 1621/1688 [===========================>..] - ETA: 0s - loss: 0.5377 - accuracy: 0.8526 1646/1688 [============================>.] - ETA: 0s - loss: 0.5340 - accuracy: 0.8536 1671/1688 [============================>.] - ETA: 0s - loss: 0.5304 - accuracy: 0.8545 1688/1688 [==============================] - 7s 2ms/step - loss: 0.5279 - accuracy: 0.8552 - val_loss: 0.1275 - val_accuracy: 0.9650 Epoch 2/10 1/1688 [..............................] - ETA: 4s - loss: 0.1092 - accuracy: 0.9688 26/1688 [..............................] - ETA: 3s - loss: 0.1372 - accuracy: 0.9518 50/1688 [..............................] - ETA: 3s - loss: 0.1414 - accuracy: 0.9538 74/1688 [>.............................] - ETA: 3s - loss: 0.1477 - accuracy: 0.9542 99/1688 [>.............................] - ETA: 3s - loss: 0.1492 - accuracy: 0.9550 124/1688 [=>............................] - ETA: 3s - loss: 0.1496 - accuracy: 0.9554 149/1688 [=>............................] - ETA: 3s - loss: 0.1491 - accuracy: 0.9559 174/1688 [==>...........................] - ETA: 3s - loss: 0.1482 - accuracy: 0.9564 200/1688 [==>...........................] - ETA: 3s - loss: 0.1472 - accuracy: 0.9569 225/1688 [==>...........................] - ETA: 3s - loss: 0.1468 - accuracy: 0.9572 250/1688 [===>..........................] - ETA: 2s - loss: 0.1464 - accuracy: 0.9575 276/1688 [===>..........................] - ETA: 2s - loss: 0.1461 - accuracy: 0.9578 302/1688 [====>.........................] - ETA: 2s - loss: 0.1459 - accuracy: 0.9580 327/1688 [====>.........................] - ETA: 2s - loss: 0.1457 - accuracy: 0.9581 352/1688 [=====>........................] - ETA: 2s - loss: 0.1455 - accuracy: 0.9583 377/1688 [=====>........................] - ETA: 2s - loss: 0.1451 - accuracy: 0.9586 402/1688 [======>.......................] - ETA: 2s - loss: 0.1447 - accuracy: 0.9588 426/1688 [======>.......................] - ETA: 2s - loss: 0.1444 - accuracy: 0.9590 451/1688 [=======>......................] - ETA: 2s - loss: 0.1442 - accuracy: 0.9591 476/1688 [=======>......................] - ETA: 2s - loss: 0.1439 - accuracy: 0.9593 501/1688 [=======>......................] - ETA: 2s - loss: 0.1438 - accuracy: 0.9594 526/1688 [========>.....................] - ETA: 2s - loss: 0.1436 - accuracy: 0.9595 551/1688 [========>.....................] - ETA: 2s - loss: 0.1434 - accuracy: 0.9595 576/1688 [=========>....................] - ETA: 2s - loss: 0.1432 - accuracy: 0.9596 601/1688 [=========>....................] - ETA: 2s - loss: 0.1430 - accuracy: 0.9597 625/1688 [==========>...................] - ETA: 2s - loss: 0.1428 - accuracy: 0.9598 650/1688 [==========>...................] - ETA: 2s - loss: 0.1426 - accuracy: 0.9598 676/1688 [===========>..................] - ETA: 2s - loss: 0.1423 - accuracy: 0.9599 702/1688 [===========>..................] - ETA: 2s - loss: 0.1420 - accuracy: 0.9600 727/1688 [===========>..................] - ETA: 1s - loss: 0.1418 - accuracy: 0.9601 753/1688 [============>.................] - ETA: 1s - loss: 0.1415 - accuracy: 0.9602 778/1688 [============>.................] - ETA: 1s - loss: 0.1412 - accuracy: 0.9602 803/1688 [=============>................] - ETA: 1s - loss: 0.1410 - accuracy: 0.9603 828/1688 [=============>................] - ETA: 1s - loss: 0.1408 - accuracy: 0.9604 854/1688 [==============>...............] - ETA: 1s - loss: 0.1405 - accuracy: 0.9604 879/1688 [==============>...............] - ETA: 1s - loss: 0.1403 - accuracy: 0.9605 904/1688 [===============>..............] - ETA: 1s - loss: 0.1400 - accuracy: 0.9606 929/1688 [===============>..............] - ETA: 1s - loss: 0.1398 - accuracy: 0.9606 954/1688 [===============>..............] - ETA: 1s - loss: 0.1395 - accuracy: 0.9607 979/1688 [================>.............] - ETA: 1s - loss: 0.1393 - accuracy: 0.9607 1004/1688 [================>.............] - ETA: 1s - loss: 0.1391 - accuracy: 0.9608 1029/1688 [=================>............] - ETA: 1s - loss: 0.1389 - accuracy: 0.9609 1054/1688 [=================>............] - ETA: 1s - loss: 0.1387 - accuracy: 0.9609 1078/1688 [==================>...........] - ETA: 1s - loss: 0.1384 - accuracy: 0.9610 1103/1688 [==================>...........] - ETA: 1s - loss: 0.1382 - accuracy: 0.9611 1128/1688 [===================>..........] - ETA: 1s - loss: 0.1380 - accuracy: 0.9611 1153/1688 [===================>..........] - ETA: 1s - loss: 0.1378 - accuracy: 0.9612 1178/1688 [===================>..........] - ETA: 1s - loss: 0.1376 - accuracy: 0.9612 1203/1688 [====================>.........] - ETA: 0s - loss: 0.1374 - accuracy: 0.9613 1228/1688 [====================>.........] - ETA: 0s - loss: 0.1372 - accuracy: 0.9613 1253/1688 [=====================>........] - ETA: 0s - loss: 0.1370 - accuracy: 0.9614 1278/1688 [=====================>........] - ETA: 0s - loss: 0.1368 - accuracy: 0.9614 1302/1688 [======================>.......] - ETA: 0s - loss: 0.1367 - accuracy: 0.9615 1327/1688 [======================>.......] - ETA: 0s - loss: 0.1365 - accuracy: 0.9615 1351/1688 [=======================>......] - ETA: 0s - loss: 0.1363 - accuracy: 0.9616 1376/1688 [=======================>......] - ETA: 0s - loss: 0.1361 - accuracy: 0.9616 1401/1688 [=======================>......] - ETA: 0s - loss: 0.1359 - accuracy: 0.9617 1426/1688 [========================>.....] - ETA: 0s - loss: 0.1357 - accuracy: 0.9617 1452/1688 [========================>.....] - ETA: 0s - loss: 0.1356 - accuracy: 0.9618 1477/1688 [=========================>....] - ETA: 0s - loss: 0.1354 - accuracy: 0.9618 1503/1688 [=========================>....] - ETA: 0s - loss: 0.1352 - accuracy: 0.9619 1529/1688 [==========================>...] - ETA: 0s - loss: 0.1350 - accuracy: 0.9619 1555/1688 [==========================>...] - ETA: 0s - loss: 0.1348 - accuracy: 0.9619 1580/1688 [===========================>..] - ETA: 0s - loss: 0.1347 - accuracy: 0.9620 1605/1688 [===========================>..] - ETA: 0s - loss: 0.1345 - accuracy: 0.9620 1630/1688 [===========================>..] - ETA: 0s - loss: 0.1343 - accuracy: 0.9621 1654/1688 [============================>.] - ETA: 0s - loss: 0.1342 - accuracy: 0.9621 1679/1688 [============================>.] - ETA: 0s - loss: 0.1340 - accuracy: 0.9621 1688/1688 [==============================] - 4s 2ms/step - loss: 0.1340 - accuracy: 0.9622 - val_loss: 0.0869 - val_accuracy: 0.9785 Epoch 3/10 1/1688 [..............................] - ETA: 3s - loss: 0.0309 - accuracy: 1.0000 26/1688 [..............................] - ETA: 3s - loss: 0.0731 - accuracy: 0.9825 50/1688 [..............................] - ETA: 3s - loss: 0.0810 - accuracy: 0.9808 75/1688 [>.............................] - ETA: 3s - loss: 0.0850 - accuracy: 0.9792 100/1688 [>.............................] - ETA: 3s - loss: 0.0877 - accuracy: 0.9780 125/1688 [=>............................] - ETA: 3s - loss: 0.0884 - accuracy: 0.9776 150/1688 [=>............................] - ETA: 3s - loss: 0.0889 - accuracy: 0.9772 174/1688 [==>...........................] - ETA: 3s - loss: 0.0897 - accuracy: 0.9767 199/1688 [==>...........................] - ETA: 3s - loss: 0.0902 - accuracy: 0.9762 224/1688 [==>...........................] - ETA: 2s - loss: 0.0905 - accuracy: 0.9758 249/1688 [===>..........................] - ETA: 2s - loss: 0.0908 - accuracy: 0.9753 274/1688 [===>..........................] - ETA: 2s - loss: 0.0911 - accuracy: 0.9750 299/1688 [====>.........................] - ETA: 2s - loss: 0.0915 - accuracy: 0.9747 322/1688 [====>.........................] - ETA: 2s - loss: 0.0918 - accuracy: 0.9745 348/1688 [=====>........................] - ETA: 2s - loss: 0.0920 - accuracy: 0.9743 373/1688 [=====>........................] - ETA: 2s - loss: 0.0921 - accuracy: 0.9742 398/1688 [======>.......................] - ETA: 2s - loss: 0.0922 - accuracy: 0.9740 423/1688 [======>.......................] - ETA: 2s - loss: 0.0923 - accuracy: 0.9739 448/1688 [======>.......................] - ETA: 2s - loss: 0.0923 - accuracy: 0.9738 473/1688 [=======>......................] - ETA: 2s - loss: 0.0923 - accuracy: 0.9737 498/1688 [=======>......................] - ETA: 2s - loss: 0.0924 - accuracy: 0.9736 523/1688 [========>.....................] - ETA: 2s - loss: 0.0924 - accuracy: 0.9736 548/1688 [========>.....................] - ETA: 2s - loss: 0.0924 - accuracy: 0.9735 573/1688 [=========>....................] - ETA: 2s - loss: 0.0925 - accuracy: 0.9735 597/1688 [=========>....................] - ETA: 2s - loss: 0.0925 - accuracy: 0.9734 621/1688 [==========>...................] - ETA: 2s - loss: 0.0925 - accuracy: 0.9734 645/1688 [==========>...................] - ETA: 2s - loss: 0.0926 - accuracy: 0.9733 670/1688 [==========>...................] - ETA: 2s - loss: 0.0927 - accuracy: 0.9733 695/1688 [===========>..................] - ETA: 2s - loss: 0.0928 - accuracy: 0.9732 720/1688 [===========>..................] - ETA: 1s - loss: 0.0929 - accuracy: 0.9732 744/1688 [============>.................] - ETA: 1s - loss: 0.0929 - accuracy: 0.9731 768/1688 [============>.................] - ETA: 1s - loss: 0.0930 - accuracy: 0.9731 792/1688 [=============>................] - ETA: 1s - loss: 0.0931 - accuracy: 0.9731 817/1688 [=============>................] - ETA: 1s - loss: 0.0932 - accuracy: 0.9730 843/1688 [=============>................] - ETA: 1s - loss: 0.0932 - accuracy: 0.9730 867/1688 [==============>...............] - ETA: 1s - loss: 0.0932 - accuracy: 0.9730 891/1688 [==============>...............] - ETA: 1s - loss: 0.0932 - accuracy: 0.9730 915/1688 [===============>..............] - ETA: 1s - loss: 0.0932 - accuracy: 0.9730 939/1688 [===============>..............] - ETA: 1s - loss: 0.0932 - accuracy: 0.9730 964/1688 [================>.............] - ETA: 1s - loss: 0.0933 - accuracy: 0.9730 989/1688 [================>.............] - ETA: 1s - loss: 0.0933 - accuracy: 0.9730 1014/1688 [=================>............] - ETA: 1s - loss: 0.0933 - accuracy: 0.9730 1038/1688 [=================>............] - ETA: 1s - loss: 0.0933 - accuracy: 0.9730 1063/1688 [=================>............] - ETA: 1s - loss: 0.0934 - accuracy: 0.9729 1087/1688 [==================>...........] - ETA: 1s - loss: 0.0934 - accuracy: 0.9729 1112/1688 [==================>...........] - ETA: 1s - loss: 0.0934 - accuracy: 0.9729 1137/1688 [===================>..........] - ETA: 1s - loss: 0.0934 - accuracy: 0.9729 1161/1688 [===================>..........] - ETA: 1s - loss: 0.0934 - accuracy: 0.9729 1186/1688 [====================>.........] - ETA: 1s - loss: 0.0934 - accuracy: 0.9729 1210/1688 [====================>.........] - ETA: 0s - loss: 0.0934 - accuracy: 0.9729 1235/1688 [====================>.........] - ETA: 0s - loss: 0.0933 - accuracy: 0.9729 1259/1688 [=====================>........] - ETA: 0s - loss: 0.0933 - accuracy: 0.9729 1283/1688 [=====================>........] - ETA: 0s - loss: 0.0933 - accuracy: 0.9729 1309/1688 [======================>.......] - ETA: 0s - loss: 0.0933 - accuracy: 0.9729 1334/1688 [======================>.......] - ETA: 0s - loss: 0.0932 - accuracy: 0.9729 1359/1688 [=======================>......] - ETA: 0s - loss: 0.0932 - accuracy: 0.9730 1384/1688 [=======================>......] - ETA: 0s - loss: 0.0932 - accuracy: 0.9730 1409/1688 [========================>.....] - ETA: 0s - loss: 0.0932 - accuracy: 0.9730 1434/1688 [========================>.....] - ETA: 0s - loss: 0.0932 - accuracy: 0.9730 1459/1688 [========================>.....] - ETA: 0s - loss: 0.0931 - accuracy: 0.9730 1484/1688 [=========================>....] - ETA: 0s - loss: 0.0931 - accuracy: 0.9730 1508/1688 [=========================>....] - ETA: 0s - loss: 0.0931 - accuracy: 0.9730 1532/1688 [==========================>...] - ETA: 0s - loss: 0.0930 - accuracy: 0.9730 1558/1688 [==========================>...] - ETA: 0s - loss: 0.0930 - accuracy: 0.9730 1583/1688 [===========================>..] - ETA: 0s - loss: 0.0929 - accuracy: 0.9730 1608/1688 [===========================>..] - ETA: 0s - loss: 0.0929 - accuracy: 0.9731 1633/1688 [============================>.] - ETA: 0s - loss: 0.0929 - accuracy: 0.9731 1658/1688 [============================>.] - ETA: 0s - loss: 0.0928 - accuracy: 0.9731 1683/1688 [============================>.] - ETA: 0s - loss: 0.0928 - accuracy: 0.9731 1688/1688 [==============================] - 4s 2ms/step - loss: 0.0928 - accuracy: 0.9731 - val_loss: 0.0747 - val_accuracy: 0.9800 Epoch 4/10 1/1688 [..............................] - ETA: 3s - loss: 0.0319 - accuracy: 1.0000 25/1688 [..............................] - ETA: 3s - loss: 0.0613 - accuracy: 0.9802 49/1688 [..............................] - ETA: 3s - loss: 0.0678 - accuracy: 0.9768 74/1688 [>.............................] - ETA: 3s - loss: 0.0711 - accuracy: 0.9755 99/1688 [>.............................] - ETA: 3s - loss: 0.0722 - accuracy: 0.9755 124/1688 [=>............................] - ETA: 3s - loss: 0.0728 - accuracy: 0.9754 148/1688 [=>............................] - ETA: 3s - loss: 0.0732 - accuracy: 0.9754 173/1688 [==>...........................] - ETA: 3s - loss: 0.0736 - accuracy: 0.9756 198/1688 [==>...........................] - ETA: 3s - loss: 0.0742 - accuracy: 0.9756 223/1688 [==>...........................] - ETA: 3s - loss: 0.0747 - accuracy: 0.9757 248/1688 [===>..........................] - ETA: 2s - loss: 0.0752 - accuracy: 0.9756 273/1688 [===>..........................] - ETA: 2s - loss: 0.0756 - accuracy: 0.9756 297/1688 [====>.........................] - ETA: 2s - loss: 0.0759 - accuracy: 0.9756 322/1688 [====>.........................] - ETA: 2s - loss: 0.0762 - accuracy: 0.9756 346/1688 [=====>........................] - ETA: 2s - loss: 0.0763 - accuracy: 0.9756 371/1688 [=====>........................] - ETA: 2s - loss: 0.0764 - accuracy: 0.9756 395/1688 [======>.......................] - ETA: 2s - loss: 0.0765 - accuracy: 0.9756 420/1688 [======>.......................] - ETA: 2s - loss: 0.0766 - accuracy: 0.9757 444/1688 [======>.......................] - ETA: 2s - loss: 0.0765 - accuracy: 0.9757 469/1688 [=======>......................] - ETA: 2s - loss: 0.0765 - accuracy: 0.9758 493/1688 [=======>......................] - ETA: 2s - loss: 0.0765 - accuracy: 0.9758 517/1688 [========>.....................] - ETA: 2s - loss: 0.0766 - accuracy: 0.9758 541/1688 [========>.....................] - ETA: 2s - loss: 0.0766 - accuracy: 0.9759 566/1688 [=========>....................] - ETA: 2s - loss: 0.0766 - accuracy: 0.9759 591/1688 [=========>....................] - ETA: 2s - loss: 0.0766 - accuracy: 0.9759 616/1688 [=========>....................] - ETA: 2s - loss: 0.0767 - accuracy: 0.9760 641/1688 [==========>...................] - ETA: 2s - loss: 0.0766 - accuracy: 0.9760 666/1688 [==========>...................] - ETA: 2s - loss: 0.0766 - accuracy: 0.9761 691/1688 [===========>..................] - ETA: 2s - loss: 0.0765 - accuracy: 0.9761 716/1688 [===========>..................] - ETA: 2s - loss: 0.0765 - accuracy: 0.9761 741/1688 [============>.................] - ETA: 1s - loss: 0.0764 - accuracy: 0.9762 765/1688 [============>.................] - ETA: 1s - loss: 0.0764 - accuracy: 0.9762 789/1688 [=============>................] - ETA: 1s - loss: 0.0763 - accuracy: 0.9762 813/1688 [=============>................] - ETA: 1s - loss: 0.0763 - accuracy: 0.9762 838/1688 [=============>................] - ETA: 1s - loss: 0.0763 - accuracy: 0.9763 862/1688 [==============>...............] - ETA: 1s - loss: 0.0762 - accuracy: 0.9763 888/1688 [==============>...............] - ETA: 1s - loss: 0.0762 - accuracy: 0.9763 913/1688 [===============>..............] - ETA: 1s - loss: 0.0762 - accuracy: 0.9763 937/1688 [===============>..............] - ETA: 1s - loss: 0.0762 - accuracy: 0.9764 962/1688 [================>.............] - ETA: 1s - loss: 0.0762 - accuracy: 0.9764 987/1688 [================>.............] - ETA: 1s - loss: 0.0762 - accuracy: 0.9764 1012/1688 [================>.............] - ETA: 1s - loss: 0.0762 - accuracy: 0.9764 1037/1688 [=================>............] - ETA: 1s - loss: 0.0762 - accuracy: 0.9764 1062/1688 [=================>............] - ETA: 1s - loss: 0.0762 - accuracy: 0.9765 1086/1688 [==================>...........] - ETA: 1s - loss: 0.0762 - accuracy: 0.9765 1111/1688 [==================>...........] - ETA: 1s - loss: 0.0762 - accuracy: 0.9765 1136/1688 [===================>..........] - ETA: 1s - loss: 0.0761 - accuracy: 0.9765 1161/1688 [===================>..........] - ETA: 1s - loss: 0.0761 - accuracy: 0.9766 1186/1688 [====================>.........] - ETA: 1s - loss: 0.0761 - accuracy: 0.9766 1211/1688 [====================>.........] - ETA: 0s - loss: 0.0761 - accuracy: 0.9766 1236/1688 [====================>.........] - ETA: 0s - loss: 0.0760 - accuracy: 0.9766 1260/1688 [=====================>........] - ETA: 0s - loss: 0.0760 - accuracy: 0.9767 1284/1688 [=====================>........] - ETA: 0s - loss: 0.0760 - accuracy: 0.9767 1309/1688 [======================>.......] - ETA: 0s - loss: 0.0759 - accuracy: 0.9767 1333/1688 [======================>.......] - ETA: 0s - loss: 0.0759 - accuracy: 0.9768 1357/1688 [=======================>......] - ETA: 0s - loss: 0.0759 - accuracy: 0.9768 1381/1688 [=======================>......] - ETA: 0s - loss: 0.0758 - accuracy: 0.9768 1405/1688 [=======================>......] - ETA: 0s - loss: 0.0758 - accuracy: 0.9768 1430/1688 [========================>.....] - ETA: 0s - loss: 0.0758 - accuracy: 0.9769 1456/1688 [========================>.....] - ETA: 0s - loss: 0.0757 - accuracy: 0.9769 1481/1688 [=========================>....] - ETA: 0s - loss: 0.0757 - accuracy: 0.9769 1505/1688 [=========================>....] - ETA: 0s - loss: 0.0757 - accuracy: 0.9770 1529/1688 [==========================>...] - ETA: 0s - loss: 0.0757 - accuracy: 0.9770 1553/1688 [==========================>...] - ETA: 0s - loss: 0.0756 - accuracy: 0.9770 1577/1688 [===========================>..] - ETA: 0s - loss: 0.0756 - accuracy: 0.9770 1601/1688 [===========================>..] - ETA: 0s - loss: 0.0756 - accuracy: 0.9770 1625/1688 [===========================>..] - ETA: 0s - loss: 0.0756 - accuracy: 0.9771 1649/1688 [============================>.] - ETA: 0s - loss: 0.0756 - accuracy: 0.9771 1674/1688 [============================>.] - ETA: 0s - loss: 0.0755 - accuracy: 0.9771 1688/1688 [==============================] - 4s 2ms/step - loss: 0.0755 - accuracy: 0.9771 - val_loss: 0.0706 - val_accuracy: 0.9820 Epoch 5/10 1/1688 [..............................] - ETA: 4s - loss: 0.0441 - accuracy: 0.9688 26/1688 [..............................] - ETA: 3s - loss: 0.0566 - accuracy: 0.9850 51/1688 [..............................] - ETA: 3s - loss: 0.0549 - accuracy: 0.9864 76/1688 [>.............................] - ETA: 3s - loss: 0.0536 - accuracy: 0.9867 101/1688 [>.............................] - ETA: 3s - loss: 0.0533 - accuracy: 0.9866 126/1688 [=>............................] - ETA: 3s - loss: 0.0532 - accuracy: 0.9863 151/1688 [=>............................] - ETA: 3s - loss: 0.0542 - accuracy: 0.9858 175/1688 [==>...........................] - ETA: 3s - loss: 0.0550 - accuracy: 0.9854 200/1688 [==>...........................] - ETA: 3s - loss: 0.0556 - accuracy: 0.9850 225/1688 [==>...........................] - ETA: 2s - loss: 0.0563 - accuracy: 0.9847 250/1688 [===>..........................] - ETA: 2s - loss: 0.0566 - accuracy: 0.9845 274/1688 [===>..........................] - ETA: 2s - loss: 0.0569 - accuracy: 0.9843 299/1688 [====>.........................] - ETA: 2s - loss: 0.0572 - accuracy: 0.9841 324/1688 [====>.........................] - ETA: 2s - loss: 0.0575 - accuracy: 0.9840 349/1688 [=====>........................] - ETA: 2s - loss: 0.0578 - accuracy: 0.9839 374/1688 [=====>........................] - ETA: 2s - loss: 0.0580 - accuracy: 0.9838 399/1688 [======>.......................] - ETA: 2s - loss: 0.0582 - accuracy: 0.9837 424/1688 [======>.......................] - ETA: 2s - loss: 0.0583 - accuracy: 0.9836 449/1688 [======>.......................] - ETA: 2s - loss: 0.0584 - accuracy: 0.9836 473/1688 [=======>......................] - ETA: 2s - loss: 0.0586 - accuracy: 0.9835 497/1688 [=======>......................] - ETA: 2s - loss: 0.0587 - accuracy: 0.9835 521/1688 [========>.....................] - ETA: 2s - loss: 0.0588 - accuracy: 0.9835 546/1688 [========>.....................] - ETA: 2s - loss: 0.0589 - accuracy: 0.9834 570/1688 [=========>....................] - ETA: 2s - loss: 0.0589 - accuracy: 0.9834 595/1688 [=========>....................] - ETA: 2s - loss: 0.0590 - accuracy: 0.9833 620/1688 [==========>...................] - ETA: 2s - loss: 0.0592 - accuracy: 0.9833 645/1688 [==========>...................] - ETA: 2s - loss: 0.0593 - accuracy: 0.9832 669/1688 [==========>...................] - ETA: 2s - loss: 0.0595 - accuracy: 0.9832 693/1688 [===========>..................] - ETA: 2s - loss: 0.0597 - accuracy: 0.9831 717/1688 [===========>..................] - ETA: 2s - loss: 0.0598 - accuracy: 0.9830 741/1688 [============>.................] - ETA: 1s - loss: 0.0600 - accuracy: 0.9830 766/1688 [============>.................] - ETA: 1s - loss: 0.0602 - accuracy: 0.9829 791/1688 [=============>................] - ETA: 1s - loss: 0.0603 - accuracy: 0.9829 816/1688 [=============>................] - ETA: 1s - loss: 0.0605 - accuracy: 0.9828 842/1688 [=============>................] - ETA: 1s - loss: 0.0607 - accuracy: 0.9827 867/1688 [==============>...............] - ETA: 1s - loss: 0.0608 - accuracy: 0.9827 892/1688 [==============>...............] - ETA: 1s - loss: 0.0609 - accuracy: 0.9826 917/1688 [===============>..............] - ETA: 1s - loss: 0.0611 - accuracy: 0.9826 942/1688 [===============>..............] - ETA: 1s - loss: 0.0612 - accuracy: 0.9825 967/1688 [================>.............] - ETA: 1s - loss: 0.0613 - accuracy: 0.9825 992/1688 [================>.............] - ETA: 1s - loss: 0.0613 - accuracy: 0.9825 1016/1688 [=================>............] - ETA: 1s - loss: 0.0614 - accuracy: 0.9824 1041/1688 [=================>............] - ETA: 1s - loss: 0.0615 - accuracy: 0.9824 1066/1688 [=================>............] - ETA: 1s - loss: 0.0615 - accuracy: 0.9824 1090/1688 [==================>...........] - ETA: 1s - loss: 0.0616 - accuracy: 0.9823 1115/1688 [==================>...........] - ETA: 1s - loss: 0.0616 - accuracy: 0.9823 1140/1688 [===================>..........] - ETA: 1s - loss: 0.0617 - accuracy: 0.9823 1165/1688 [===================>..........] - ETA: 1s - loss: 0.0617 - accuracy: 0.9823 1190/1688 [====================>.........] - ETA: 1s - loss: 0.0617 - accuracy: 0.9822 1214/1688 [====================>.........] - ETA: 0s - loss: 0.0617 - accuracy: 0.9822 1239/1688 [=====================>........] - ETA: 0s - loss: 0.0618 - accuracy: 0.9822 1264/1688 [=====================>........] - ETA: 0s - loss: 0.0618 - accuracy: 0.9822 1289/1688 [=====================>........] - ETA: 0s - loss: 0.0618 - accuracy: 0.9822 1313/1688 [======================>.......] - ETA: 0s - loss: 0.0619 - accuracy: 0.9821 1338/1688 [======================>.......] - ETA: 0s - loss: 0.0619 - accuracy: 0.9821 1363/1688 [=======================>......] - ETA: 0s - loss: 0.0620 - accuracy: 0.9821 1388/1688 [=======================>......] - ETA: 0s - loss: 0.0620 - accuracy: 0.9821 1414/1688 [========================>.....] - ETA: 0s - loss: 0.0621 - accuracy: 0.9821 1438/1688 [========================>.....] - ETA: 0s - loss: 0.0621 - accuracy: 0.9820 1463/1688 [=========================>....] - ETA: 0s - loss: 0.0621 - accuracy: 0.9820 1487/1688 [=========================>....] - ETA: 0s - loss: 0.0622 - accuracy: 0.9820 1512/1688 [=========================>....] - ETA: 0s - loss: 0.0622 - accuracy: 0.9820 1537/1688 [==========================>...] - ETA: 0s - loss: 0.0622 - accuracy: 0.9820 1562/1688 [==========================>...] - ETA: 0s - loss: 0.0623 - accuracy: 0.9819 1586/1688 [===========================>..] - ETA: 0s - loss: 0.0623 - accuracy: 0.9819 1610/1688 [===========================>..] - ETA: 0s - loss: 0.0624 - accuracy: 0.9819 1635/1688 [============================>.] - ETA: 0s - loss: 0.0624 - accuracy: 0.9819 1661/1688 [============================>.] - ETA: 0s - loss: 0.0625 - accuracy: 0.9819 1686/1688 [============================>.] - ETA: 0s - loss: 0.0625 - accuracy: 0.9819 1688/1688 [==============================] - 4s 2ms/step - loss: 0.0625 - accuracy: 0.9819 - val_loss: 0.0634 - val_accuracy: 0.9832 Epoch 6/10 1/1688 [..............................] - ETA: 3s - loss: 0.0410 - accuracy: 0.9688 26/1688 [..............................] - ETA: 3s - loss: 0.0499 - accuracy: 0.9797 51/1688 [..............................] - ETA: 3s - loss: 0.0550 - accuracy: 0.9791 75/1688 [>.............................] - ETA: 3s - loss: 0.0579 - accuracy: 0.9788 100/1688 [>.............................] - ETA: 3s - loss: 0.0598 - accuracy: 0.9786 124/1688 [=>............................] - ETA: 3s - loss: 0.0607 - accuracy: 0.9787 147/1688 [=>............................] - ETA: 3s - loss: 0.0612 - accuracy: 0.9789 171/1688 [==>...........................] - ETA: 3s - loss: 0.0613 - accuracy: 0.9791 196/1688 [==>...........................] - ETA: 3s - loss: 0.0616 - accuracy: 0.9792 220/1688 [==>...........................] - ETA: 3s - loss: 0.0618 - accuracy: 0.9792 244/1688 [===>..........................] - ETA: 3s - loss: 0.0619 - accuracy: 0.9793 269/1688 [===>..........................] - ETA: 2s - loss: 0.0620 - accuracy: 0.9793 294/1688 [====>.........................] - ETA: 2s - loss: 0.0622 - accuracy: 0.9794 318/1688 [====>.........................] - ETA: 2s - loss: 0.0624 - accuracy: 0.9794 343/1688 [=====>........................] - ETA: 2s - loss: 0.0625 - accuracy: 0.9794 368/1688 [=====>........................] - ETA: 2s - loss: 0.0626 - accuracy: 0.9795 393/1688 [=====>........................] - ETA: 2s - loss: 0.0625 - accuracy: 0.9796 418/1688 [======>.......................] - ETA: 2s - loss: 0.0625 - accuracy: 0.9796 443/1688 [======>.......................] - ETA: 2s - loss: 0.0624 - accuracy: 0.9797 468/1688 [=======>......................] - ETA: 2s - loss: 0.0623 - accuracy: 0.9798 493/1688 [=======>......................] - ETA: 2s - loss: 0.0622 - accuracy: 0.9799 519/1688 [========>.....................] - ETA: 2s - loss: 0.0620 - accuracy: 0.9800 544/1688 [========>.....................] - ETA: 2s - loss: 0.0619 - accuracy: 0.9801 568/1688 [=========>....................] - ETA: 2s - loss: 0.0617 - accuracy: 0.9802 593/1688 [=========>....................] - ETA: 2s - loss: 0.0616 - accuracy: 0.9802 618/1688 [=========>....................] - ETA: 2s - loss: 0.0615 - accuracy: 0.9803 643/1688 [==========>...................] - ETA: 2s - loss: 0.0614 - accuracy: 0.9804 668/1688 [==========>...................] - ETA: 2s - loss: 0.0613 - accuracy: 0.9805 693/1688 [===========>..................] - ETA: 2s - loss: 0.0612 - accuracy: 0.9805 718/1688 [===========>..................] - ETA: 1s - loss: 0.0611 - accuracy: 0.9806 743/1688 [============>.................] - ETA: 1s - loss: 0.0610 - accuracy: 0.9806 768/1688 [============>.................] - ETA: 1s - loss: 0.0609 - accuracy: 0.9807 793/1688 [=============>................] - ETA: 1s - loss: 0.0608 - accuracy: 0.9808 817/1688 [=============>................] - ETA: 1s - loss: 0.0607 - accuracy: 0.9808 842/1688 [=============>................] - ETA: 1s - loss: 0.0606 - accuracy: 0.9809 868/1688 [==============>...............] - ETA: 1s - loss: 0.0605 - accuracy: 0.9809 893/1688 [==============>...............] - ETA: 1s - loss: 0.0604 - accuracy: 0.9810 918/1688 [===============>..............] - ETA: 1s - loss: 0.0603 - accuracy: 0.9810 943/1688 [===============>..............] - ETA: 1s - loss: 0.0602 - accuracy: 0.9811 969/1688 [================>.............] - ETA: 1s - loss: 0.0601 - accuracy: 0.9811 995/1688 [================>.............] - ETA: 1s - loss: 0.0601 - accuracy: 0.9812 1020/1688 [=================>............] - ETA: 1s - loss: 0.0600 - accuracy: 0.9812 1044/1688 [=================>............] - ETA: 1s - loss: 0.0599 - accuracy: 0.9812 1069/1688 [=================>............] - ETA: 1s - loss: 0.0599 - accuracy: 0.9813 1094/1688 [==================>...........] - ETA: 1s - loss: 0.0598 - accuracy: 0.9813 1119/1688 [==================>...........] - ETA: 1s - loss: 0.0597 - accuracy: 0.9813 1144/1688 [===================>..........] - ETA: 1s - loss: 0.0596 - accuracy: 0.9814 1169/1688 [===================>..........] - ETA: 1s - loss: 0.0596 - accuracy: 0.9814 1194/1688 [====================>.........] - ETA: 1s - loss: 0.0595 - accuracy: 0.9814 1219/1688 [====================>.........] - ETA: 0s - loss: 0.0594 - accuracy: 0.9815 1244/1688 [=====================>........] - ETA: 0s - loss: 0.0594 - accuracy: 0.9815 1269/1688 [=====================>........] - ETA: 0s - loss: 0.0593 - accuracy: 0.9815 1294/1688 [=====================>........] - ETA: 0s - loss: 0.0593 - accuracy: 0.9815 1319/1688 [======================>.......] - ETA: 0s - loss: 0.0592 - accuracy: 0.9816 1344/1688 [======================>.......] - ETA: 0s - loss: 0.0592 - accuracy: 0.9816 1370/1688 [=======================>......] - ETA: 0s - loss: 0.0591 - accuracy: 0.9816 1396/1688 [=======================>......] - ETA: 0s - loss: 0.0591 - accuracy: 0.9816 1422/1688 [========================>.....] - ETA: 0s - loss: 0.0590 - accuracy: 0.9817 1447/1688 [========================>.....] - ETA: 0s - loss: 0.0590 - accuracy: 0.9817 1471/1688 [=========================>....] - ETA: 0s - loss: 0.0589 - accuracy: 0.9817 1495/1688 [=========================>....] - ETA: 0s - loss: 0.0589 - accuracy: 0.9817 1519/1688 [=========================>....] - ETA: 0s - loss: 0.0588 - accuracy: 0.9818 1544/1688 [==========================>...] - ETA: 0s - loss: 0.0588 - accuracy: 0.9818 1569/1688 [==========================>...] - ETA: 0s - loss: 0.0588 - accuracy: 0.9818 1594/1688 [===========================>..] - ETA: 0s - loss: 0.0587 - accuracy: 0.9818 1618/1688 [===========================>..] - ETA: 0s - loss: 0.0587 - accuracy: 0.9818 1642/1688 [============================>.] - ETA: 0s - loss: 0.0587 - accuracy: 0.9818 1668/1688 [============================>.] - ETA: 0s - loss: 0.0587 - accuracy: 0.9819 1688/1688 [==============================] - 4s 2ms/step - loss: 0.0586 - accuracy: 0.9819 - val_loss: 0.0606 - val_accuracy: 0.9830 Epoch 7/10 1/1688 [..............................] - ETA: 3s - loss: 0.1358 - accuracy: 0.9688 26/1688 [..............................] - ETA: 3s - loss: 0.0671 - accuracy: 0.9816 51/1688 [..............................] - ETA: 3s - loss: 0.0602 - accuracy: 0.9819 75/1688 [>.............................] - ETA: 3s - loss: 0.0578 - accuracy: 0.9822 100/1688 [>.............................] - ETA: 3s - loss: 0.0557 - accuracy: 0.9829 124/1688 [=>............................] - ETA: 3s - loss: 0.0539 - accuracy: 0.9836 148/1688 [=>............................] - ETA: 3s - loss: 0.0526 - accuracy: 0.9841 172/1688 [==>...........................] - ETA: 3s - loss: 0.0515 - accuracy: 0.9845 197/1688 [==>...........................] - ETA: 3s - loss: 0.0510 - accuracy: 0.9847 223/1688 [==>...........................] - ETA: 3s - loss: 0.0509 - accuracy: 0.9848 248/1688 [===>..........................] - ETA: 2s - loss: 0.0509 - accuracy: 0.9848 272/1688 [===>..........................] - ETA: 2s - loss: 0.0510 - accuracy: 0.9848 297/1688 [====>.........................] - ETA: 2s - loss: 0.0511 - accuracy: 0.9847 322/1688 [====>.........................] - ETA: 2s - loss: 0.0511 - accuracy: 0.9848 347/1688 [=====>........................] - ETA: 2s - loss: 0.0511 - accuracy: 0.9848 372/1688 [=====>........................] - ETA: 2s - loss: 0.0512 - accuracy: 0.9848 397/1688 [======>.......................] - ETA: 2s - loss: 0.0513 - accuracy: 0.9848 422/1688 [======>.......................] - ETA: 2s - loss: 0.0515 - accuracy: 0.9847 446/1688 [======>.......................] - ETA: 2s - loss: 0.0517 - accuracy: 0.9847 470/1688 [=======>......................] - ETA: 2s - loss: 0.0519 - accuracy: 0.9846 495/1688 [=======>......................] - ETA: 2s - loss: 0.0520 - accuracy: 0.9846 520/1688 [========>.....................] - ETA: 2s - loss: 0.0522 - accuracy: 0.9845 545/1688 [========>.....................] - ETA: 2s - loss: 0.0523 - accuracy: 0.9845 570/1688 [=========>....................] - ETA: 2s - loss: 0.0524 - accuracy: 0.9845 595/1688 [=========>....................] - ETA: 2s - loss: 0.0525 - accuracy: 0.9845 621/1688 [==========>...................] - ETA: 2s - loss: 0.0526 - accuracy: 0.9845 646/1688 [==========>...................] - ETA: 2s - loss: 0.0526 - accuracy: 0.9844 670/1688 [==========>...................] - ETA: 2s - loss: 0.0527 - accuracy: 0.9844 694/1688 [===========>..................] - ETA: 2s - loss: 0.0527 - accuracy: 0.9844 718/1688 [===========>..................] - ETA: 2s - loss: 0.0528 - accuracy: 0.9844 743/1688 [============>.................] - ETA: 1s - loss: 0.0528 - accuracy: 0.9844 768/1688 [============>.................] - ETA: 1s - loss: 0.0529 - accuracy: 0.9844 794/1688 [=============>................] - ETA: 1s - loss: 0.0529 - accuracy: 0.9844 820/1688 [=============>................] - ETA: 1s - loss: 0.0530 - accuracy: 0.9844 845/1688 [==============>...............] - ETA: 1s - loss: 0.0530 - accuracy: 0.9844 869/1688 [==============>...............] - ETA: 1s - loss: 0.0531 - accuracy: 0.9843 894/1688 [==============>...............] - ETA: 1s - loss: 0.0531 - accuracy: 0.9843 918/1688 [===============>..............] - ETA: 1s - loss: 0.0531 - accuracy: 0.9843 943/1688 [===============>..............] - ETA: 1s - loss: 0.0532 - accuracy: 0.9843 968/1688 [================>.............] - ETA: 1s - loss: 0.0532 - accuracy: 0.9843 993/1688 [================>.............] - ETA: 1s - loss: 0.0532 - accuracy: 0.9843 1018/1688 [=================>............] - ETA: 1s - loss: 0.0532 - accuracy: 0.9843 1044/1688 [=================>............] - ETA: 1s - loss: 0.0532 - accuracy: 0.9843 1069/1688 [=================>............] - ETA: 1s - loss: 0.0532 - accuracy: 0.9843 1093/1688 [==================>...........] - ETA: 1s - loss: 0.0532 - accuracy: 0.9843 1117/1688 [==================>...........] - ETA: 1s - loss: 0.0532 - accuracy: 0.9843 1141/1688 [===================>..........] - ETA: 1s - loss: 0.0532 - accuracy: 0.9843 1165/1688 [===================>..........] - ETA: 1s - loss: 0.0532 - accuracy: 0.9843 1190/1688 [====================>.........] - ETA: 1s - loss: 0.0532 - accuracy: 0.9843 1215/1688 [====================>.........] - ETA: 0s - loss: 0.0531 - accuracy: 0.9843 1240/1688 [=====================>........] - ETA: 0s - loss: 0.0531 - accuracy: 0.9843 1265/1688 [=====================>........] - ETA: 0s - loss: 0.0531 - accuracy: 0.9843 1289/1688 [=====================>........] - ETA: 0s - loss: 0.0531 - accuracy: 0.9843 1314/1688 [======================>.......] - ETA: 0s - loss: 0.0531 - accuracy: 0.9843 1338/1688 [======================>.......] - ETA: 0s - loss: 0.0531 - accuracy: 0.9843 1362/1688 [=======================>......] - ETA: 0s - loss: 0.0531 - accuracy: 0.9843 1387/1688 [=======================>......] - ETA: 0s - loss: 0.0531 - accuracy: 0.9843 1412/1688 [========================>.....] - ETA: 0s - loss: 0.0530 - accuracy: 0.9843 1437/1688 [========================>.....] - ETA: 0s - loss: 0.0530 - accuracy: 0.9843 1462/1688 [========================>.....] - ETA: 0s - loss: 0.0530 - accuracy: 0.9842 1487/1688 [=========================>....] - ETA: 0s - loss: 0.0530 - accuracy: 0.9842 1511/1688 [=========================>....] - ETA: 0s - loss: 0.0530 - accuracy: 0.9842 1535/1688 [==========================>...] - ETA: 0s - loss: 0.0530 - accuracy: 0.9842 1560/1688 [==========================>...] - ETA: 0s - loss: 0.0530 - accuracy: 0.9842 1585/1688 [===========================>..] - ETA: 0s - loss: 0.0530 - accuracy: 0.9842 1610/1688 [===========================>..] - ETA: 0s - loss: 0.0530 - accuracy: 0.9842 1634/1688 [============================>.] - ETA: 0s - loss: 0.0530 - accuracy: 0.9842 1660/1688 [============================>.] - ETA: 0s - loss: 0.0530 - accuracy: 0.9842 1685/1688 [============================>.] - ETA: 0s - loss: 0.0530 - accuracy: 0.9842 1688/1688 [==============================] - 4s 2ms/step - loss: 0.0530 - accuracy: 0.9842 - val_loss: 0.0616 - val_accuracy: 0.9847 Epoch 8/10 1/1688 [..............................] - ETA: 3s - loss: 0.0053 - accuracy: 1.0000 25/1688 [..............................] - ETA: 3s - loss: 0.0251 - accuracy: 0.9927 51/1688 [..............................] - ETA: 3s - loss: 0.0262 - accuracy: 0.9924 75/1688 [>.............................] - ETA: 3s - loss: 0.0286 - accuracy: 0.9917 100/1688 [>.............................] - ETA: 3s - loss: 0.0299 - accuracy: 0.9914 125/1688 [=>............................] - ETA: 3s - loss: 0.0309 - accuracy: 0.9910 149/1688 [=>............................] - ETA: 3s - loss: 0.0317 - accuracy: 0.9907 173/1688 [==>...........................] - ETA: 3s - loss: 0.0327 - accuracy: 0.9902 198/1688 [==>...........................] - ETA: 3s - loss: 0.0339 - accuracy: 0.9897 223/1688 [==>...........................] - ETA: 3s - loss: 0.0349 - accuracy: 0.9892 248/1688 [===>..........................] - ETA: 2s - loss: 0.0358 - accuracy: 0.9889 273/1688 [===>..........................] - ETA: 2s - loss: 0.0366 - accuracy: 0.9886 297/1688 [====>.........................] - ETA: 2s - loss: 0.0372 - accuracy: 0.9883 321/1688 [====>.........................] - ETA: 2s - loss: 0.0378 - accuracy: 0.9881 346/1688 [=====>........................] - ETA: 2s - loss: 0.0382 - accuracy: 0.9880 370/1688 [=====>........................] - ETA: 2s - loss: 0.0387 - accuracy: 0.9878 395/1688 [======>.......................] - ETA: 2s - loss: 0.0390 - accuracy: 0.9877 420/1688 [======>.......................] - ETA: 2s - loss: 0.0393 - accuracy: 0.9876 445/1688 [======>.......................] - ETA: 2s - loss: 0.0396 - accuracy: 0.9875 470/1688 [=======>......................] - ETA: 2s - loss: 0.0398 - accuracy: 0.9874 494/1688 [=======>......................] - ETA: 2s - loss: 0.0401 - accuracy: 0.9874 518/1688 [========>.....................] - ETA: 2s - loss: 0.0403 - accuracy: 0.9873 543/1688 [========>.....................] - ETA: 2s - loss: 0.0405 - accuracy: 0.9872 568/1688 [=========>....................] - ETA: 2s - loss: 0.0408 - accuracy: 0.9872 593/1688 [=========>....................] - ETA: 2s - loss: 0.0410 - accuracy: 0.9871 618/1688 [=========>....................] - ETA: 2s - loss: 0.0412 - accuracy: 0.9871 642/1688 [==========>...................] - ETA: 2s - loss: 0.0414 - accuracy: 0.9870 667/1688 [==========>...................] - ETA: 2s - loss: 0.0415 - accuracy: 0.9870 692/1688 [===========>..................] - ETA: 2s - loss: 0.0417 - accuracy: 0.9870 717/1688 [===========>..................] - ETA: 2s - loss: 0.0419 - accuracy: 0.9869 742/1688 [============>.................] - ETA: 1s - loss: 0.0420 - accuracy: 0.9869 767/1688 [============>.................] - ETA: 1s - loss: 0.0422 - accuracy: 0.9869 791/1688 [=============>................] - ETA: 1s - loss: 0.0423 - accuracy: 0.9869 814/1688 [=============>................] - ETA: 1s - loss: 0.0424 - accuracy: 0.9869 839/1688 [=============>................] - ETA: 1s - loss: 0.0425 - accuracy: 0.9868 863/1688 [==============>...............] - ETA: 1s - loss: 0.0425 - accuracy: 0.9868 887/1688 [==============>...............] - ETA: 1s - loss: 0.0426 - accuracy: 0.9868 911/1688 [===============>..............] - ETA: 1s - loss: 0.0427 - accuracy: 0.9868 936/1688 [===============>..............] - ETA: 1s - loss: 0.0428 - accuracy: 0.9868 961/1688 [================>.............] - ETA: 1s - loss: 0.0429 - accuracy: 0.9868 986/1688 [================>.............] - ETA: 1s - loss: 0.0429 - accuracy: 0.9867 1011/1688 [================>.............] - ETA: 1s - loss: 0.0430 - accuracy: 0.9867 1036/1688 [=================>............] - ETA: 1s - loss: 0.0431 - accuracy: 0.9867 1060/1688 [=================>............] - ETA: 1s - loss: 0.0431 - accuracy: 0.9867 1084/1688 [==================>...........] - ETA: 1s - loss: 0.0432 - accuracy: 0.9867 1109/1688 [==================>...........] - ETA: 1s - loss: 0.0432 - accuracy: 0.9867 1134/1688 [===================>..........] - ETA: 1s - loss: 0.0433 - accuracy: 0.9867 1158/1688 [===================>..........] - ETA: 1s - loss: 0.0434 - accuracy: 0.9867 1183/1688 [====================>.........] - ETA: 1s - loss: 0.0434 - accuracy: 0.9866 1208/1688 [====================>.........] - ETA: 0s - loss: 0.0435 - accuracy: 0.9866 1233/1688 [====================>.........] - ETA: 0s - loss: 0.0435 - accuracy: 0.9866 1258/1688 [=====================>........] - ETA: 0s - loss: 0.0436 - accuracy: 0.9866 1283/1688 [=====================>........] - ETA: 0s - loss: 0.0436 - accuracy: 0.9866 1308/1688 [======================>.......] - ETA: 0s - loss: 0.0437 - accuracy: 0.9866 1333/1688 [======================>.......] - ETA: 0s - loss: 0.0437 - accuracy: 0.9866 1358/1688 [=======================>......] - ETA: 0s - loss: 0.0438 - accuracy: 0.9866 1383/1688 [=======================>......] - ETA: 0s - loss: 0.0438 - accuracy: 0.9865 1407/1688 [========================>.....] - ETA: 0s - loss: 0.0439 - accuracy: 0.9865 1432/1688 [========================>.....] - ETA: 0s - loss: 0.0439 - accuracy: 0.9865 1457/1688 [========================>.....] - ETA: 0s - loss: 0.0440 - accuracy: 0.9865 1482/1688 [=========================>....] - ETA: 0s - loss: 0.0440 - accuracy: 0.9865 1506/1688 [=========================>....] - ETA: 0s - loss: 0.0440 - accuracy: 0.9865 1530/1688 [==========================>...] - ETA: 0s - loss: 0.0441 - accuracy: 0.9865 1554/1688 [==========================>...] - ETA: 0s - loss: 0.0441 - accuracy: 0.9865 1579/1688 [===========================>..] - ETA: 0s - loss: 0.0442 - accuracy: 0.9865 1604/1688 [===========================>..] - ETA: 0s - loss: 0.0443 - accuracy: 0.9865 1628/1688 [===========================>..] - ETA: 0s - loss: 0.0443 - accuracy: 0.9864 1653/1688 [============================>.] - ETA: 0s - loss: 0.0443 - accuracy: 0.9864 1677/1688 [============================>.] - ETA: 0s - loss: 0.0444 - accuracy: 0.9864 1688/1688 [==============================] - 4s 2ms/step - loss: 0.0444 - accuracy: 0.9864 - val_loss: 0.0622 - val_accuracy: 0.9843 Epoch 9/10 1/1688 [..............................] - ETA: 4s - loss: 0.0563 - accuracy: 0.9688 26/1688 [..............................] - ETA: 3s - loss: 0.0371 - accuracy: 0.9817 50/1688 [..............................] - ETA: 3s - loss: 0.0374 - accuracy: 0.9839 74/1688 [>.............................] - ETA: 3s - loss: 0.0368 - accuracy: 0.9851 99/1688 [>.............................] - ETA: 3s - loss: 0.0374 - accuracy: 0.9857 124/1688 [=>............................] - ETA: 3s - loss: 0.0383 - accuracy: 0.9859 149/1688 [=>............................] - ETA: 3s - loss: 0.0388 - accuracy: 0.9861 174/1688 [==>...........................] - ETA: 3s - loss: 0.0388 - accuracy: 0.9863 198/1688 [==>...........................] - ETA: 3s - loss: 0.0387 - accuracy: 0.9865 222/1688 [==>...........................] - ETA: 3s - loss: 0.0386 - accuracy: 0.9866 247/1688 [===>..........................] - ETA: 2s - loss: 0.0385 - accuracy: 0.9867 271/1688 [===>..........................] - ETA: 2s - loss: 0.0384 - accuracy: 0.9868 295/1688 [====>.........................] - ETA: 2s - loss: 0.0383 - accuracy: 0.9869 320/1688 [====>.........................] - ETA: 2s - loss: 0.0382 - accuracy: 0.9871 345/1688 [=====>........................] - ETA: 2s - loss: 0.0381 - accuracy: 0.9872 369/1688 [=====>........................] - ETA: 2s - loss: 0.0380 - accuracy: 0.9872 393/1688 [=====>........................] - ETA: 2s - loss: 0.0380 - accuracy: 0.9873 416/1688 [======>.......................] - ETA: 2s - loss: 0.0380 - accuracy: 0.9874 440/1688 [======>.......................] - ETA: 2s - loss: 0.0380 - accuracy: 0.9874 466/1688 [=======>......................] - ETA: 2s - loss: 0.0379 - accuracy: 0.9875 491/1688 [=======>......................] - ETA: 2s - loss: 0.0379 - accuracy: 0.9875 516/1688 [========>.....................] - ETA: 2s - loss: 0.0378 - accuracy: 0.9876 540/1688 [========>.....................] - ETA: 2s - loss: 0.0378 - accuracy: 0.9877 565/1688 [=========>....................] - ETA: 2s - loss: 0.0378 - accuracy: 0.9877 590/1688 [=========>....................] - ETA: 2s - loss: 0.0378 - accuracy: 0.9878 614/1688 [=========>....................] - ETA: 2s - loss: 0.0378 - accuracy: 0.9878 639/1688 [==========>...................] - ETA: 2s - loss: 0.0379 - accuracy: 0.9878 664/1688 [==========>...................] - ETA: 2s - loss: 0.0379 - accuracy: 0.9878 688/1688 [===========>..................] - ETA: 2s - loss: 0.0380 - accuracy: 0.9878 713/1688 [===========>..................] - ETA: 2s - loss: 0.0381 - accuracy: 0.9878 738/1688 [============>.................] - ETA: 1s - loss: 0.0382 - accuracy: 0.9878 762/1688 [============>.................] - ETA: 1s - loss: 0.0383 - accuracy: 0.9878 787/1688 [============>.................] - ETA: 1s - loss: 0.0383 - accuracy: 0.9878 812/1688 [=============>................] - ETA: 1s - loss: 0.0384 - accuracy: 0.9878 836/1688 [=============>................] - ETA: 1s - loss: 0.0385 - accuracy: 0.9878 860/1688 [==============>...............] - ETA: 1s - loss: 0.0386 - accuracy: 0.9878 884/1688 [==============>...............] - ETA: 1s - loss: 0.0387 - accuracy: 0.9878 909/1688 [===============>..............] - ETA: 1s - loss: 0.0387 - accuracy: 0.9878 934/1688 [===============>..............] - ETA: 1s - loss: 0.0388 - accuracy: 0.9878 959/1688 [================>.............] - ETA: 1s - loss: 0.0389 - accuracy: 0.9878 984/1688 [================>.............] - ETA: 1s - loss: 0.0389 - accuracy: 0.9878 1009/1688 [================>.............] - ETA: 1s - loss: 0.0390 - accuracy: 0.9878 1033/1688 [=================>............] - ETA: 1s - loss: 0.0391 - accuracy: 0.9878 1058/1688 [=================>............] - ETA: 1s - loss: 0.0392 - accuracy: 0.9877 1083/1688 [==================>...........] - ETA: 1s - loss: 0.0392 - accuracy: 0.9877 1108/1688 [==================>...........] - ETA: 1s - loss: 0.0393 - accuracy: 0.9877 1133/1688 [===================>..........] - ETA: 1s - loss: 0.0394 - accuracy: 0.9877 1157/1688 [===================>..........] - ETA: 1s - loss: 0.0394 - accuracy: 0.9877 1181/1688 [===================>..........] - ETA: 1s - loss: 0.0395 - accuracy: 0.9877 1206/1688 [====================>.........] - ETA: 1s - loss: 0.0396 - accuracy: 0.9877 1231/1688 [====================>.........] - ETA: 0s - loss: 0.0397 - accuracy: 0.9877 1255/1688 [=====================>........] - ETA: 0s - loss: 0.0397 - accuracy: 0.9876 1279/1688 [=====================>........] - ETA: 0s - loss: 0.0398 - accuracy: 0.9876 1303/1688 [======================>.......] - ETA: 0s - loss: 0.0399 - accuracy: 0.9876 1327/1688 [======================>.......] - ETA: 0s - loss: 0.0399 - accuracy: 0.9876 1351/1688 [=======================>......] - ETA: 0s - loss: 0.0400 - accuracy: 0.9876 1376/1688 [=======================>......] - ETA: 0s - loss: 0.0401 - accuracy: 0.9876 1401/1688 [=======================>......] - ETA: 0s - loss: 0.0401 - accuracy: 0.9876 1425/1688 [========================>.....] - ETA: 0s - loss: 0.0402 - accuracy: 0.9876 1450/1688 [========================>.....] - ETA: 0s - loss: 0.0402 - accuracy: 0.9875 1475/1688 [=========================>....] - ETA: 0s - loss: 0.0403 - accuracy: 0.9875 1499/1688 [=========================>....] - ETA: 0s - loss: 0.0403 - accuracy: 0.9875 1523/1688 [==========================>...] - ETA: 0s - loss: 0.0404 - accuracy: 0.9875 1547/1688 [==========================>...] - ETA: 0s - loss: 0.0404 - accuracy: 0.9875 1572/1688 [==========================>...] - ETA: 0s - loss: 0.0405 - accuracy: 0.9875 1597/1688 [===========================>..] - ETA: 0s - loss: 0.0405 - accuracy: 0.9875 1622/1688 [===========================>..] - ETA: 0s - loss: 0.0406 - accuracy: 0.9875 1646/1688 [============================>.] - ETA: 0s - loss: 0.0406 - accuracy: 0.9875 1671/1688 [============================>.] - ETA: 0s - loss: 0.0407 - accuracy: 0.9875 1688/1688 [==============================] - 4s 2ms/step - loss: 0.0407 - accuracy: 0.9874 - val_loss: 0.0620 - val_accuracy: 0.9840 Epoch 10/10 1/1688 [..............................] - ETA: 3s - loss: 0.0255 - accuracy: 1.0000 26/1688 [..............................] - ETA: 3s - loss: 0.0354 - accuracy: 0.9928 51/1688 [..............................] - ETA: 3s - loss: 0.0338 - accuracy: 0.9922 75/1688 [>.............................] - ETA: 3s - loss: 0.0337 - accuracy: 0.9918 100/1688 [>.............................] - ETA: 3s - loss: 0.0339 - accuracy: 0.9911 125/1688 [=>............................] - ETA: 3s - loss: 0.0341 - accuracy: 0.9908 149/1688 [=>............................] - ETA: 3s - loss: 0.0343 - accuracy: 0.9904 174/1688 [==>...........................] - ETA: 3s - loss: 0.0344 - accuracy: 0.9902 198/1688 [==>...........................] - ETA: 3s - loss: 0.0345 - accuracy: 0.9901 223/1688 [==>...........................] - ETA: 3s - loss: 0.0346 - accuracy: 0.9900 248/1688 [===>..........................] - ETA: 2s - loss: 0.0347 - accuracy: 0.9899 273/1688 [===>..........................] - ETA: 2s - loss: 0.0348 - accuracy: 0.9899 297/1688 [====>.........................] - ETA: 2s - loss: 0.0350 - accuracy: 0.9898 322/1688 [====>.........................] - ETA: 2s - loss: 0.0352 - accuracy: 0.9897 346/1688 [=====>........................] - ETA: 2s - loss: 0.0353 - accuracy: 0.9897 371/1688 [=====>........................] - ETA: 2s - loss: 0.0354 - accuracy: 0.9896 396/1688 [======>.......................] - ETA: 2s - loss: 0.0354 - accuracy: 0.9896 421/1688 [======>.......................] - ETA: 2s - loss: 0.0354 - accuracy: 0.9896 446/1688 [======>.......................] - ETA: 2s - loss: 0.0354 - accuracy: 0.9896 471/1688 [=======>......................] - ETA: 2s - loss: 0.0354 - accuracy: 0.9896 496/1688 [=======>......................] - ETA: 2s - loss: 0.0354 - accuracy: 0.9895 521/1688 [========>.....................] - ETA: 2s - loss: 0.0354 - accuracy: 0.9895 546/1688 [========>.....................] - ETA: 2s - loss: 0.0355 - accuracy: 0.9895 571/1688 [=========>....................] - ETA: 2s - loss: 0.0355 - accuracy: 0.9895 596/1688 [=========>....................] - ETA: 2s - loss: 0.0356 - accuracy: 0.9894 621/1688 [==========>...................] - ETA: 2s - loss: 0.0356 - accuracy: 0.9894 644/1688 [==========>...................] - ETA: 2s - loss: 0.0357 - accuracy: 0.9894 669/1688 [==========>...................] - ETA: 2s - loss: 0.0357 - accuracy: 0.9894 694/1688 [===========>..................] - ETA: 2s - loss: 0.0357 - accuracy: 0.9894 719/1688 [===========>..................] - ETA: 2s - loss: 0.0357 - accuracy: 0.9894 743/1688 [============>.................] - ETA: 1s - loss: 0.0357 - accuracy: 0.9893 767/1688 [============>.................] - ETA: 1s - loss: 0.0357 - accuracy: 0.9893 791/1688 [=============>................] - ETA: 1s - loss: 0.0357 - accuracy: 0.9893 815/1688 [=============>................] - ETA: 1s - loss: 0.0357 - accuracy: 0.9893 839/1688 [=============>................] - ETA: 1s - loss: 0.0358 - accuracy: 0.9893 863/1688 [==============>...............] - ETA: 1s - loss: 0.0358 - accuracy: 0.9893 888/1688 [==============>...............] - ETA: 1s - loss: 0.0358 - accuracy: 0.9893 913/1688 [===============>..............] - ETA: 1s - loss: 0.0359 - accuracy: 0.9893 938/1688 [===============>..............] - ETA: 1s - loss: 0.0359 - accuracy: 0.9892 963/1688 [================>.............] - ETA: 1s - loss: 0.0359 - accuracy: 0.9892 989/1688 [================>.............] - ETA: 1s - loss: 0.0360 - accuracy: 0.9892 1014/1688 [=================>............] - ETA: 1s - loss: 0.0360 - accuracy: 0.9892 1039/1688 [=================>............] - ETA: 1s - loss: 0.0361 - accuracy: 0.9892 1064/1688 [=================>............] - ETA: 1s - loss: 0.0361 - accuracy: 0.9891 1089/1688 [==================>...........] - ETA: 1s - loss: 0.0362 - accuracy: 0.9891 1115/1688 [==================>...........] - ETA: 1s - loss: 0.0362 - accuracy: 0.9891 1141/1688 [===================>..........] - ETA: 1s - loss: 0.0363 - accuracy: 0.9891 1166/1688 [===================>..........] - ETA: 1s - loss: 0.0364 - accuracy: 0.9891 1192/1688 [====================>.........] - ETA: 1s - loss: 0.0364 - accuracy: 0.9890 1218/1688 [====================>.........] - ETA: 0s - loss: 0.0365 - accuracy: 0.9890 1243/1688 [=====================>........] - ETA: 0s - loss: 0.0365 - accuracy: 0.9890 1269/1688 [=====================>........] - ETA: 0s - loss: 0.0366 - accuracy: 0.9890 1295/1688 [======================>.......] - ETA: 0s - loss: 0.0366 - accuracy: 0.9890 1321/1688 [======================>.......] - ETA: 0s - loss: 0.0367 - accuracy: 0.9890 1346/1688 [======================>.......] - ETA: 0s - loss: 0.0367 - accuracy: 0.9889 1371/1688 [=======================>......] - ETA: 0s - loss: 0.0367 - accuracy: 0.9889 1396/1688 [=======================>......] - ETA: 0s - loss: 0.0368 - accuracy: 0.9889 1421/1688 [========================>.....] - ETA: 0s - loss: 0.0368 - accuracy: 0.9889 1446/1688 [========================>.....] - ETA: 0s - loss: 0.0369 - accuracy: 0.9889 1472/1688 [=========================>....] - ETA: 0s - loss: 0.0369 - accuracy: 0.9889 1498/1688 [=========================>....] - ETA: 0s - loss: 0.0370 - accuracy: 0.9888 1523/1688 [==========================>...] - ETA: 0s - loss: 0.0370 - accuracy: 0.9888 1548/1688 [==========================>...] - ETA: 0s - loss: 0.0370 - accuracy: 0.9888 1574/1688 [==========================>...] - ETA: 0s - loss: 0.0371 - accuracy: 0.9888 1600/1688 [===========================>..] - ETA: 0s - loss: 0.0371 - accuracy: 0.9888 1625/1688 [===========================>..] - ETA: 0s - loss: 0.0371 - accuracy: 0.9888 1651/1688 [============================>.] - ETA: 0s - loss: 0.0372 - accuracy: 0.9888 1677/1688 [============================>.] - ETA: 0s - loss: 0.0372 - accuracy: 0.9888 1688/1688 [==============================] - 4s 2ms/step - loss: 0.0372 - accuracy: 0.9888 - val_loss: 0.0684 - val_accuracy: 0.9818 <tensorflow.python.keras.callbacks.History at 0x7fa994f7a588>
ベースラインモデルを評価して後で使用できるように保存する
_, baseline_model_accuracy = model.evaluate(
test_images, test_labels, verbose=0)
print('Baseline test accuracy:', baseline_model_accuracy)
_, keras_file = tempfile.mkstemp('.h5')
print('Saving model to: ', keras_file)
tf.keras.models.save_model(model, keras_file, include_optimizer=False)
Baseline test accuracy: 0.9789999723434448 Saving model to: /tmp/tmp8m1tzkhh.h5
クラスタを使ってトレーニング済みのモデルを微調整する
cluster_weights() API をトレーニング済みのモデル全体に適用し、十分な精度を維持しながら zip 適用後のモデル縮小の効果を実演します。ユースケースに応じた精度と圧縮率のバランスについては、総合ガイドのレイヤー別の例をご覧ください。
モデルを定義してクラスタリング API を適用する
クラスタリング API にモデルを渡す前に、必ずトレーニングを実行し、許容できる精度が備わっていることを確認してください。
import tensorflow_model_optimization as tfmot
cluster_weights = tfmot.clustering.keras.cluster_weights
CentroidInitialization = tfmot.clustering.keras.CentroidInitialization
clustering_params = {
'number_of_clusters': 16,
'cluster_centroids_init': CentroidInitialization.LINEAR
}
# Cluster a whole model
clustered_model = cluster_weights(model, **clustering_params)
# Use smaller learning rate for fine-tuning clustered model
opt = tf.keras.optimizers.Adam(learning_rate=1e-5)
clustered_model.compile(
loss=tf.keras.losses.SparseCategoricalCrossentropy(from_logits=True),
optimizer=opt,
metrics=['accuracy'])
clustered_model.summary()
Model: "sequential" _________________________________________________________________ Layer (type) Output Shape Param # ================================================================= cluster_reshape (ClusterWeig (None, 28, 28, 1) 0 _________________________________________________________________ cluster_conv2d (ClusterWeigh (None, 26, 26, 12) 136 _________________________________________________________________ cluster_max_pooling2d (Clust (None, 13, 13, 12) 0 _________________________________________________________________ cluster_flatten (ClusterWeig (None, 2028) 0 _________________________________________________________________ cluster_dense (ClusterWeight (None, 10) 20306 ================================================================= Total params: 20,442 Trainable params: 54 Non-trainable params: 20,388 _________________________________________________________________
モデルを微調整し、ベースラインに対する精度を評価する
1 エポック、クラスタでモデルを微調整します。
# Fine-tune model
clustered_model.fit(
train_images,
train_labels,
batch_size=500,
epochs=1,
validation_split=0.1)
1/108 [..............................] - ETA: 47s - loss: 0.0911 - accuracy: 0.9680 17/108 [===>..........................] - ETA: 0s - loss: 0.0690 - accuracy: 0.9767 33/108 [========>.....................] - ETA: 0s - loss: 0.0675 - accuracy: 0.9771 49/108 [============>.................] - ETA: 0s - loss: 0.0677 - accuracy: 0.9768 65/108 [=================>............] - ETA: 0s - loss: 0.0681 - accuracy: 0.9768 81/108 [=====================>........] - ETA: 0s - loss: 0.0683 - accuracy: 0.9768 97/108 [=========================>....] - ETA: 0s - loss: 0.0683 - accuracy: 0.9769 108/108 [==============================] - 1s 6ms/step - loss: 0.0683 - accuracy: 0.9770 - val_loss: 0.0977 - val_accuracy: 0.9747 <tensorflow.python.keras.callbacks.History at 0x7faa032a4d68>
この例では、ベースラインと比較し、クラスタリング後のテスト精度に最小限の損失があります。
_, clustered_model_accuracy = clustered_model.evaluate(
test_images, test_labels, verbose=0)
print('Baseline test accuracy:', baseline_model_accuracy)
print('Clustered test accuracy:', clustered_model_accuracy)
Baseline test accuracy: 0.9789999723434448 Clustered test accuracy: 0.9702000021934509
クラスタリングによって 6 倍小さなモデルを作成する
strip_clustering と標準圧縮アルゴリズム(gzip など)の適用は、クラスタリングの圧縮のメリットを確認する上で必要です。
まず、TensorFlow の圧縮可能なモデルを作成します。ここで、strip_clustering は、クラスタリングがトレーニング中にのみ必要とするすべての変数(クラスタの重心とインデックスを格納する tf.Variable など)を除去します。そうしない場合、推論中にモデルサイズが増加してしまいます。
final_model = tfmot.clustering.keras.strip_clustering(clustered_model)
_, clustered_keras_file = tempfile.mkstemp('.h5')
print('Saving clustered model to: ', clustered_keras_file)
tf.keras.models.save_model(final_model, clustered_keras_file,
include_optimizer=False)
Saving clustered model to: /tmp/tmpz9c4ugbj.h5
次に、TFLite の圧縮可能なモデルを作成します。クラスタモデルをターゲットバックエンドで実行可能な形式に変換できます。TensorFlow Lite は、モバイルデバイスにデプロイするために使用できる例です。
clustered_tflite_file = '/tmp/clustered_mnist.tflite'
converter = tf.lite.TFLiteConverter.from_keras_model(final_model)
tflite_clustered_model = converter.convert()
with open(clustered_tflite_file, 'wb') as f:
f.write(tflite_clustered_model)
print('Saved clustered TFLite model to:', clustered_tflite_file)
INFO:tensorflow:Assets written to: /tmp/tmp41s2kzub/assets Saved clustered TFLite model to: /tmp/clustered_mnist.tflite
実際に gzip でモデルを圧縮し、zip 圧縮されたサイズを測定するヘルパー関数を定義します。
def get_gzipped_model_size(file):
# It returns the size of the gzipped model in bytes.
import os
import zipfile
_, zipped_file = tempfile.mkstemp('.zip')
with zipfile.ZipFile(zipped_file, 'w', compression=zipfile.ZIP_DEFLATED) as f:
f.write(file)
return os.path.getsize(zipped_file)
比較して、モデルがクラスタリングによって 6 倍小さくなっていることを確認します。
print("Size of gzipped baseline Keras model: %.2f bytes" % (get_gzipped_model_size(keras_file)))
print("Size of gzipped clustered Keras model: %.2f bytes" % (get_gzipped_model_size(clustered_keras_file)))
print("Size of gzipped clustered TFlite model: %.2f bytes" % (get_gzipped_model_size(clustered_tflite_file)))
Size of gzipped baseline Keras model: 78047.00 bytes Size of gzipped clustered Keras model: 12419.00 bytes Size of gzipped clustered TFlite model: 11920.00 bytes
重みクラスタリングとポストトレーニング量子化を組み合わせて、8 倍小さな TFLite モデルを作成する
さらにメリットを得るために、ポストトレーニング量子化をクラスタモデルに適用できます。
converter = tf.lite.TFLiteConverter.from_keras_model(final_model)
converter.optimizations = [tf.lite.Optimize.DEFAULT]
tflite_quant_model = converter.convert()
_, quantized_and_clustered_tflite_file = tempfile.mkstemp('.tflite')
with open(quantized_and_clustered_tflite_file, 'wb') as f:
f.write(tflite_quant_model)
print('Saved quantized and clustered TFLite model to:', quantized_and_clustered_tflite_file)
print("Size of gzipped baseline Keras model: %.2f bytes" % (get_gzipped_model_size(keras_file)))
print("Size of gzipped clustered and quantized TFlite model: %.2f bytes" % (get_gzipped_model_size(quantized_and_clustered_tflite_file)))
INFO:tensorflow:Assets written to: /tmp/tmpg3y6r2ll/assets INFO:tensorflow:Assets written to: /tmp/tmpg3y6r2ll/assets Saved quantized and clustered TFLite model to: /tmp/tmp6p9j3n3w.tflite Size of gzipped baseline Keras model: 78047.00 bytes Size of gzipped clustered and quantized TFlite model: 9045.00 bytes
TF から TFLite への精度の永続性を確認する
テストデータセットで TFLite モデルを評価するヘルパー関数を定義します。
def eval_model(interpreter):
input_index = interpreter.get_input_details()[0]["index"]
output_index = interpreter.get_output_details()[0]["index"]
# Run predictions on every image in the "test" dataset.
prediction_digits = []
for i, test_image in enumerate(test_images):
if i % 1000 == 0:
print('Evaluated on {n} results so far.'.format(n=i))
# Pre-processing: add batch dimension and convert to float32 to match with
# the model's input data format.
test_image = np.expand_dims(test_image, axis=0).astype(np.float32)
interpreter.set_tensor(input_index, test_image)
# Run inference.
interpreter.invoke()
# Post-processing: remove batch dimension and find the digit with highest
# probability.
output = interpreter.tensor(output_index)
digit = np.argmax(output()[0])
prediction_digits.append(digit)
print('\n')
# Compare prediction results with ground truth labels to calculate accuracy.
prediction_digits = np.array(prediction_digits)
accuracy = (prediction_digits == test_labels).mean()
return accuracy
クラスタ化および量子化されたモデルを評価し、TensorFlow の精度が TFLite バックエンドに持続することを確認します。
interpreter = tf.lite.Interpreter(model_content=tflite_quant_model)
interpreter.allocate_tensors()
test_accuracy = eval_model(interpreter)
print('Clustered and quantized TFLite test_accuracy:', test_accuracy)
print('Clustered TF test accuracy:', clustered_model_accuracy)
Evaluated on 0 results so far. Evaluated on 1000 results so far. Evaluated on 2000 results so far. Evaluated on 3000 results so far. Evaluated on 4000 results so far. Evaluated on 5000 results so far. Evaluated on 6000 results so far. Evaluated on 7000 results so far. Evaluated on 8000 results so far. Evaluated on 9000 results so far. Clustered and quantized TFLite test_accuracy: 0.9698 Clustered TF test accuracy: 0.9702000021934509
まとめ
このチュートリアルでは、TensorFlow Model Optimization Toolkit API を使用してクラスタモデルを作成する方法を確認しました。より具体的には、精度の違いを最小限に抑えて MNIST の 8 倍の小さいモデルを作成する、エンドツーエンドの例を確認しました。この新しい機能を試すことをお勧めします。これは、リソースに制約のある環境でのデプロイに特に重要な機能です。
TensorFlow.orgで表示
Google Colabで実行
GitHub でソースを表示
ノートブックをダウンロード