From 2ac73d6813c4dff3e407fc4fd0305af1a7db6a01 Mon Sep 17 00:00:00 2001 From: Jean-Luc Parouty <Jean-Luc.Parouty@grenoble-inp.fr> Date: Sun, 5 Jan 2020 17:03:56 +0100 Subject: [PATCH] Minor GTSRB update Former-commit-id: aa3c61893ac2a42f2552432fc036931aabbb96c4 --- GTSRB/02-First-convolutions.ipynb | 65 +++++++++++++++++-------------- 1 file changed, 35 insertions(+), 30 deletions(-) diff --git a/GTSRB/02-First-convolutions.ipynb b/GTSRB/02-First-convolutions.ipynb index 56aa40b..d75e686 100644 --- a/GTSRB/02-First-convolutions.ipynb +++ b/GTSRB/02-First-convolutions.ipynb @@ -11,17 +11,21 @@ "\n", "## Episode 2 : First Convolutions\n", "\n", + "Our main steps:\n", " - Read dataset\n", " - Build a model\n", " - Train the model\n", " - Model evaluation\n", "\n", + "\n", + "\n", + "\n", "## 1/ Import and init" ] }, { "cell_type": "code", - "execution_count": 1, + "execution_count": 2, "metadata": {}, "outputs": [ { @@ -30,7 +34,7 @@ "text": [ "IDLE 2020 - Practical Work Module\n", " Version : 0.1.1\n", - " Run time : Saturday 4 January 2020, 17:27:01\n", + " Run time : Sunday 5 January 2020, 16:37:26\n", " Matplotlib style : idle/talk.mplstyle\n", " TensorFlow version : 2.0.0\n", " Keras version : 2.2.4-tf\n" @@ -57,20 +61,21 @@ "metadata": {}, "source": [ "## 2/ Reload dataset\n", - "Dataset is one of the saved dataset: RGB25, RGB35, L25, L35, etc." + "Dataset is one of the saved dataset: RGB25, RGB35, L25, L35, etc. \n", + "First of all, we're going to use the dataset : **L25**" ] }, { "cell_type": "code", - "execution_count": 19, + "execution_count": 3, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ - "CPU times: user 0 ns, sys: 391 ms, total: 391 ms\n", - "Wall time: 402 ms\n" + "CPU times: user 0 ns, sys: 328 ms, total: 328 ms\n", + "Wall time: 502 ms\n" ] } ], @@ -106,7 +111,7 @@ }, { "cell_type": "code", - "execution_count": 20, + "execution_count": 4, "metadata": {}, "outputs": [ { @@ -121,9 +126,9 @@ }, { "data": { - "image/png": "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\n", + "image/png": "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\n", "text/plain": [ - "<Figure size 864x482.4 with 6 Axes>" + "<Figure size 864x169.2 with 6 Axes>" ] }, "metadata": {}, @@ -150,7 +155,7 @@ " ooo.plot_images(x_train.reshape(-1,img_lx,img_ly,img_lz), y_train, range(6), columns=3, x_size=4, y_size=3)\n", " ooo.plot_images(x_train.reshape(-1,img_lx,img_ly,img_lz), y_train, range(36), columns=12, x_size=1, y_size=1)\n", "else:\n", - " ooo.plot_images(x_train.reshape(-1,img_lx,img_ly), y_train, range(6), columns=3, x_size=4, y_size=3)\n", + " ooo.plot_images(x_train.reshape(-1,img_lx,img_ly), y_train, range(6), columns=6, x_size=2, y_size=2)\n", " ooo.plot_images(x_train.reshape(-1,img_lx,img_ly), y_train, range(36), columns=12, x_size=1, y_size=1)" ] }, @@ -163,7 +168,7 @@ }, { "cell_type": "code", - "execution_count": 21, + "execution_count": 5, "metadata": {}, "outputs": [], "source": [ @@ -174,34 +179,34 @@ }, { "cell_type": "code", - "execution_count": 26, + "execution_count": 6, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ - "Model: \"sequential_4\"\n", + "Model: \"sequential\"\n", "_________________________________________________________________\n", "Layer (type) Output Shape Param # \n", "=================================================================\n", - "conv2d_6 (Conv2D) (None, 23, 23, 96) 960 \n", + "conv2d (Conv2D) (None, 23, 23, 96) 960 \n", "_________________________________________________________________\n", - "max_pooling2d_6 (MaxPooling2 (None, 11, 11, 96) 0 \n", + "max_pooling2d (MaxPooling2D) (None, 11, 11, 96) 0 \n", "_________________________________________________________________\n", - "conv2d_7 (Conv2D) (None, 9, 9, 192) 166080 \n", + "conv2d_1 (Conv2D) (None, 9, 9, 192) 166080 \n", "_________________________________________________________________\n", - "max_pooling2d_7 (MaxPooling2 (None, 4, 4, 192) 0 \n", + "max_pooling2d_1 (MaxPooling2 (None, 4, 4, 192) 0 \n", "_________________________________________________________________\n", - "flatten_3 (Flatten) (None, 3072) 0 \n", + "flatten (Flatten) (None, 3072) 0 \n", "_________________________________________________________________\n", - "dense_12 (Dense) (None, 3072) 9440256 \n", + "dense (Dense) (None, 3072) 9440256 \n", "_________________________________________________________________\n", - "dense_13 (Dense) (None, 500) 1536500 \n", + "dense_1 (Dense) (None, 500) 1536500 \n", "_________________________________________________________________\n", - "dense_14 (Dense) (None, 500) 250500 \n", + "dense_2 (Dense) (None, 500) 250500 \n", "_________________________________________________________________\n", - "dense_15 (Dense) (None, 43) 21543 \n", + "dense_3 (Dense) (None, 43) 21543 \n", "=================================================================\n", "Total params: 11,415,839\n", "Trainable params: 11,415,839\n", @@ -237,7 +242,7 @@ }, { "cell_type": "code", - "execution_count": 27, + "execution_count": 8, "metadata": {}, "outputs": [ { @@ -246,17 +251,17 @@ "text": [ "Train on 39209 samples, validate on 12630 samples\n", "Epoch 1/5\n", - "39209/39209 [==============================] - 56s 1ms/sample - loss: 0.8898 - accuracy: 0.7450 - val_loss: 0.4579 - val_accuracy: 0.8946\n", + "39209/39209 [==============================] - 56s 1ms/sample - loss: 0.2945 - accuracy: 0.9090 - val_loss: 0.3993 - val_accuracy: 0.9068\n", "Epoch 2/5\n", - "39209/39209 [==============================] - 60s 2ms/sample - loss: 0.0993 - accuracy: 0.9720 - val_loss: 0.3929 - val_accuracy: 0.9124\n", + "39209/39209 [==============================] - 57s 1ms/sample - loss: 0.0701 - accuracy: 0.9795 - val_loss: 0.4959 - val_accuracy: 0.9074\n", "Epoch 3/5\n", - "39209/39209 [==============================] - 60s 2ms/sample - loss: 0.0622 - accuracy: 0.9821 - val_loss: 0.3377 - val_accuracy: 0.9279\n", + "39209/39209 [==============================] - 62s 2ms/sample - loss: 0.0549 - accuracy: 0.9840 - val_loss: 0.3177 - val_accuracy: 0.9311\n", "Epoch 4/5\n", - "39209/39209 [==============================] - 62s 2ms/sample - loss: 0.0467 - accuracy: 0.9863 - val_loss: 0.2480 - val_accuracy: 0.9462\n", + "39209/39209 [==============================] - 75s 2ms/sample - loss: 0.0370 - accuracy: 0.9891 - val_loss: 0.2901 - val_accuracy: 0.9417\n", "Epoch 5/5\n", - "39209/39209 [==============================] - 65s 2ms/sample - loss: 0.0314 - accuracy: 0.9909 - val_loss: 0.2265 - val_accuracy: 0.9461\n", - "CPU times: user 28min 6s, sys: 7min 30s, total: 35min 37s\n", - "Wall time: 5min 3s\n" + "39209/39209 [==============================] - 61s 2ms/sample - loss: 0.0367 - accuracy: 0.9888 - val_loss: 0.2629 - val_accuracy: 0.9382\n", + "CPU times: user 27min 34s, sys: 5min 39s, total: 33min 14s\n", + "Wall time: 5min 10s\n" ] } ], -- GitLab