From c31b70e435d963acb7f7d1a9912e8c1dd645b523 Mon Sep 17 00:00:00 2001
From: Jean-Luc Parouty <Jean-Luc.Parouty@grenoble-inp.fr>
Date: Tue, 7 Jan 2020 17:40:05 +0100
Subject: [PATCH] update GTSRB

---
 GTSRB/03-Tracking-and-visualizing.ipynb | 262 ++++++++++++++++--------
 1 file changed, 181 insertions(+), 81 deletions(-)

diff --git a/GTSRB/03-Tracking-and-visualizing.ipynb b/GTSRB/03-Tracking-and-visualizing.ipynb
index 6588113..bdaba13 100644
--- a/GTSRB/03-Tracking-and-visualizing.ipynb
+++ b/GTSRB/03-Tracking-and-visualizing.ipynb
@@ -32,7 +32,7 @@
      "text": [
       "IDLE 2020 - Practical Work Module\n",
       "  Version            : 0.1.1\n",
-      "  Run time           : Monday 6 January 2020, 23:42:11\n",
+      "  Run time           : Tuesday 7 January 2020, 17:38:16\n",
       "  Matplotlib style   : idle/talk.mplstyle\n",
       "  TensorFlow version : 2.0.0\n",
       "  Keras version      : 2.2.4-tf\n"
@@ -76,8 +76,8 @@
      "text": [
       "Dataset loaded, size=247.6 Mo\n",
       "\n",
-      "CPU times: user 0 ns, sys: 344 ms, total: 344 ms\n",
-      "Wall time: 498 ms\n"
+      "CPU times: user 0 ns, sys: 312 ms, total: 312 ms\n",
+      "Wall time: 321 ms\n"
      ]
     }
    ],
@@ -172,18 +172,18 @@
   },
   {
    "cell_type": "code",
-   "execution_count": 23,
+   "execution_count": 122,
    "metadata": {},
    "outputs": [],
    "source": [
     "batch_size  =  64\n",
     "num_classes =  43\n",
-    "epochs      =  10"
+    "epochs      =  20"
    ]
   },
   {
    "cell_type": "code",
-   "execution_count": 24,
+   "execution_count": 123,
    "metadata": {},
    "outputs": [
     {
@@ -249,22 +249,51 @@
     "Training logs, which can be visualised with Tensorboard.  \n",
     "`#tensorboard --logdir ./run/logs`  \n",
     "IMPORTANT : Relancer tensorboard à chaque run\n",
-    " - **model backup**"
+    " - **Model backup**  \n",
+    " It is possible to save the model each xx epoch or at each improvement.  \n",
+    " The model can be saved completely or partially (weight).  \n",
+    " For full format, we can use HDF5 format."
    ]
   },
   {
    "cell_type": "code",
-   "execution_count": 25,
+   "execution_count": 124,
+   "metadata": {},
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "total 0\n"
+     ]
+    }
+   ],
+   "source": [
+    "# To clean logs and saved model, run this cell\n",
+    "!/bin/rm -r ./run/logs ./run/models\n",
+    "!/bin/ls -l ./run"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 125,
    "metadata": {},
    "outputs": [],
    "source": [
+    "ooo.mkdir('./run/models')\n",
+    "ooo.mkdir('./run/logs')\n",
+    "\n",
     "# ---- Callback tensorboard\n",
-    "log_dir = \"./run/logs/\" + ooo.tag_now()\n",
+    "log_dir = \"./run/logs/tb_\" + ooo.tag_now()\n",
     "tensorboard_callback = tf.keras.callbacks.TensorBoard(log_dir=log_dir, histogram_freq=1)\n",
     "\n",
-    "# ---- Callback ModelCheckpoint\n",
-    "save_dir = \"./run/models\"\n",
-    "checkpoint_callback = tf.keras.callbacks.ModelCheckpoint(filepath=save_dir, verbose=0, monitor='accuracy', save_best_only=True)"
+    "# ---- Callback ModelCheckpoint - Save best model\n",
+    "save_dir = \"./run/models/best-model.h5\"\n",
+    "bestmodel_callback = tf.keras.callbacks.ModelCheckpoint(filepath=save_dir, verbose=0, monitor='accuracy', save_best_only=True)\n",
+    "\n",
+    "# ---- Callback ModelCheckpoint - Save model each epochs\n",
+    "save_dir = \"./run/models/model-{epoch:04d}.h5\"\n",
+    "savemodel_callback = tf.keras.callbacks.ModelCheckpoint(filepath=save_dir, verbose=0, save_freq=2000*5)"
    ]
   },
   {
@@ -276,141 +305,212 @@
   },
   {
    "cell_type": "code",
-   "execution_count": 26,
+   "execution_count": 126,
    "metadata": {},
    "outputs": [
     {
      "name": "stdout",
      "output_type": "stream",
      "text": [
-      "Train on 3000 samples, validate on 500 samples\n",
-      "Epoch 1/10\n",
-      "2944/3000 [============================>.] - ETA: 0s - loss: 3.4893 - accuracy: 0.0676INFO:tensorflow:Assets written to: ./run/models/assets\n",
-      "3000/3000 [==============================] - 8s 3ms/sample - loss: 3.4847 - accuracy: 0.0690 - val_loss: 3.2739 - val_accuracy: 0.1640\n",
-      "Epoch 2/10\n",
-      "2944/3000 [============================>.] - ETA: 0s - loss: 2.4907 - accuracy: 0.3227INFO:tensorflow:Assets written to: ./run/models/assets\n",
-      "3000/3000 [==============================] - 7s 2ms/sample - loss: 2.4802 - accuracy: 0.3250 - val_loss: 2.0143 - val_accuracy: 0.3900\n",
-      "Epoch 3/10\n",
-      "2944/3000 [============================>.] - ETA: 0s - loss: 1.3810 - accuracy: 0.5591INFO:tensorflow:Assets written to: ./run/models/assets\n",
-      "3000/3000 [==============================] - 7s 2ms/sample - loss: 1.3794 - accuracy: 0.5593 - val_loss: 1.3322 - val_accuracy: 0.6200\n",
-      "Epoch 4/10\n",
-      "2944/3000 [============================>.] - ETA: 0s - loss: 0.8501 - accuracy: 0.7286INFO:tensorflow:Assets written to: ./run/models/assets\n",
-      "3000/3000 [==============================] - 7s 2ms/sample - loss: 0.8426 - accuracy: 0.7323 - val_loss: 1.1705 - val_accuracy: 0.6580\n",
-      "Epoch 5/10\n",
-      "2944/3000 [============================>.] - ETA: 0s - loss: 0.5132 - accuracy: 0.8400INFO:tensorflow:Assets written to: ./run/models/assets\n",
-      "3000/3000 [==============================] - 8s 3ms/sample - loss: 0.5087 - accuracy: 0.8413 - val_loss: 0.9281 - val_accuracy: 0.7360\n",
-      "Epoch 6/10\n",
-      "2944/3000 [============================>.] - ETA: 0s - loss: 0.3740 - accuracy: 0.8787INFO:tensorflow:Assets written to: ./run/models/assets\n",
-      "3000/3000 [==============================] - 8s 3ms/sample - loss: 0.3763 - accuracy: 0.8783 - val_loss: 0.9252 - val_accuracy: 0.7520\n",
-      "Epoch 7/10\n",
-      "2944/3000 [============================>.] - ETA: 0s - loss: 0.2671 - accuracy: 0.9141INFO:tensorflow:Assets written to: ./run/models/assets\n",
-      "3000/3000 [==============================] - 8s 3ms/sample - loss: 0.2677 - accuracy: 0.9140 - val_loss: 0.8153 - val_accuracy: 0.8000\n",
-      "Epoch 8/10\n",
-      "2944/3000 [============================>.] - ETA: 0s - loss: 0.1599 - accuracy: 0.9535INFO:tensorflow:Assets written to: ./run/models/assets\n",
-      "3000/3000 [==============================] - 8s 3ms/sample - loss: 0.1588 - accuracy: 0.9543 - val_loss: 0.7000 - val_accuracy: 0.8500\n",
-      "Epoch 9/10\n",
-      "2944/3000 [============================>.] - ETA: 0s - loss: 0.1282 - accuracy: 0.9626INFO:tensorflow:Assets written to: ./run/models/assets\n",
-      "3000/3000 [==============================] - 8s 3ms/sample - loss: 0.1271 - accuracy: 0.9633 - val_loss: 0.7833 - val_accuracy: 0.8080\n",
-      "Epoch 10/10\n",
-      "2944/3000 [============================>.] - ETA: 0s - loss: 0.0979 - accuracy: 0.9715INFO:tensorflow:Assets written to: ./run/models/assets\n",
-      "3000/3000 [==============================] - 8s 3ms/sample - loss: 0.0971 - accuracy: 0.9720 - val_loss: 0.7634 - val_accuracy: 0.8420\n",
-      "CPU times: user 4min 26s, sys: 1min 31s, total: 5min 58s\n",
-      "Wall time: 1min 15s\n"
+      "Train on 2000 samples, validate on 200 samples\n",
+      "Epoch 1/20\n",
+      "2000/2000 [==============================] - 5s 3ms/sample - loss: 3.6179 - accuracy: 0.0595 - val_loss: 3.5203 - val_accuracy: 0.0550\n",
+      "Epoch 2/20\n",
+      "2000/2000 [==============================] - 5s 3ms/sample - loss: 3.4567 - accuracy: 0.0600 - val_loss: 3.4113 - val_accuracy: 0.0750\n",
+      "Epoch 3/20\n",
+      "2000/2000 [==============================] - 5s 3ms/sample - loss: 2.9967 - accuracy: 0.2045 - val_loss: 2.7160 - val_accuracy: 0.2450\n",
+      "Epoch 4/20\n",
+      "2000/2000 [==============================] - 5s 2ms/sample - loss: 2.1231 - accuracy: 0.3710 - val_loss: 2.2007 - val_accuracy: 0.3550\n",
+      "Epoch 5/20\n",
+      "2000/2000 [==============================] - 5s 2ms/sample - loss: 1.5418 - accuracy: 0.5290 - val_loss: 1.6167 - val_accuracy: 0.5050\n",
+      "Epoch 6/20\n",
+      "2000/2000 [==============================] - 5s 3ms/sample - loss: 1.1403 - accuracy: 0.6315 - val_loss: 1.6735 - val_accuracy: 0.5100\n",
+      "Epoch 7/20\n",
+      "2000/2000 [==============================] - 5s 3ms/sample - loss: 0.8817 - accuracy: 0.7070 - val_loss: 1.1985 - val_accuracy: 0.6300\n",
+      "Epoch 8/20\n",
+      "2000/2000 [==============================] - 5s 3ms/sample - loss: 0.6063 - accuracy: 0.8005 - val_loss: 1.1051 - val_accuracy: 0.7050\n",
+      "Epoch 9/20\n",
+      "2000/2000 [==============================] - 5s 3ms/sample - loss: 0.4553 - accuracy: 0.8540 - val_loss: 1.1474 - val_accuracy: 0.6850\n",
+      "Epoch 10/20\n",
+      "2000/2000 [==============================] - 6s 3ms/sample - loss: 0.3155 - accuracy: 0.9005 - val_loss: 0.9822 - val_accuracy: 0.7500\n",
+      "Epoch 11/20\n",
+      "2000/2000 [==============================] - 6s 3ms/sample - loss: 0.2466 - accuracy: 0.9220 - val_loss: 0.9238 - val_accuracy: 0.7550\n",
+      "Epoch 12/20\n",
+      "2000/2000 [==============================] - 5s 3ms/sample - loss: 0.1964 - accuracy: 0.9365 - val_loss: 1.0252 - val_accuracy: 0.7600\n",
+      "Epoch 13/20\n",
+      "2000/2000 [==============================] - 5s 3ms/sample - loss: 0.1690 - accuracy: 0.9445 - val_loss: 0.9506 - val_accuracy: 0.7550\n",
+      "Epoch 14/20\n",
+      "2000/2000 [==============================] - 6s 3ms/sample - loss: 0.1053 - accuracy: 0.9690 - val_loss: 1.1243 - val_accuracy: 0.7300\n",
+      "Epoch 15/20\n",
+      "2000/2000 [==============================] - 5s 3ms/sample - loss: 0.1054 - accuracy: 0.9730 - val_loss: 0.8967 - val_accuracy: 0.8000\n",
+      "Epoch 16/20\n",
+      "2000/2000 [==============================] - 5s 3ms/sample - loss: 0.1285 - accuracy: 0.9620 - val_loss: 0.9004 - val_accuracy: 0.7850\n",
+      "Epoch 17/20\n",
+      "2000/2000 [==============================] - 6s 3ms/sample - loss: 0.0744 - accuracy: 0.9805 - val_loss: 0.8287 - val_accuracy: 0.8200\n",
+      "Epoch 18/20\n",
+      "2000/2000 [==============================] - 6s 3ms/sample - loss: 0.0400 - accuracy: 0.9915 - val_loss: 1.0527 - val_accuracy: 0.8150\n",
+      "Epoch 19/20\n",
+      "2000/2000 [==============================] - 5s 3ms/sample - loss: 0.0618 - accuracy: 0.9805 - val_loss: 0.9737 - val_accuracy: 0.8000\n",
+      "Epoch 20/20\n",
+      "2000/2000 [==============================] - 5s 3ms/sample - loss: 0.0806 - accuracy: 0.9755 - val_loss: 1.1634 - val_accuracy: 0.8050\n",
+      "CPU times: user 6min 23s, sys: 2min 26s, total: 8min 49s\n",
+      "Wall time: 1min 47s\n"
      ]
     }
    ],
    "source": [
     "%%time\n",
     "\n",
-    "history = model.fit(  x_train[:3000], y_train[:3000],\n",
+    "history = model.fit(  x_train[:2000], y_train[:2000],\n",
     "                      batch_size=batch_size,\n",
     "                      epochs=epochs,\n",
     "                      verbose=1,\n",
-    "                      validation_data=(x_test[:500], y_test[:500]),\n",
-    "                      callbacks=[tensorboard_callback, checkpoint_callback] )"
+    "                      validation_data=(x_test[:200], y_test[:200]),\n",
+    "                      callbacks=[tensorboard_callback, bestmodel_callback, savemodel_callback] )\n",
+    "\n",
+    "model.save('./run/models/last-model.h5')"
    ]
   },
   {
    "cell_type": "markdown",
    "metadata": {},
    "source": [
-    "## 6/ Evaluation"
+    "## 6/ History\n",
+    "The return of model.fit() returns us the learning history"
    ]
   },
   {
    "cell_type": "code",
-   "execution_count": null,
+   "execution_count": 127,
    "metadata": {},
-   "outputs": [],
+   "outputs": [
+    {
+     "data": {
+      "image/png": "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\n",
+      "text/plain": [
+       "<Figure size 576x432 with 1 Axes>"
+      ]
+     },
+     "metadata": {
+      "needs_background": "light"
+     },
+     "output_type": "display_data"
+    },
+    {
+     "data": {
+      "image/png": "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\n",
+      "text/plain": [
+       "<Figure size 576x432 with 1 Axes>"
+      ]
+     },
+     "metadata": {
+      "needs_background": "light"
+     },
+     "output_type": "display_data"
+    }
+   ],
    "source": [
-    "score = model.evaluate(x_test, y_test, verbose=0)\n",
-    "\n",
-    "print('Test loss      : {:5.4f}'.format(score[0]))\n",
-    "print('Test accuracy  : {:5.4f}'.format(score[1]))"
+    "ooo.plot_history(history)"
    ]
   },
   {
    "cell_type": "markdown",
    "metadata": {},
    "source": [
-    "## 7/ History\n",
-    "The return of model.fit() returns us the learning history"
+    "## 7/ Restore and evaluate\n",
+    "List of saved models :"
    ]
   },
   {
    "cell_type": "code",
-   "execution_count": null,
+   "execution_count": 129,
    "metadata": {},
-   "outputs": [],
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "./run/models/\n",
+      "./run/models/best-model.h5\n",
+      "./run/models/last-model.h5\n"
+     ]
+    }
+   ],
    "source": [
-    "ooo.plot_history(history)"
+    "!find ./run/models/"
    ]
   },
   {
    "cell_type": "markdown",
    "metadata": {},
    "source": [
-    "---\n",
-    "### Results :  \n",
-    "L25 : size=250 Mo, 93.15%  \n",
-    "..."
+    "Restore current model and evaluate it.."
    ]
   },
   {
    "cell_type": "code",
-   "execution_count": 29,
+   "execution_count": 4,
    "metadata": {},
    "outputs": [
     {
      "name": "stdout",
      "output_type": "stream",
      "text": [
-      "total 176\n",
-      "drwxr-xr-x 1 pjluc pjluc    512 Jan  7 00:16 assets\n",
-      "-rw-r--r-- 1 pjluc pjluc 168427 Jan  7 00:17 saved_model.pb\n",
-      "drwxr-xr-x 1 pjluc pjluc    512 Jan  7 00:17 variables\n",
-      "\u001b[01;34m./run/models\u001b[00m\n",
-      "├── \u001b[01;34massets\u001b[00m\n",
-      "├── saved_model.pb\n",
-      "└── \u001b[01;34mvariables\u001b[00m\n",
-      "    ├── variables.data-00000-of-00001\n",
-      "    └── variables.index\n",
-      "\n",
-      "2 directories, 3 files\n"
+      "Test loss      : 0.8608\n",
+      "Test accuracy  : 0.8466\n"
      ]
     }
    ],
    "source": [
-    "!ls -l {save_dir}\n",
-    "!tree {save_dir}"
+    "\n",
+    "best_model = tf.keras.models.load_model('./run/models/best-model.h5')\n",
+    "# best_model.summary()\n",
+    "\n",
+    "score = best_model.evaluate(x_test, y_test, verbose=0)\n",
+    "\n",
+    "print('Test loss      : {:5.4f}'.format(score[0]))\n",
+    "print('Test accuracy  : {:5.4f}'.format(score[1]))"
    ]
   },
   {
    "cell_type": "markdown",
    "metadata": {},
    "source": [
-    "A suivre : https://www.tensorflow.org/tutorials/keras/save_and_load"
+    "---\n",
+    "### A faire :\n",
+    " - Restauration\n",
+    " - Reprise apprentissage\n",
+    " - Evaluation\n",
+    " - Matrice de confusion\n"
    ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 9,
+   "metadata": {},
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "[[ 0.    0.    0.    0.    0.    0.    0.    0.    0.    0.    0.    2.07  0.    0.    0.\n",
+      "   0.    0.    0.    0.    0.    0.    0.15  0.    0.    0.    0.    0.    1.64  1.56  0.\n",
+      "  94.58  0.    0.    0.    0.    0.    0.    0.    0.    0.    0.    0.    0.  ]]\n"
+     ]
+    }
+   ],
+   "source": [
+    "predictions = best_model.predict(x_test[3004:3005])\n",
+    "with np.printoptions(precision=2, suppress=True, linewidth=95):\n",
+    "    print(predictions*100)"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {},
+   "outputs": [],
+   "source": []
   }
  ],
  "metadata": {
-- 
GitLab