diff --git a/notebooks/Block_5/Jupyter Notebook Block 5 - Object Detection and Segmentation.ipynb b/notebooks/Block_5/Jupyter Notebook Block 5 - Object Detection and Segmentation.ipynb index 8f8f6b84c47fe19560e937a93d7737c443a8023a..6315722a0aef24b727b2686257d65699ba46b57c 100644 --- a/notebooks/Block_5/Jupyter Notebook Block 5 - Object Detection and Segmentation.ipynb +++ b/notebooks/Block_5/Jupyter Notebook Block 5 - Object Detection and Segmentation.ipynb @@ -550,7 +550,7 @@ }, { "cell_type": "code", - "execution_count": 5, + "execution_count": 16, "metadata": {}, "outputs": [], "source": [ @@ -569,12 +569,13 @@ "from tensorflow.keras.models import Sequential\n", "from tensorflow.keras.layers import Conv2D, MaxPooling2D\n", "from tensorflow.keras.layers import Activation, Dropout, Flatten, Dense\n", - "from tensorflow.keras.callbacks import TensorBoard " + "from tensorflow.keras.callbacks import TensorBoard \n", + "from tensorflow.keras import layers" ] }, { "cell_type": "code", - "execution_count": 6, + "execution_count": 17, "metadata": {}, "outputs": [ { @@ -584,7 +585,7 @@ "<IPython.core.display.Image object>" ] }, - "execution_count": 6, + "execution_count": 17, "metadata": {}, "output_type": "execute_result" } @@ -856,7 +857,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 11, "metadata": {}, "outputs": [], "source": [ @@ -887,9 +888,20 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 12, "metadata": {}, - "outputs": [], + "outputs": [ + { + "data": { + "text/plain": [ + "(480, 4, 4, 512)" + ] + }, + "execution_count": 12, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "train_features.shape" ] @@ -903,18 +915,38 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 13, "metadata": {}, - "outputs": [], + "outputs": [ + { + "data": { + "text/plain": [ + "(480, 8)" + ] + }, + "execution_count": 13, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "train_labels.shape" ] }, { "cell_type": "code", - "execution_count": null, + "execution_count": 14, "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "(80, 4, 4, 512)\n", + "(80, 8)\n" + ] + } + ], "source": [ "print(val_features.shape)\n", "print(val_labels.shape)" @@ -922,7 +954,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 18, "metadata": {}, "outputs": [], "source": [ @@ -939,18 +971,111 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 19, "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Model: \"model\"\n", + "_________________________________________________________________\n", + " Layer (type) Output Shape Param # \n", + "=================================================================\n", + " input_3 (InputLayer) [(None, 4, 4, 512)] 0 \n", + " \n", + " flatten (Flatten) (None, 8192) 0 \n", + " \n", + " dense (Dense) (None, 256) 2097408 \n", + " \n", + " dropout (Dropout) (None, 256) 0 \n", + " \n", + " dense_1 (Dense) (None, 8) 2056 \n", + " \n", + "=================================================================\n", + "Total params: 2,099,464\n", + "Trainable params: 2,099,464\n", + "Non-trainable params: 0\n", + "_________________________________________________________________\n" + ] + } + ], "source": [ "model.summary()" ] }, { "cell_type": "code", - "execution_count": null, + "execution_count": 20, "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Epoch 1/30\n", + "15/15 [==============================] - 2s 121ms/step - loss: 45.5870 - accuracy: 0.3187 - val_loss: 24.1916 - val_accuracy: 0.3875\n", + "Epoch 2/30\n", + "15/15 [==============================] - 1s 91ms/step - loss: 15.6600 - accuracy: 0.6167 - val_loss: 18.9074 - val_accuracy: 0.4750\n", + "Epoch 3/30\n", + "15/15 [==============================] - 1s 90ms/step - loss: 10.6316 - accuracy: 0.7083 - val_loss: 19.3461 - val_accuracy: 0.5375\n", + "Epoch 4/30\n", + "15/15 [==============================] - 1s 104ms/step - loss: 10.1559 - accuracy: 0.7333 - val_loss: 29.1282 - val_accuracy: 0.5000\n", + "Epoch 5/30\n", + "15/15 [==============================] - 1s 88ms/step - loss: 6.2820 - accuracy: 0.7917 - val_loss: 26.4884 - val_accuracy: 0.5500\n", + "Epoch 6/30\n", + "15/15 [==============================] - 1s 80ms/step - loss: 4.9714 - accuracy: 0.8542 - val_loss: 23.7884 - val_accuracy: 0.5250\n", + "Epoch 7/30\n", + "15/15 [==============================] - 1s 89ms/step - loss: 4.7241 - accuracy: 0.8542 - val_loss: 25.3600 - val_accuracy: 0.5375\n", + "Epoch 8/30\n", + "15/15 [==============================] - 1s 98ms/step - loss: 4.3037 - accuracy: 0.8729 - val_loss: 28.7259 - val_accuracy: 0.4875\n", + "Epoch 9/30\n", + "15/15 [==============================] - 1s 89ms/step - loss: 2.3747 - accuracy: 0.8979 - val_loss: 30.9324 - val_accuracy: 0.4875\n", + "Epoch 10/30\n", + "15/15 [==============================] - 1s 89ms/step - loss: 2.8623 - accuracy: 0.9000 - val_loss: 28.1495 - val_accuracy: 0.5000\n", + "Epoch 11/30\n", + "15/15 [==============================] - 1s 95ms/step - loss: 2.3595 - accuracy: 0.9187 - val_loss: 35.2087 - val_accuracy: 0.4375\n", + "Epoch 12/30\n", + "15/15 [==============================] - 1s 84ms/step - loss: 2.6335 - accuracy: 0.9104 - val_loss: 30.2336 - val_accuracy: 0.5000\n", + "Epoch 13/30\n", + "15/15 [==============================] - 1s 89ms/step - loss: 3.3222 - accuracy: 0.9083 - val_loss: 32.3224 - val_accuracy: 0.4875\n", + "Epoch 14/30\n", + "15/15 [==============================] - 1s 100ms/step - loss: 1.9744 - accuracy: 0.9312 - val_loss: 29.7901 - val_accuracy: 0.5125\n", + "Epoch 15/30\n", + "15/15 [==============================] - 1s 83ms/step - loss: 2.5093 - accuracy: 0.9396 - val_loss: 28.1908 - val_accuracy: 0.5625\n", + "Epoch 16/30\n", + "15/15 [==============================] - 1s 90ms/step - loss: 2.2067 - accuracy: 0.9271 - val_loss: 26.1439 - val_accuracy: 0.5375\n", + "Epoch 17/30\n", + "15/15 [==============================] - 1s 89ms/step - loss: 1.4664 - accuracy: 0.9479 - val_loss: 27.0301 - val_accuracy: 0.5500\n", + "Epoch 18/30\n", + "15/15 [==============================] - 1s 96ms/step - loss: 1.9414 - accuracy: 0.9333 - val_loss: 28.5395 - val_accuracy: 0.5375\n", + "Epoch 19/30\n", + "15/15 [==============================] - 1s 85ms/step - loss: 0.8723 - accuracy: 0.9583 - val_loss: 32.3182 - val_accuracy: 0.5125\n", + "Epoch 20/30\n", + "15/15 [==============================] - 1s 88ms/step - loss: 0.7459 - accuracy: 0.9604 - val_loss: 34.9039 - val_accuracy: 0.4250\n", + "Epoch 21/30\n", + "15/15 [==============================] - 1s 92ms/step - loss: 1.0338 - accuracy: 0.9583 - val_loss: 32.4511 - val_accuracy: 0.5125\n", + "Epoch 22/30\n", + "15/15 [==============================] - 1s 85ms/step - loss: 1.3923 - accuracy: 0.9458 - val_loss: 35.8044 - val_accuracy: 0.4750\n", + "Epoch 23/30\n", + "15/15 [==============================] - 1s 88ms/step - loss: 0.8510 - accuracy: 0.9667 - val_loss: 41.1432 - val_accuracy: 0.5000\n", + "Epoch 24/30\n", + "15/15 [==============================] - 1s 101ms/step - loss: 1.3980 - accuracy: 0.9563 - val_loss: 37.2629 - val_accuracy: 0.4875\n", + "Epoch 25/30\n", + "15/15 [==============================] - 1s 92ms/step - loss: 0.8034 - accuracy: 0.9708 - val_loss: 36.0811 - val_accuracy: 0.4750\n", + "Epoch 26/30\n", + "15/15 [==============================] - 1s 86ms/step - loss: 1.5871 - accuracy: 0.9667 - val_loss: 34.1562 - val_accuracy: 0.5625\n", + "Epoch 27/30\n", + "15/15 [==============================] - 1s 104ms/step - loss: 1.5226 - accuracy: 0.9521 - val_loss: 35.3834 - val_accuracy: 0.5000\n", + "Epoch 28/30\n", + "15/15 [==============================] - 1s 91ms/step - loss: 1.0952 - accuracy: 0.9625 - val_loss: 37.5495 - val_accuracy: 0.4750\n", + "Epoch 29/30\n", + "15/15 [==============================] - 1s 83ms/step - loss: 1.4550 - accuracy: 0.9417 - val_loss: 37.8654 - val_accuracy: 0.4625\n", + "Epoch 30/30\n", + "15/15 [==============================] - 1s 101ms/step - loss: 0.8663 - accuracy: 0.9750 - val_loss: 33.1618 - val_accuracy: 0.5750\n" + ] + } + ], "source": [ "model.compile(loss=\"categorical_crossentropy\",\n", " optimizer=\"rmsprop\",\n", @@ -997,9 +1122,34 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 21, "metadata": {}, - "outputs": [], + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "<Figure size 432x288 with 1 Axes>" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "<Figure size 432x288 with 1 Axes>" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], "source": [ "plt.plot(history.history['accuracy'])\n", "plt.plot(history.history['val_accuracy'])\n", @@ -1019,18 +1169,36 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 23, "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "3/3 [==============================] - 0s 9ms/step - loss: 33.1618 - accuracy: 0.5750\n" + ] + }, + { + "data": { + "text/plain": [ + "[33.161827087402344, 0.574999988079071]" + ] + }, + "execution_count": 23, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ - "model.evaluate(validation_dataset)" + "model.evaluate(val_features, val_labels)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ - "We reach a validation accuracy of about 46% — much worse than we achieved in the\n", + "We reach a validation accuracy of about 57% — much worse than we achieved in the\n", "previous section with the small model trained from scratch. \n", "\n", "The learning curves indicate that we’re overfitting almost from the start—\n", @@ -1096,7 +1264,7 @@ }, { "cell_type": "code", - "execution_count": 39, + "execution_count": 35, "metadata": {}, "outputs": [], "source": [ @@ -1120,7 +1288,7 @@ }, { "cell_type": "code", - "execution_count": 40, + "execution_count": 36, "metadata": {}, "outputs": [], "source": [ @@ -1129,7 +1297,7 @@ }, { "cell_type": "code", - "execution_count": 41, + "execution_count": 37, "metadata": {}, "outputs": [ { @@ -1146,7 +1314,7 @@ }, { "cell_type": "code", - "execution_count": 42, + "execution_count": 38, "metadata": {}, "outputs": [], "source": [ @@ -1155,7 +1323,7 @@ }, { "cell_type": "code", - "execution_count": 43, + "execution_count": 39, "metadata": {}, "outputs": [ { @@ -1192,7 +1360,7 @@ }, { "cell_type": "code", - "execution_count": 44, + "execution_count": 40, "metadata": {}, "outputs": [], "source": [ @@ -1207,7 +1375,7 @@ }, { "cell_type": "code", - "execution_count": 45, + "execution_count": 41, "metadata": {}, "outputs": [], "source": [ @@ -1250,7 +1418,7 @@ }, { "cell_type": "code", - "execution_count": 46, + "execution_count": 42, "metadata": {}, "outputs": [], "source": [ @@ -1265,7 +1433,7 @@ }, { "cell_type": "code", - "execution_count": 47, + "execution_count": null, "metadata": {}, "outputs": [ { @@ -1273,105 +1441,33 @@ "output_type": "stream", "text": [ "Epoch 1/50\n", - "15/15 [==============================] - 170s 11s/step - loss: 40.4872 - accuracy: 0.3104 - val_loss: 22.2523 - val_accuracy: 0.4375\n", + "15/15 [==============================] - 169s 11s/step - loss: 81.2648 - accuracy: 0.5354 - val_loss: 96.7737 - val_accuracy: 0.1250\n", "Epoch 2/50\n", - "15/15 [==============================] - 163s 11s/step - loss: 16.3431 - accuracy: 0.5542 - val_loss: 23.0516 - val_accuracy: 0.4875\n", + "15/15 [==============================] - 166s 11s/step - loss: 35.0252 - accuracy: 0.6292 - val_loss: 102.6046 - val_accuracy: 0.2375\n", "Epoch 3/50\n", - "15/15 [==============================] - 162s 11s/step - loss: 16.4505 - accuracy: 0.6062 - val_loss: 30.8938 - val_accuracy: 0.4125\n", + "15/15 [==============================] - 167s 11s/step - loss: 37.1056 - accuracy: 0.5312 - val_loss: 103.8217 - val_accuracy: 0.2000\n", "Epoch 4/50\n", - "15/15 [==============================] - 165s 11s/step - loss: 14.6992 - accuracy: 0.6229 - val_loss: 21.7834 - val_accuracy: 0.5125\n", + "15/15 [==============================] - 168s 11s/step - loss: 26.6293 - accuracy: 0.6083 - val_loss: 94.3766 - val_accuracy: 0.2375\n", "Epoch 5/50\n", - "15/15 [==============================] - 167s 11s/step - loss: 11.4793 - accuracy: 0.6729 - val_loss: 27.7946 - val_accuracy: 0.4500\n", + "15/15 [==============================] - 165s 11s/step - loss: 19.5419 - accuracy: 0.6479 - val_loss: 83.0323 - val_accuracy: 0.2500\n", "Epoch 6/50\n", - "15/15 [==============================] - 168s 11s/step - loss: 12.4257 - accuracy: 0.6729 - val_loss: 25.0661 - val_accuracy: 0.4125\n", + "15/15 [==============================] - 162s 11s/step - loss: 19.0512 - accuracy: 0.6625 - val_loss: 76.1191 - val_accuracy: 0.3000\n", "Epoch 7/50\n", - "15/15 [==============================] - 164s 11s/step - loss: 8.7416 - accuracy: 0.7250 - val_loss: 26.6285 - val_accuracy: 0.5125\n", + "15/15 [==============================] - 168s 11s/step - loss: 17.0602 - accuracy: 0.6771 - val_loss: 70.0092 - val_accuracy: 0.3750\n", "Epoch 8/50\n", - "15/15 [==============================] - 162s 11s/step - loss: 8.3796 - accuracy: 0.7250 - val_loss: 24.7431 - val_accuracy: 0.4375\n", + "15/15 [==============================] - 168s 11s/step - loss: 20.1183 - accuracy: 0.6687 - val_loss: 78.0569 - val_accuracy: 0.3000\n", "Epoch 9/50\n", - "15/15 [==============================] - 163s 11s/step - loss: 8.1311 - accuracy: 0.7417 - val_loss: 20.8759 - val_accuracy: 0.5000\n", + "15/15 [==============================] - 161s 11s/step - loss: 15.5537 - accuracy: 0.6750 - val_loss: 71.6261 - val_accuracy: 0.3625\n", "Epoch 10/50\n", - "15/15 [==============================] - 161s 11s/step - loss: 8.5853 - accuracy: 0.7604 - val_loss: 27.0080 - val_accuracy: 0.5250\n", + "15/15 [==============================] - 164s 11s/step - loss: 13.9609 - accuracy: 0.7333 - val_loss: 83.8828 - val_accuracy: 0.3125\n", "Epoch 11/50\n", - "15/15 [==============================] - 161s 11s/step - loss: 7.2803 - accuracy: 0.7750 - val_loss: 25.0368 - val_accuracy: 0.4875\n", + "15/15 [==============================] - 160s 11s/step - loss: 15.3212 - accuracy: 0.7125 - val_loss: 79.7747 - val_accuracy: 0.3250\n", "Epoch 12/50\n", - "15/15 [==============================] - 161s 11s/step - loss: 8.3474 - accuracy: 0.7708 - val_loss: 24.2293 - val_accuracy: 0.5000\n", + "15/15 [==============================] - 167s 11s/step - loss: 16.1321 - accuracy: 0.7021 - val_loss: 80.1300 - val_accuracy: 0.3125\n", "Epoch 13/50\n", - "15/15 [==============================] - 163s 11s/step - loss: 7.2649 - accuracy: 0.7937 - val_loss: 27.9647 - val_accuracy: 0.4875\n", + "15/15 [==============================] - 166s 11s/step - loss: 17.3188 - accuracy: 0.6896 - val_loss: 72.9308 - val_accuracy: 0.3375\n", "Epoch 14/50\n", - "15/15 [==============================] - 161s 11s/step - loss: 5.6787 - accuracy: 0.8000 - val_loss: 25.7642 - val_accuracy: 0.5625\n", - "Epoch 15/50\n", - "15/15 [==============================] - 161s 11s/step - loss: 9.5175 - accuracy: 0.7750 - val_loss: 25.2030 - val_accuracy: 0.5875\n", - "Epoch 16/50\n", - "15/15 [==============================] - 159s 11s/step - loss: 5.8167 - accuracy: 0.8125 - val_loss: 27.7553 - val_accuracy: 0.4500\n", - "Epoch 17/50\n", - "15/15 [==============================] - 160s 11s/step - loss: 5.7371 - accuracy: 0.8375 - val_loss: 33.3951 - val_accuracy: 0.4875\n", - "Epoch 18/50\n", - "15/15 [==============================] - 162s 11s/step - loss: 5.5106 - accuracy: 0.8062 - val_loss: 24.9338 - val_accuracy: 0.5250\n", - "Epoch 19/50\n", - "15/15 [==============================] - 160s 11s/step - loss: 5.6374 - accuracy: 0.8208 - val_loss: 31.7434 - val_accuracy: 0.5375\n", - "Epoch 20/50\n", - "15/15 [==============================] - 181s 12s/step - loss: 5.2847 - accuracy: 0.8500 - val_loss: 27.8406 - val_accuracy: 0.5250\n", - "Epoch 21/50\n", - "15/15 [==============================] - 160s 11s/step - loss: 3.9255 - accuracy: 0.8604 - val_loss: 24.6560 - val_accuracy: 0.5500\n", - "Epoch 22/50\n", - "15/15 [==============================] - 162s 11s/step - loss: 4.5439 - accuracy: 0.8667 - val_loss: 28.7081 - val_accuracy: 0.4875\n", - "Epoch 23/50\n", - "15/15 [==============================] - 157s 10s/step - loss: 5.1945 - accuracy: 0.8333 - val_loss: 28.1471 - val_accuracy: 0.5250\n", - "Epoch 24/50\n", - "15/15 [==============================] - 157s 11s/step - loss: 5.4685 - accuracy: 0.8292 - val_loss: 27.2732 - val_accuracy: 0.4875\n", - "Epoch 25/50\n", - "15/15 [==============================] - 156s 10s/step - loss: 4.9645 - accuracy: 0.8458 - val_loss: 28.9958 - val_accuracy: 0.4625\n", - "Epoch 26/50\n", - "15/15 [==============================] - 158s 11s/step - loss: 4.2419 - accuracy: 0.8604 - val_loss: 31.0298 - val_accuracy: 0.5250\n", - "Epoch 27/50\n", - "15/15 [==============================] - 177s 12s/step - loss: 4.6601 - accuracy: 0.8667 - val_loss: 35.1135 - val_accuracy: 0.5000\n", - "Epoch 28/50\n", - "15/15 [==============================] - 158s 11s/step - loss: 4.3568 - accuracy: 0.8729 - val_loss: 35.3589 - val_accuracy: 0.4750\n", - "Epoch 29/50\n", - "15/15 [==============================] - 182s 12s/step - loss: 4.6585 - accuracy: 0.8479 - val_loss: 39.2265 - val_accuracy: 0.4500\n", - "Epoch 30/50\n", - "15/15 [==============================] - 165s 11s/step - loss: 4.8581 - accuracy: 0.8583 - val_loss: 30.4833 - val_accuracy: 0.5375\n", - "Epoch 31/50\n", - "15/15 [==============================] - 165s 11s/step - loss: 3.3673 - accuracy: 0.8833 - val_loss: 31.5158 - val_accuracy: 0.5125\n", - "Epoch 32/50\n", - "15/15 [==============================] - 160s 11s/step - loss: 5.6675 - accuracy: 0.8625 - val_loss: 29.5487 - val_accuracy: 0.5375\n", - "Epoch 33/50\n", - "15/15 [==============================] - 157s 10s/step - loss: 3.5243 - accuracy: 0.8771 - val_loss: 29.5125 - val_accuracy: 0.5500\n", - "Epoch 34/50\n", - "15/15 [==============================] - 158s 11s/step - loss: 3.1388 - accuracy: 0.8833 - val_loss: 31.3419 - val_accuracy: 0.5125\n", - "Epoch 35/50\n", - "15/15 [==============================] - 164s 11s/step - loss: 4.4508 - accuracy: 0.8771 - val_loss: 28.2114 - val_accuracy: 0.5375\n", - "Epoch 36/50\n", - "15/15 [==============================] - 159s 11s/step - loss: 3.7561 - accuracy: 0.8667 - val_loss: 27.7479 - val_accuracy: 0.5250\n", - "Epoch 37/50\n", - "15/15 [==============================] - 160s 11s/step - loss: 2.8535 - accuracy: 0.8958 - val_loss: 30.9036 - val_accuracy: 0.5125\n", - "Epoch 38/50\n", - "15/15 [==============================] - 158s 11s/step - loss: 2.7719 - accuracy: 0.8896 - val_loss: 28.7516 - val_accuracy: 0.5500\n", - "Epoch 39/50\n", - "15/15 [==============================] - 162s 11s/step - loss: 4.3758 - accuracy: 0.8562 - val_loss: 30.6686 - val_accuracy: 0.5500\n", - "Epoch 40/50\n", - "15/15 [==============================] - 182s 12s/step - loss: 3.4704 - accuracy: 0.8750 - val_loss: 26.9565 - val_accuracy: 0.5750\n", - "Epoch 41/50\n", - "15/15 [==============================] - 169s 11s/step - loss: 3.2676 - accuracy: 0.9042 - val_loss: 33.6229 - val_accuracy: 0.5000\n", - "Epoch 42/50\n", - "15/15 [==============================] - 167s 11s/step - loss: 3.6569 - accuracy: 0.8792 - val_loss: 30.1333 - val_accuracy: 0.5250\n", - "Epoch 43/50\n", - "15/15 [==============================] - 164s 11s/step - loss: 3.4009 - accuracy: 0.9062 - val_loss: 30.1136 - val_accuracy: 0.5625\n", - "Epoch 44/50\n", - "15/15 [==============================] - 157s 11s/step - loss: 3.0915 - accuracy: 0.9083 - val_loss: 33.6270 - val_accuracy: 0.5500\n", - "Epoch 45/50\n", - "15/15 [==============================] - 177s 12s/step - loss: 3.6787 - accuracy: 0.8562 - val_loss: 32.5366 - val_accuracy: 0.5625\n", - "Epoch 46/50\n", - "15/15 [==============================] - 160s 11s/step - loss: 2.6454 - accuracy: 0.9042 - val_loss: 35.2887 - val_accuracy: 0.5375\n", - "Epoch 47/50\n", - "15/15 [==============================] - 165s 11s/step - loss: 4.6315 - accuracy: 0.8771 - val_loss: 26.3066 - val_accuracy: 0.5750\n", - "Epoch 48/50\n", - "15/15 [==============================] - 179s 12s/step - loss: 3.1069 - accuracy: 0.9021 - val_loss: 27.8295 - val_accuracy: 0.6000\n", - "Epoch 49/50\n", - "15/15 [==============================] - 163s 11s/step - loss: 2.7718 - accuracy: 0.8854 - val_loss: 35.5000 - val_accuracy: 0.5125\n", - "Epoch 50/50\n", - "15/15 [==============================] - 159s 11s/step - loss: 3.1988 - accuracy: 0.8938 - val_loss: 33.8036 - val_accuracy: 0.5625\n" + "15/15 [==============================] - ETA: 0s - loss: 13.4744 - accuracy: 0.7479" ] } ], @@ -1392,34 +1488,9 @@ }, { "cell_type": "code", - "execution_count": 48, + "execution_count": null, "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "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\n", - "text/plain": [ - "<Figure size 432x288 with 1 Axes>" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - }, - { - "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAX4AAAEWCAYAAABhffzLAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjMuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/d3fzzAAAACXBIWXMAAAsTAAALEwEAmpwYAABNoUlEQVR4nO2deXiU1fXHPyf7BmQhJJAAYd83QQRxQREF3HDBpWptte6tS7Wt9tdqF21ttWq11q1q1brjrqggoqggyhp2ArJmTyAhIXtyf3/cmZBlJpksk0ky5/M888y8+3mTme9777nnniPGGBRFURT/IcDXBiiKoigdiwq/oiiKn6HCryiK4meo8CuKovgZKvyKoih+hgq/oiiKn6HCryhNICL/FZF7Pdx3j4ic1tbzKIq3UeFXFEXxM1T4FUVR/AwVfqXL43Cx/EpEUkXkiIg8KyIJIvKxiBSJyGciElNn/3NEZLOIFIjIFyIyqs62SSKy1nHc60BYg2udJSLrHceuEJHxrbT5GhHZKSIHReR9EennWC8i8rCI5IjIYRHZKCJjHdvmicgWh23pInJHq/5git+jwq90Fy4AZgPDgbOBj4HfAvHY7/nNACIyHHgVuNWxbRHwgYiEiEgI8C7wEhALvOk4L45jJwHPAdcBccBTwPsiEtoSQ0XkVOCvwEVAX2Av8Jpj8+nASY776OXYJ9+x7VngOmNMD2As8HlLrqsoTlT4le7CY8aYbGNMOvAVsMoYs84YUwa8A0xy7Hcx8JExZokxphJ4EAgHjgemAcHAI8aYSmPMQuD7Ote4FnjKGLPKGFNtjHkBKHcc1xIuA54zxqw1xpQDdwHTRSQFqAR6ACMBMcZsNcZkOo6rBEaLSE9jzCFjzNoWXldRABV+pfuQXedzqYvlKMfnftgWNgDGmBpgP5Dk2JZu6mcu3Fvn80Dgdoebp0BECoD+juNaQkMbirGt+iRjzOfAv4DHgRwReVpEejp2vQCYB+wVkS9FZHoLr6sogAq/4n9kYAUcsD51rHinA5lAkmOdkwF1Pu8H7jPGRNd5RRhjXm2jDZFY11E6gDHmUWPMZGA01uXzK8f6740x5wJ9sC6pN1p4XUUBVPgV/+MN4EwRmSUiwcDtWHfNCmAlUAXcLCLBInI+MLXOsc8A14vIcY5B2EgROVNEerTQhleBn4rIRMf4wF+wrqk9InKs4/zBwBGgDKhxjEFcJiK9HC6qw0BNG/4Oih+jwq/4FcaY7cDlwGNAHnYg+GxjTIUxpgI4H/gJcBA7HvB2nWNXA9dgXTGHgJ2OfVtqw2fA74G3sL2MIcAljs09sQ+YQ1h3UD7wgGPbFcAeETkMXI8dK1CUFiNaiEVRFMW/0Ba/oiiKn6HCryiK4meo8CuKovgZKvyKoih+RpCvDfCE3r17m5SUFF+boSiK0qVYs2ZNnjEmvuH6LiH8KSkprF692tdmKIqidClEZK+r9erqURRF8TNU+BVFUfwMFX5FURQ/o0v4+BVFUVpKZWUlBw4coKyszNemeJ2wsDCSk5MJDg72aH8VfkVRuiUHDhygR48epKSkUD/havfCGEN+fj4HDhxg0KBBHh2jrh5FUbolZWVlxMXFdWvRBxAR4uLiWtSzUeFXFKXb0t1F30lL77NbC//Srdk88cUuX5uhKIrSqfC68ItIoIisE5EPHcuDRGSViOwUkdcdBa69wvIduTz5pQq/oigdT0FBAf/+979bfNy8efMoKChof4Pq0BEt/luArXWW/wY8bIwZii02cbW3LhwZGsSR8iq05oCiKB2NO+Gvqqpq8rhFixYRHR3tJassXhV+EUkGzgT+41gW4FRgoWOXF4D53rp+ZGgQVTWGimqtUKcoSsdy5513smvXLiZOnMixxx7LiSeeyDnnnMPo0aMBmD9/PpMnT2bMmDE8/fTTtcelpKSQl5fHnj17GDVqFNdccw1jxozh9NNPp7S0tF1s83Y45yPArwFnTdI4oMAY43zkHQCSXB0oItcC1wIMGDDA1S7NEhkSCMCR8mpCgwJbdQ5FUbo+f/xgM1syDrfrOUf368k9Z49xu/3+++9n06ZNrF+/ni+++IIzzzyTTZs21YZcPvfcc8TGxlJaWsqxxx7LBRdcQFxcXL1zpKWl8eqrr/LMM89w0UUX8dZbb3H55Ze32XavtfhF5CwgxxizpjXHG2OeNsZMMcZMiY9vlFzOIyJD7XPtSHnTXStFURRvM3Xq1Hpx9o8++igTJkxg2rRp7N+/n7S0tEbHDBo0iIkTJwIwefJk9uzZ0y62eLPFPwM4R0TmAWHYItL/BKJFJMjR6k8G0r1lQK3wV6jwK4o/01TLvKOIjIys/fzFF1/w2WefsXLlSiIiIpg5c6bLOPzQ0NDaz4GBge3m6vFai98Yc5cxJtkYkwJcAnxujLkMWAZc6NjtSuA9b9mgLX6lS/L1I/DBLb62QmkjPXr0oKioyOW2wsJCYmJiiIiIYNu2bXz77bcdapsvUjb8BnhNRO4F1gHPeutCUaFHffyK0iWoqYFvn4DKUjjrEfCTCUjdkbi4OGbMmMHYsWMJDw8nISGhdtucOXN48sknGTVqFCNGjGDatGkdaluHCL8x5gvgC8fnH4CpHXHdiBBt8StdjIx1UJxlP5cegohY39qjtIlXXnnF5frQ0FA+/vhjl9ucfvzevXuzadOm2vV33HFHu9nVrWfuRtX6+LXFr3QRti86+vngbt/ZoXRrurXwR9SGc2qLX+kibF8EPfraz4dU+BXv0K2F3zm4W6zCr3QFDu6GnC1w7M/ssgq/4iW6tfCHBgUQFCCUaDin0hVwunnGXQhRiXBwj0/NUbov3Vr4RYSIkECN6lG6Bts/hj5jICbFvrTFr3iJbi38YAd41cevdHpKDsLeFTBirl2OHaSDu4rX6PbCHxEapDN3lc5P2mIw1TBynl2OGQRFGTaeX/ELoqKiAMjIyODCCy90uc/MmTNZvXp1m6/V7YU/MjSIYnX1KJ2dbR/ZaJ6+k+xyrCOnS8E+39mk+IR+/fqxcOHC5ndsA91e+KNCAylRV4/Smaksg51LYfgcCHD8JGMcwq/uni7LnXfeyeOPP167/Ic//IF7772XWbNmccwxxzBu3Djee69xxpo9e/YwduxYAEpLS7nkkksYNWoU5513XpdJy+xzIkKCyC8u8bUZiuKePV9B5REYeebRdTEp9l0HeNuHj++ErI3te87EcTD3frebL774Ym699VZuuukmAN544w0+/fRTbr75Znr27EleXh7Tpk3jnHPOcVsz94knniAiIoKtW7eSmprKMccc0y6md3vhj1Ifv9LZ2fYRhETBoJOOrovsbddpi7/LMmnSJHJycsjIyCA3N5eYmBgSExO57bbbWL58OQEBAaSnp5OdnU1iYqLLcyxfvpybb74ZgPHjxzN+/Ph2sa3bC39ESCAl6uNXOis1NbDjExg6C4KOpuBFxLp7tMXfPjTRMvcmCxYsYOHChWRlZXHxxRfz8ssvk5uby5o1awgODiYlJcVlOmZv4wc+/iCduat0XjLXQVEmjJjXeFtsirb4uzgXX3wxr732GgsXLmTBggUUFhbSp08fgoODWbZsGXv37m3y+JNOOqk20dumTZtITU1tF7u6vfBHhgZRXlVDldbdVToj2xaBBMKw0xtvixkEBXttr0DpkowZM4aioiKSkpLo27cvl112GatXr2bcuHG8+OKLjBw5ssnjb7jhBoqLixk1ahR33303kydPbhe7/MLVAzZDZ6/wbv+cU7oa2xfBwONdp1+OHQTVFTaev1dyx9umtAsbNx4dVO7duzcrV650uV9xcTFgi6070zGHh4fz2muvtbtN3V4Jo7QKl9JZcSZlc87WbYgzskfdPUo70+2FP8Ih/JqoTel0bHcU4nDl34ejsfw6wNu9qa6C0gIwpsMu6TVXj4iEAcuBUMd1Fhpj7hGR/wInA4WOXX9ijFnvLTuc5Rd19q7SKSgvgswNkL4W1jwPfUYfnaXbkF79ISBIW/xtwBjjNka+zVQcgaAwCAhs23lK8uwAf/QAiIhr1SlMCx8a3vTxlwOnGmOKRSQY+FpEnLXGfmWM8e6cZAeRjvKLOntX8RnrX4XdX1qxz9sBOH6kvQbAaXe5Py4wyIq/tvhbRVhYGPn5+cTFxbW/+FeW2v9lzySI6tO2c1WV2/fCA3buRt2wXg8wxpCfn09YWJjHx3hN+I19BBU7FoMdr47ryzjQYiyKT8neAu9eDxG9IXkKjD0f+h0D/SZBVHzzx8cOgkN7vG5mdyQ5OZkDBw6Qm5vb/icvOQgVxRBaAuH5bTtXUTZQAzXVcOAQRPax8zhaQFhYGMnJngcAeDWqR0QCgTXAUOBxY8wqEbkBuE9E7gaWAncaY8pdHHstcC3AgAEDWm1DZG3dXRV+xQekfWrfr/8KevZr+fExg2xPQWkxwcHBDBrkxo3WFo7kw0MnQ3U5DJkFV7zd+nMZA/efAeMXQP9p8PbP4JTfwcm/aj97XeDVwV1jTLUxZiKQDEwVkbHAXcBI4FggFviNm2OfNsZMMcZMiY/3oGXkhshQZ91d9fErPiBtCSSMa53og43sKSuA0kPtaZXSFtY8b0W/z5i298aKc6C8EHoPt+I/9kL48n5IX9MuprqjQ6J6jDEFwDJgjjEm01jKgeeBqd68ttPHr+GcSodTegj2fQvDXUzO8pRYzdLZqaiuhO+fhcEzYdhsmza7pg2Nyrwd9j1uqH0/80GISoC3r7WDx17Ca8IvIvEiEu34HA7MBraJSF/HOgHmA5u8ZQNAeHAgInYCl6J0KLuW2eIqrmbleoqGdHYutr5vJ9Qdd4PtjdVUwuGM1p8vP82+9x5u38NjYP4TkL8TFv++zea6w5st/r7AMhFJBb4HlhhjPgReFpGNwEagN3CvF20gIECICA7UFr/S8aQttj/k5GNbfw6dxNW5+PZJ+zAednqd1Nl7Wn++vDQIjrDRQU4GnwzTfw6rn4Udn7bFWrd4M6onFZjkYv2p3rqmOyK17q7S0dTUWP/+kFlti/MOjbJRHhrZ43vS18CB72DO/bZgTl3hH3Ri686ZtwPihhwtwOPk1N/bHuN7P4cbV9o03e1It5+5C86c/OrqUTqQjHV2Ys7wM9p+Lg3pdE11FXz2Rxv/3layt9hzVTRRtGnVUzbOfuKP7HKvZJAAm0ivteSlHXXz1CU4DC54xrqSMje0/vxu8AvhjwhVV4/PMQY2vQVVFb62pGNIWwwIDD2t7eeKSVFXjyuyNsDXD8HKx5vftzm++Is910vzXUdQFWXDprdh4mUQ1suuCwy24t/ah3JlqR0cdiX8AAlj4NZNtlZDO+MXwh8Zojn5fc6er2DhVbD9I19b0jGkfWp9+66ybraUmEFwOP3oDE/Fkr3Zvm9+t22pq8uLrFsuaYrtqT0/Dw5n1t9n9XO29X3cdfXXx6S0XvjzdwHmaESPK0KjWnfuZvAP4Q8N0iRtvubAavuev9O3dnQExTlWQNoSxlmX2EGAgUNtcCl0R7K32PeiDNj/bevPs/0TqCqD0++Fy960rfDnTncIM/aBu/pZO6AbN6T+sW0S/gYRPR2I3wi/TuDyMc4JKf7gskhbYt/bEsZZFw3pdE32JogfBUHh1g3TWja/DT36Qf/jbHz+lR/YGPrnzoCM9bD5HTiSC8dd3/jYmBS7rby48bbmyHMIf1Mtfi/hF8IfpT5+3+NMO3DwB9/a0RGkLYaoREhsn8LYtZO4dID3KMZYV0//qbZnteVdO9jbUkoLYOdnMGb+0ciapGPgqsU28+Z/z4Iv/mpb5UNcBCQ6I3taM8Cbt8Mm4QuJaPmxbcQvhD8iRMM5fcrhDNsdDwju/sJfXQm7PrezOtsrI2RkPARH+kdvyVOKs6H0oB0AHXO+bXXv/brl59n+sa1yNub8+ut7D4WrF0OvJPvAPe461//PtsTy56VB72EtP64d8Avhj3SEc9bUdHhyUAWOtvaHzbY/2NZ0i7sK+1dB+eH2CeN0IuLwJavw15LtmPCfMMa61IIjW+fu2fy2bXUnT2m8rWc/+OnHcNYjMOkK18fHtLI3Zoz7UM4OwD+E31F3t7RS/fw+IX2NLSgy+ly73J0FbMentmczeGb7njd2kLb46+KM6Okz2rpKRsy16RSqKz0/R8lB2zsbM9997ywiFqb81H2O/PAYCO3ZcuE/nAGVR7TF700ite6ub0lfAwljoc8ou9yd3T1pi23x9NAe7XteZ/RIW8IWuxPZW+yArDNcduwFNv7+hy89P8e2j6CmqrGbpyWIQMzAlkdc1SZnU+H3GrUF13X2bsdTU2NDG5MmH+0We9pyXf4grHjMe7a1N4f2Qu629nXzOIkdZFMBF2U2v68/kL3ZunmcDJ0Fob3sJEFP2fy2faD2a5RZpmVED2x5i98Z1qyuHu8REeLMya8t/g4nf6f1eSdNhrCedqDS0xb/98/CVw+1LlrDF6Qttu/tFcZZl6Z8yYUHYMk9tkCIP1BdCXnbIWH00XVBoTDyTNuK92Si25F82zsYc17bB+FjUmxUT0t6Y3k7IKQH9Ehs27VbiV8If5SWX/Qdzvj9pMn2PXawZ8JfeshGApUetImxugJpS6xAeyMuuzZ6pEFvKTMV/nMafPMILP6/tl9ny3vw+X1tP483yd9pI3ESxtZfP/Z8W9Rk59Lmz7H1fZsyuy1uHicxKXYCWHG258fk7bCRQ94qBN8MfiH8EQ7h19m7PiB9jW3ZOAexYgd75urJ2Xr08/ZF3rGtPakshd3LbWvfGz/m6AEggfX/dmlL4Pm5dv34i2HDq7B3ReuvUbAf3r0Rlv+9c4/DOAd267p6wA6oh8dYF05zbH4bYodA4ri229OayJ68nT5z84CfCH+Uo/xisSezd3cta1lkgNI06Wug38SjqYljBsHhA1Yom6Ju1Mb2j71qYruw7SOoKm2/NA0NqU0I5hD+75+FVy62KQR+9hmc9bANS/zo9tZ9f42BD28FU2MzTq5/pe027/ysbUVK3JG92UaJNRwYDQyGUefY70tT36/iHNjzte0htMdDuqWx/OXF9jfgo4ge8BPhd0b1lDTn6snebLPzbXnP+0b5A1XlkLXxqJsHbIsfmo+CyNlisyBOucp27Z3T2zsjFSXw2R9sbd3Bp3jvOrGDbP6Yxb+Hj35pM3/+ZBH07AshkTDnr/bv9t3TLT936utWqGfdY2eorn+1bSUFD2fAywtsCUHj4fyZqgooymp+v+zN0HsEBIU03jb2fKgoPjre4oot79kHXHu4eQCi+wPiufA7B3Z9FNEDfiL8ESEe+vid7gV/SCTWEWRtshkNXQl/c66EnK22mPWIuXa5M7t7vvknFO6HeX9vW9GV5ogZBJnrYcWjMOVquOSV+tkbR54FQ2fDsr82zi7ZFMU58MmdNlfN1Gtg0uW2RfrDF623dcOrVlz3fOV5Fal3roPHj4PKsqb3axjRU5eBJ9gAgqaieza/Yx8czvDithIUaitotVT4u6OrR0TCROQ7EdkgIptF5I+O9YNEZJWI7BSR10XExWO7fYmsjepppgXj/IdoTpT2oeHALtQpHt6E8Btj47T7jLLujcTxndfdU7DPDqyOvcDG73sTpz/69HvhzH9AYIMCeiL24VNd0bKB3kW/sknJznnMPrhGzLO+8vUvt85OY6yrqP9xdqB7ye+bj8xKW2L97mUF8MMy9/uVFtiHUt2InroEBsHo+bBjsesZ4ocz7ThIe7l5nLQkS2feDutOczaCfIA3W/zlwKnGmAnARGCOiEwD/gY8bIwZChwCrvaiDQAEBQYQGhTQ/OBurfBr+tt2IX2NTVbWs9/RdRGxEBbdtPAfTrfRGc4f94h5NhXCkTyvmtsqFv8OEJj9J+9fa/JP4LbNcPwv3ItW7GA44Vbb4vVkMtPWD2yCs5N/A/Ej7LqgUBi3ALZ+6LooSXPs/87+lo75MZz2Ryt06150v39FiR2biBtm3XtbP3C/b44jFXPDiJ66jD3fjrcs/SOs+S+s+x9seA02LoSvHgSMDeNsT5whnZ6Qt8MO1geHta8NLcBrwm8szkdusONlgFOBhY71LwDzvWVDXaJCPSjG4vQjt6WUmnKU9DW2td9QpJoL6XS63Po4uvMj5lq3QVN+W1/ww5fWX3zi7bZn4m0CAj27zgm32UlFi+5ouuJZ6SEruAnjYMYt9bdNvMxOGGvJhCgn61+2uXNGz7ex9QOmw7K/2IInrlj+gP3NnfUQDJ9r3XruBqjdRfTUpf8029P47mn44BZ47ybrRnrravj+P9B3wtGHXHsRM9BOrmsuaAF8HtEDXvbxi0igiKwHcoAlwC6gwBjjVOADQJKbY68VkdUisjo3N7fNtjRbcN0YR4tf7MCUVjtqG6UFttBE0jGNtzUn/LURPSPte98Jdnp+Z/LzV1dZv3j0QNsC70wEh8O8B2zL8tsmyhIu/p3tRZ37LxsRU5e+E2yret3/WnbtihKbLG30uXb8QcS6po7kwjePNt4/Z6sds5hwKQw6CUadbR9Ie79xff7szbbH2KOvexsCAuCGlXDHTvjlVrh1I9y8Dn6+Gm781ubbb29q0zPva3q/mhr7u+jOwm+MqTbGTASSganAyBYc+7QxZooxZkp8fHybbYkICWw6ZUNRlo0GSJoMGBvTrLSejHX2va5/30nsYDsY6q41mrPFDpaFx9hlEdvq3/l58wN/HcXq56ydZ9zn0y67W4afASPOhC//biN0tn5g/eg/fAn7VlnXx7r/wYybbbhtQ0TsIG/GuqOVrjxh24dQUQSTLju6LnmKjaBZ8Vj98M6aGvjwNpvX6PR77bohp0JwhHt3T/Zm+0Bqzj8fFAJR8dbNGD3Afud6D7PjRs6aue2JpyGdhfvtZC8fFF+pS4dE9RhjCoBlwHQgWkSco1LJQHpH2BDVXIvfWQbNWRxbB3jbhnNg11UelNjB1nXjrnWUvcXG79dlxDybzXDPV+1rZ2s4kg/L7rUThkae5Wtr3DPnr7Yl/+718Prl8PKF8OI5tqzgO9dZ8Tn5N+6PH3eRzTTakkHe9S/bXtCABgPds+62CdGW3Vd/330r7fhIZG+7LiTC/ga3ftg4BUJNjX3YNuXm8RWeCr8Pyy3WxZtRPfEiEu34HA7MBrZiHwAXOna7EuiQoPkIR05+t+Q1EP6CPV63qVuTvtYO1oVHN97WVEhndZXNw9Iw1G7QiRAS1TncPZ//2UaMzPmbz6bce0TMQOvmuOl7uO4r+NlS+MlHcPlbcMmrcPUS6xZyR2QcjJhjeweeTAor2G97FBN/dLSalZPYQbaYybqXbZjvkTwb7TNgOky8vP6+o86B4ixIX11/feE+2yt3F9HjSyLjbU+lOeHP6xzCH9T8Lq2mL/CCiARiHzBvGGM+FJEtwGsici+wDnjWizbUEhUaSEZBEwMv+bvsPy7pGAgM1cietmCM/dG6m8zUlPAf3OXIw9KgVRcUat0A2z+GMx/yneBmbrCRIsddf3QMojMT1qttro2Jl1u3y45PYVQzvZsNrwHG+utdceLtsO4lWHI3RCXYwd6zHm78kBh+uu1pbH3fllZ0Ujuw20REj6+oLZazp+n98nbY/4ezh+MjvBnVk2qMmWSMGW+MGWuM+ZNj/Q/GmKnGmKHGmAXGmA4ZRY1srvxifprN3REQaH2C6uppPYczbMIqV/59sF/6kB6uhb9uqoaGjJhnIycy17ebqS2iqgLevQki4mDmnb6xoaMZepoV6ebcPcbYfVJOtD0NV0TEwkm/hl1LYcMrdlDc1SSqsF7Wjbb1g/qzfrM3AwLxnfSB65HwOwZ2fdxT9IuZu+BBVE9ems2WB/aLqyGdrcfVxK26iDgqSrkQ/pytNumYq67wsNPtxJeWTuYqzoV/ToS3rmnZQGVDvrwfsjfCOY+6dmF1RwKDYMIltsVfnON+v30rbR6hSZe73wfszOCYFDsOcNKv3e836mwros4Si2CFPyal/mzlzoRT+JtKUeHDcot18SPht1E9xtU/parcCr0zd0ZLZuEpjUlfY7vqiU10yd2FdOZssYnHXEXKRMbZGO2W+vl3fGxFaev78MR0eOUSO8moJexbBV8/bF0fI89s2bFdnYmX2xTGqa+732fdy7YXN+rsps8VFGrHGq79wg7kumPEPPuQrxvd01Sqhs5ATApUlrifaFh22I5d+DA5mxO/Ef6IkCCqawzlVS6KJRzcbaNMnP+Q6IFQVmhj0ZWWk77GphdwV6cUrPAX7G08lT97s2s3j5MRc23it5aE2+74FHom25jumXfB/m/h2dnw/Jk2MVlzScTKi20UTK9kGynjb8QPh+RjYe1LrtMglBfb/Ddj5ttkcc0R2ftoyUR3RMXbyCCn8FeW2vGfziz80Q4Xl7tGozOix4fJ2Zz4jfBHNVV3t/YfUsfVA/7l7mlqhmdLqKmGjPXu3TxOYgfb8L7COgJeccT+aJoU/nn2fccnntlTVW5TbQ8/3YrNzDvh1k1wxl9sj+N/F9hXU26MJb+3ds1/0lYR80emXmujrf4xAt7/BRxYffSBufV9G2o78bKmz9FSRp1te4B5O21JS1PTuYW/uZDOThLRA34k/EcLrrsI6axNk+oU/hT77om7p7zIduG6MmWF8OAwWPGvtp8rL81O4PFE+KG+uyd3G2CaDtfrPdS2mDx19+z9xorSsDp1cEOjYPpNcMsGmPt3u88TM+wDoiFpS+xkreN/DikzPLtmd2T8RXDVYpuGYeNC+M8seOJ4+PYJG+UUOxgGTGvfazqjiLZ90LkjepxED7DvboV/h60j4ExU6EP8R/idGTpdJWrL22kjF5ytudoumwct/oVX20kxnuYc74zsWGyzIn75t7bXbXVOtXeVqqEuroTfOfDaVIsfYOQ8W+3Kk6RtOxZDUJhNB9CQoBAbW37NMtsbeOk8+OyPR2PWSw7Cez+39pzyu+av1d0ZcBzMfxxu3w5nPWLnAHxyp02gN/FH7R+p0isZ+h0DW963wh8UfrRR1hkJibBJCV0J/5F8SH3DfpcapsfwAf4j/M25eur63cKjbT6Q5lr8NTU2miFjna3o01XZ9oENoasohq/+0frz1NTAqqdsq6y57myPRPtDrltKMGeLZz/u8ZdYN9HGN5u3Ke1TG2LY1EBiwmgr/sf8GL5+CJ6fZ2cVf/RLKMmH857qnGkZfEVYT5jyU7jmc7j+Gzvzdup13rnWqLMhY60di+kzyrv1DtoDV4EhNdXw9s9siPPZ//SFVY3wI+F3tvhduHrqhnI68SSk89BuKHe4eVY92Q5W+oDKUuvOGHuBbbV9/0zrJ6/t+MT6gWfc2nzrT6RxZE/OFjspqrkfd8Jo6Dux+fKAeTvt+Yef0fR+YB8M5zwKFz5nXU6PH2cHLE+5C/qOb/54fyVxrM3s6a2xj1Hn2Pe8HZ3bv+/ElfB/8VfY9TnMe7D5nnAH4UfC76bFX3IQSg82HmmPHti8ADonEg2dbWuuelJEvD0xpu31gXctsyFoo86Gmb+1IXR186m0hG8esX5OT3OdN4zlz95yNBVzc0y8DLJS7fR/d6Q5Kj8Na0Ed3LEXwHXLbVTS4Jn2Iab4jt5DId4xyaurCP/h9KPZfbd/bNNOT7oCJl/pU9Pq4j/C7678Ym0ZtAbC7yys0DBRVF0y1kNgCJz5oG2lfvdMu9nrER/eCs+c0raInK0ON0/KidAryaYiSH0DMlNbdp69K62v9/ibG1eGckfsYNtrqqm2/vojOZ6Xwxt3oZ0rsOFV9/vs+MTO8nQ3k9StXYPg6sVwxbud37XgDzjnBnQV4Xdm983fBW9fZ3un8x70sWH18R/hd1dwPa9BKKeTmIE2Z0xxE8WfMzfYwZqYFBvtsO4l98Um6tJeuf5/+NLGtK96onXHV1fayU3D5x4dcDrhVvsgWPrHlp3r64dtKoOWhPTFDrZ/48MZdaI2PEzAFRFrE4ilvu6611N22JbY88TN447OnIDNnzj2aph2ky3l2Nlxjk/lboXXr7B5iC56sdONEfmR8Lvx8een2ZZjdINWYXMhncZY4e87wS5Pu9H6+5vzO6/5L/wtxYpSWygrtK3lwFD44m9Q2Irs1nu/sUUv6ibfCo+Bk+6wg2melO4D66JJ+9T2FpoaRG2IM6zt0O7GVbc8YcKPbIGPnZ813vbDMjsAPKwNwq90Dnokwpy/ND0hsLPg7F1+eJsds7rgPy3vcXYAfiP8IYEBBAVIYx9/XpoVoIbuiegU++7Oz1+w14ZAOotYJE+G5Kl2kNedeyhjvS1sXVliS8K1peWftdG+z/mLnU7/6W9bfo6tH9oomiGz6q8/9ho703XJ3U27upx8809bau/Yn7Xs+nVDOnM2Q3gsRPXx/PhhsyGit+uH7Y7FtufSFVqJSvchKtE2xo7kwim/PZrmvZPhN8IvIq4TteXvdD2FOro/IO4jezLW2/e+E4+um3a9FTFXtWFLC+CNH9u83ec/Y6MUvn645TfiJHODfR91jk13u+VdGzngKTU1tlrS0FmNW+nBYXDq/9nB6y3vNn2egn2waaEtBN7cNPyG9EyyYyQHf7C9hoQxLXOvBAbbiUXbP7aD9E5qHPV5h8zyfLxBUdqDgACb3mLkWXDiHb62xi1+I/zgLLhex9VTU21Fp2EoJ9huZc9+7l09mevtLLy6k41GnWPF7Nt/19/XGFvw+XA6LPivFatxC2zMfO6O1t1MZqqtOxrVxw6oxg62vQlPexEZa22KY2e4XEPGX2zdLkv/1PTg8UpHTdfpN7bMfrADpzEpdhAsd1vzE7dcMfFHUFNZvyh45no7UNwW/76itJYrP4CL/9e4zkAnovNa5gUiQgIpqTtzt2CfHVx0V/+yqZDOzA02AqXuoE1gsHV37P6yfvrflf+yrevZfz5aWOKMv9rCLx/e6pk7xdX1Ex3x5cFhMPcB23tZ6WHaha3v2wfXcDehjgGBcNofrP992X2ua92WHIS1L9oSfb2SW34PYB9Ye75ufWWlxHH2VTdffNpiQDptN1vp5gQEdPrAAL8S/sjQoPrhnLU5etxky3OXntkY6+pxDuzWZfJPrN/cGWmz71tYco8NSZt2w9H9ouLh9D/bAdb1/2vZjVSU2IlSda8/7DR7jS8fcF/Ltq79Wz+waQycBc1dMWy27RF88wj8czx8/Uj9vETfPW3HK2bc0jL76xI72I6VQOta/GAHeTPWHR0g3vGJLfDt4ypHitJZ8WbN3f4iskxEtojIZhG5xbH+DyKSLiLrHa953rKhIZGhgfV9/LXZ8twJ/0DrDmnoPincbyd91fXvO4mIhQkX21j43O3w5k/tpKZzH2/cCph0BQw8ARb/runskA3J2WIzFTZ88JzhSBn8yV3NHL/VuriaKxQuYkPRfvy+7d18dg88PNa6fw7ttekZRsxrWwlC5wAveB7D35BxC2zvZf0rUJRtHwLq5lEUt3izxV8F3G6MGQ1MA24SEWeT7mFjzETHq8OqZ0eGBFFSN5wzP83m5ImIc31A3ckYdXEOrPab5Pq4426AqjL4z2yb6+WiF1zXPRWBsx+xaROaE+t6119v3xumEojuDyf/yrqV0pa4P37bh4B4VlBEBAafDD9+z+ZmGXwyfPUQ/HOCffi1dWarM6QzegCE9mjdOaLi7ezc1NePpmvWME5FcYs3a+5mGmPWOj4XAVuBJG9dzxOiGrp68tJsa9+dP85dYYWM9bY8oLuZhH1G2sLg5YUw92+uXUJOeg+zo/+bFkKai3h0V2RusC6aXv0bb5v+C+u6+uiXkLPN9fHOItY9Ej27npOkyXDxS3DTd7bE3pSrbMbGtuBs8bfWzeNk4o9sEqwv/go9+lm/v6IoLukQH7+IpACTgFWOVT8XkVQReU5EXDqZReRaEVktIqtzc3PbxY6I0MAGLX43oZxOaguy7Km/PnO9TQUQHO7+2LMetoU7Jv+kecNOuNVms/zoNluMpDkyU+3DxNUDKygE5v/bnuepk2DFYzZ6ycmhPXYOQHMl8poifjic+y97j22l1wAI7QVJU9p2nmFn2HkARZl2bKKTD64pii/xuvCLSBTwFnCrMeYw8AQwBJgIZAIu8wAbY542xkwxxkyJj49vF1vqDe6WF1uRiBvi/gDnZIy6LX7nwK5z4pY7YlJg4qWeCVBQqE3XWrDPRsk0RXWl9fEnjne/T/+pcOO3VgAX/86mGc7fZbdt/dC+N+ff7ygCg+CmVTDj5radJyjE+vpB/fuK0gxeFX4RCcaK/svGmLcBjDHZxphqY0wN8Aww1Zs21CUyJIiKqhoqq2vcJ2erS0CA9T3XDek8nAEleU27b1rDwONtFsJtHzW9X+42G4La3PWj+thY4vOesoO5T55gk8ht/QASxnWKKkC19OzbPtPxj/+FLRHYcCayoij18GZUjwDPAluNMQ/VWd+3zm7nAU3k1W1fjiZqq24+lNOJM0unk9qB1YntbZ6tLLV3Rf1ZqA1xDix7cn0RmHAJ3LgSBkyHRXfYQuOjOklrv72J7g/zHuh0CbEUpbPhzRb/DOAK4NQGoZt/F5GNIpIKnALc5kUb6hHlSNRWXFHlCOWU+uGErogZWN/Vk7nB5qxP9ELtzxFn2rw7TUXkZG6AkKjm7a5LryS4/C1bLi9xnJ2VqyiK3+K1RCbGmK8BVw7uDgvfbEhESJ3UzPlp1o3TXOsweqDNhFl6yEbSZKy3A7Ehke1vYL9Jdlxh+0d2LoArMlOteLd0OriILZc35adtt1NRlC6NX83cjQqtU4wlL819qoa61KZndrh7Mjd4x80DVsxHzIGdS13n3KmpthE5TQ3sKoqiNINfCX9t+cWyKhvl0tTArpPakM69UJRlC7M0F9HTFkacafPW7P6q8bb8XVB5pP0HlhVF8Sv8SvgjQqyPv+pwhhXQlrb4a1Mxe1F4B51kc9tvdxHdk5Xq/esritLt8Svhd7p6AvMdqZA9afGH9bJpHQ7tcUTUiHdnhQaHwdBTbY75hlk7M9fbeQXxI7x3fUVRuj1+JfwRoYHMCfiOY9f8yqZETvBQwJ0hnZnrbS+htTllPGXEmXZyWea6+uszN9jUxc76uIqiKK3Af4S/5CCxH9/IkyGPUBSSAD9bCpFukrM1xBnS6cmM3fZg+Bk2F9D2j4+uM+ZoqgZFUZQ24JHwi8gtItJTLM+KyFoRcVPBoxOybRE8fhyB297nH1UL+N/Y51pW9CN6oE1jXJThvYieukTE2glX2+pEvhbss3nrNaJHUZQ24mmL/ypHnp3TgRjsxKz7vWZVe1F6CN6+Dl67FKISkGuX8XzgAooqW5jAKybF5r+Hjmtxj5hrC5A7J4+1ZMauoihKE3gq/E6lnAe8ZIzZjOvJWZ2LRb+GjW/Cyb+xueQTxzUuxuIJzpBOaJwD31uMdNSncbp7slIdqaDbmL5YURS/x1PhXyMii7HC/6mI9ABaUSi2g5l1N1yzFE75rc3eiE3UVlzRUuF3JDSLHeK6oIo3iB1cP2lb5gYbzdNUKmhFURQP8FT4rwbuBI41xpQAwUDnn/sf3b9RlazI0CCbsqEl9EoGpOMHVkfMPZq0LXODDuwqitIueCr804HtxpgCEbkc+B1Q6D2zvId19VQ3v2NdgkJt7+G4671jlDtGOpK2rfufrS6lA7uKorQDngr/E0CJiEwAbgd2Ac1UDOmcRIYEcaSlrh6AE3/Z9jKDLaXfMTZp24pH7bK2+BVFaQc8Ff4qY4wBzgX+ZYx5HPDyLCbvEBka1PLBXV/hTNp2xFF6UuvIKorSDngq/EUichc2jPMjEQnA+vm7HJGhgRS31NXjS0Y4ontiB0NYT9/aoihKt8BT4b8YKMfG82cBycADXrPKi0SGBFHSGlePrxh0si28ovH7iqK0Ex4VYjHGZInIy8CxInIW8J0xpmv6+EODKKmopqbGEBDQ+aciEBwGV7wDPRJ9bYmiKN0ET1M2XAR8BywALgJWiciFzRzTX0SWicgWEdksIrc41seKyBIRSXO8x7T1JlpCpKP8YkllF3L39J9qq4UpiqK0A566ev4PG8N/pTHmx8BU4PfNHFMF3G6MGQ1MA24SkdHY+QBLjTHDgKWO5Q6jthhLVxngVRRFaWc8Ff4AY0xOneX85o41xmQaY9Y6PhcBW4EkbGTQC47dXgDmt8TgthIZUqf8oqIoih/iabH1T0TkU+BVx/LFtKBouoikAJOAVUCCMSbTsSkLSHBzzLXAtQADBrSfm8PZ4i/pSpE9iqIo7YhHLX5jzK+Ap4HxjtfTxpjfeHKsiEQBbwG3OjJ81j2vAYybaz5tjJlijJkSHx/vyaU8wunj1xa/oij+iqctfowxb2EF3GNEJNhxzMvGmLcdq7NFpK8xJlNE+gI57s/Q/jhdPV0qpFNRFKUdabLFLyJFInLYxatIRA43c6wAzwJbjTEP1dn0PnCl4/OVwHttuYGW4nT1aItfURR/pckWvzGmLWkZZmBn+m4UkfWOdb/FFnB5Q0SuBvZiw0M7DKerp8WJ2hRFUboJHrt6Woox5mvcF2uZ5a3rNkft4K66ehRF8VP8p9i6Aw3nVBTF3/E74Q8MEMKCA3QCl6IofovfCT9AVGgQRyrUx68oin/il8IfEdKFcvIriqK0M34p/LYYi7b4FUXxT/xS+KNCA7XFryiK3+KXwh/R2rq7iqIo3QC/FP6orlR3V1EUpZ3xS+GPCAlUH7+iKH6LXwp/ZKi6ehRF8V/8Uvidrh6bFVpRFMW/8EvhjwgNpMZAWWWNr01RFEXpcLyWpK0zE+VI1PbI0h0cKa8ir6iCvOJy8orLqaiq4f4LxnPS8PYr/qIoitKZ8MsWf//YCACe+vIHPkzNZGduMUGBwtikXgQHBXD7mxs4dKTCx1YqiqJ4B+kKfu4pU6aY1atXt+s5C0oqiAgJIiSo/rNvc0Yh5/7rG+aN68ujl05q12sqiqJ0JCKyxhgzpeF6v2zxA0RHhDQSfYAx/Xpx86xhvL8hg0UbM10cqSiK0rXxW+FvihtmDmF8ci9+9+4mcovKfW2OoihKu+I14ReR50QkR0Q21Vn3BxFJF5H1jtc8b12/LQQHBvCPBRMoLq/i/97ZqGGfiqJ0K7zZ4v8vMMfF+oeNMRMdr0VevH6bGJbQg1+dPoLFW7J5Z126r81RFEVpN7wm/MaY5cBBb52/I7jqhEFMGRjDPe9vJrOw1NfmKIqitAu+8PH/XERSHa6gGHc7ici1IrJaRFbn5uZ2pH21BAYIDy6YQFW14TdvqctHUZTuQUcL/xPAEGAikAn8w92OxpinjTFTjDFT4uN9N5kqpXckv503kuU7cnlzzQGf2aEoitJedKjwG2OyjTHVxpga4Blgakdev7VcdtxARvftyQsr9vjaFEVRlDbTocIvIn3rLJ4HbHK3b2ciIEBYMCWZzRmH2ZZ12NfmKIqitAlvhnO+CqwERojIARG5Gvi7iGwUkVTgFOA2b12/vTlnQj+CAoS312qEj6IoXRuvJWkzxlzqYvWz3rqet4mLCmXmiD68sy6dX58xgqBAnfumKErXRNWrBVw4OYnconK+3pnna1MURVFajQp/CzhlZB96hQfzlrp7FEXpwqjwt4DQoEDOmdCPxZuzOFxW6WtzFEVRWoUKfwu5YHIy5VU1LErVzJ2KonRNVPhbyITkXgyOj9ToHkVRuiwq/C1ERLjgmGS+23OQffklvjZHURSlxajwt4LzJiUhAm+v0xQOiqJ0PVT4W0G/6HCOHxLH22vTXSZuq6qu4a+LtvLj576jpkYTuymK0rlQ4W8lFxyTzL6DJazee6je+rzici5/dhVPLf+B5TtyWbf/kJszKIqi+AYV/lZyxphEIkICeatOxs7UAwWc89jXrNtXwJ/njyUkMICPN2b50EpFUZTGqPC3ksjQIOaO7ctHqZmUVVbz5ur9XPjkSkSEt244niumDeSEYb35eFOW5vFXFKVTocLfBi44Jomi8iou/88qfrUwlSkDY/jgFycwNqkXAHPGJJJeUMrmDM3oqShK50GFvw1MGxxHUnQ4q/ce4poTB/HiVVOJjQyp3T57dAKBAcLHm3Syl6IonQevZef0BwIChEcvnURxeRUnD29cJSwmMoRpg2P5eFMWd5w+AhHxgZWKoij10RZ/G5k8MMal6DuZMyaRH3KPsDOnuAOtUhRFcY8Kv5c5Y0wiIvDxJo3uURSlc6DC72X69Axj8oAYFX5FUToN3iy9+JyI5IjIpjrrYkVkiYikOd5jvHX9zsScsYlszTzM3vwjvjZFURTFqy3+/wJzGqy7E1hqjBkGLHUsd3vOGJMIwCfa6lcUpRPgNeE3xiwHDjZYfS7wguPzC8B8b12/M9E/NoJxSb3U3aMoSqego338CcYYZ1B7FpDgbkcRuVZEVovI6tzc3I6xzovMGZvI+v0FZBaW+toURVH8HJ8N7hqbx8BtLgNjzNPGmCnGmCnx8e7DJbsKc8Zad8+n2upXFMXHdLTwZ4tIXwDHe04HX99nDImPYlifqG7j7lmyJZt/fZ7mazMURWkFHS387wNXOj5fCbzXwdf3KXPHJvL9noPkFZf72pQ28/CSHTy0ZEe3uBdF8Te8Gc75KrASGCEiB0TkauB+YLaIpAGnOZb9hjlj+1JjbGu5K3PgUAlbMg9TY+CzLn4viuKPeDOq51JjTF9jTLAxJtkY86wxJt8YM8sYM8wYc5oxpmHUT7dmVN8eDIiN6PLuHqfYR0cEd/l7URR/RGfudiAiwtyxiazYmcer3+0jp6jM1ya1isVbshnWJ4qLpvRnxa48CksrfW2SoigtQIW/g/nRcQNIignnrrc3MvW+pcx//BseX7aT7VlFHhdsqaiq4ZNNWfzshe+57fX1VFbXeNnqoxSWVLJq90Fmj07gjDGJVFYblm3zmzF6RekWaFrmDmZgXCRf3DGTbVlFLN2azZKtOTzw6XYe+HQ7yTHhTB0Uy4TkaCb0j2ZU3x6EBgXWHrs9q4g3Vu/n3XXp5B+pIC4yhPwjFRhjeOiiiQQENJ32OauwjBdX7uEnx6fQp2dYq+xftj2H6hrD7NEJTEiOpk+PUD7ZlMX8SUmtOp+iKB2PCr8PEBFG9e3JqL49+fmpw8g5XMbSbTl8vi2H5TvyeHttOgDBgXa/Mf16sSWjkA0HCgkOFE4blcBFU/pz4rDePLX8Bx74dDtxUaH87sxRbnP+p2UXceVz35FRWMb7GzJ46erjGNQ7ssW2L9mSTZ8eoUxIjiYgQDhjTCJvrtlPSUUVESH6dVKUroD+UjsBfXqGcenUAVw6dQDGGDILy9iwv4ANBwrZsL+ADzdkkBQTzu/PGs38if2IiwqtPfbGmUPILSrn2a930zsqlBtmDml0/tV7DnL1C6sJCQrgHwsm8JdFW7nwiRX896dTGZfcy2M7y6uq+WJ7DudOSqrtXcwdm8hL3+5l+Y5c5ozt2/Y/hqIoXkeFv5MhIvSLDqdfdDhzxzUvpCLC3WeN5uCRCv72yTbiIkO46Nj+tds/3ZzFza+uo190OC9eNZX+sRFMGhDNFc9+xyVPr+SpK6ZwwrDeHtm2Ylc+RyqqmT36aKaNqYNiiY4I5pNNWSr8itJF0MHdbkBAgPDgggmcOKw3d76dWjtP4OVVe7nhf2sY2bcnC6+fTv/YCAAGx0fx9o3H0z82gp/+9zs+TM3w6DpLtmQTGRLI8UPiatcFBQYwe1QCS7fmUFHVcYPMiqK0HhX+bkJIUABPXj6ZccnR/PyVtfx64Qb+751NnDw8nlevOa6eewggoWcYr183nYn9o/nFq+t4ceWeJs9fU2NYsiWbmSP61BtwBpg7LpGi8ipW7Mpr79tSFMULqPB3IyJDg3j+J8eSFBPOG6sPsGByMk//eIrbQdde4cG8dPVxzBqZwN3vbW5S/DccKCC3qLyem8fJ8UN6ExUapPUGFKWLoMLfzYiNDOG1a6bx78uO4e8Xjic4sOl/cVhwIE9efgyzRvbhzx9uIfVAgcv9lmzJJjBAOGVEH5fnOGVkHxZvyaa6xrO5CIqi+A4V/m5In55hzBvX121oZ0OCAgP4x0UT6NMjjJteWetyJu7iLdkcNyiWXhHBLs8xZ0wiB49U8P0ev8rCoShdEhV+BYDoiBAevXQSmQVl/GZhar1ZxLvzjrAzp5jTXbh5nMwcEU9oUIC6exSlC6DCr9QyeWAMv5kzkk82Z/HCij2165dssWJ+WhPCHxkaxEnD4/l0cxY16u5RlE6NCr9Sj5+dOIjTRvXhvkVba/39izdnM7pvT5JjIpo8ds6YRDILy0hNL+wASxVFaS0q/Eo9ROycAKe/f3feEdbsO8TpY9y39p2cNiqBoABRd4+idHJU+JVG1PX3X/zUSozBZRhnQ3pFBDN9SBwfpmawaGMmK3bmsSm9kP0HSzhcVulx9lFFUbyLpmxQXOL099+3aCtJ0eGM7tvTo+PmT0zi9jc3cOPLaxttCw4UhsRHMbqfTTw3pp9NVNcr3EYKVdcY8orLySosI+twGdmHy4iJCOGkYfFuo4kU9xhjeO6bPZwyIp7B8VG+NkfpRPhE+EVkD1AEVANVxpgpvrBDaZqfnTiIfQdLGJHYw+PQ0AsmJ3PCsN4cPFJBYWll7etwaSW5xeVszyriq7SjGUgBkqLDqTGGnKJyl/MAAgOEKQNjmDWqD6eOTGBIfKTH9rSU0opq1u8vYO2+Q0SEBHL+pOQu+9BZvCWbP3+4hfc3RPPujcd77W+mdD3EF91vh/BPMcZ4NMd/ypQpZvXq1d41SulQcorK2JJxmM0Zh9mWVURIYAB9e4WR0CuMxJ5h9O0VRp+eoew/WMrn27JZujWHbVlFAAyMi+DCY5L5+alD2yxm+cXlrNp9kNV7DrFm70E2Zxymqs7DJzw4kPmTkrjy+IGMTPSs19MZqK4xzPvnV+w9eISyyhoeu3QSZ0/o52uzlA5GRNa4alir8CtdhvSCUj7flsOnm7L4emceN88axi9nD2/VuQpLK/n3Fzt5/ps9VFTVEBoUwIT+0UwZGMOUlBiOGRBDekEpL63cy7vr0ymrrOG4QbFceXwKp49OIKiZGdG+5r316dzy2noeuXgiTy3/gaKySpbefnKjPEtK96azCf9u4BBggKeMMU83tb8Kv1IXYwx3vrWR11fv5+8XjK+Xhro5yquqeWnlXv61bCeFpZWcNymJK6YNZEy/XoQEuRbzgpIK3li9nxdX7uXAoVKSosO5++zRnD46oUPcJ8YYsg+XsyO7iJCgAKYNjmty/6rqGmY/vJzQoAAW3XwiK3blc/mzq/i/eaO45qTBXrdX6Ty4E35fDe6eYIxJF5E+wBIR2WaMWV53BxG5FrgWYMCAAb6wUemkiAj3njeWjMJS7npnIwm9wjh5eHyTx9TUGD5IzeCBT7dz4FCpTWE9dyRj+jVfiCY6IoRrTxrC1ScM5vNtOfxj8Xaue2kNp4yI54/njGVAnPv5DSUVVXz7Qz5J0REMT4hq9kFRWV1D6oFCUg8UsCO7mLTsInZkF3G4rKp2nwcuHM+CKe4fdm+vTWd33hGevmIyAQHCCcN6c8qIeB77PI0LJycTExnS7D0rraewtJLw4EC3DYnOgE9a/PUMEPkDUGyMedDdPtriV1xRVFbJRU99y778I7xx/XSXIm6M4au0PB74dDsb0wsZ1bcnd80dyUnNPCiaorK6hhdW7OHhJTuorDHcNHMo1508mLDgwNrtX6Xl8t76DBZvzqa0shqAuMgQpg2OY/oQ+xrcO5LqGsOmjMOs3JXPyh/yWb3nICUVdv/oiGCG9+nBsIQohifY98eX7eT7PYdYeP10xidHN7KtvKqaUx/8krioEN67aUbtg2ZHdhFzHlnOT44fxN1nj27xPVdV17Ar94hHDy9/pqisktkPLSehVxhvXDfN5661TuPqEZFIIMAYU+T4vAT4kzHmE3fHqPAr7sgqLOO8f39DjTG8c+MM+kWH1277fs9BHvh0O9/tPkhSdDi3nz6c+ROTmi1K35Jr//mjLXyUmklKXAQ3njKUDfsLWLQxk0MllfQKD2beuL7MHZtI1uEyvt2Vz4pd+WQdLgOgT49QSiqqKS63rflhfaLsQ2FwHJMHxhDfI7SRyB48UsHZj31NjTF88IsT6N2gzsJLK/fw+/c288JVUxv1gu56eyML1+xnyW0nk9KCesvVNYabX13HRxszOWl4PHefNZqhfdo/PPSVVftYtDGTe+ePbZF9nYk/f7iF577ZjTHwo+MG8JfzxvnUns4k/IOBdxyLQcArxpj7mjpGhV9pim1Zh1nwxEr6RYfz5g3T2ZdfwoOLt/PF9lzie4Tyi1OHcvGx/b3W+voqLZe739vM7rwjhAUHMHt0IudO6MdJw+MbdfeNMezJL2HlrnxW7c4nMjSI6YPjmDY4jvgeoW6uUJ9N6YVc8MQKJvaP5n8/O6429XZpRTUnP7CMlLhIXr9uWqOHRk5RGTMf+IKZI+L592WTPbqWMYZ73t/Miyv3ctb4vny5I5fSimp+OiOFX8waRs+w9gl1XbvvEBc9uZKqGkOP0CAeWDC+y5Xy3J5VxLxHv+KiKclER4TwxBe7mnXLeZtOI/ytQYVfaY5vduZx5XPfEd8jlMzCMqIjgrn+5CFcOT2F8BDvd7fLq6pZt6+AcUm9iAz1/tDZO+sOcNvrG/jpjBTuOXsMAM8s/4H7Fm3l9WuncZybAeBHl6bx0JIdLLx+OlNSYpu9zr8+T+PBxTu45sRB/N+Zo8krLufBT7fz+ur9xEWG8Os5I7nwmOQ29aIKSyqZ9+hXiMDTV0zhrnc2smF/AVfNGMSdc0d2al+5E2MMlzz9Lduzi/j89pn0DAvix899x5q9h3jrhuMZm9T8WJI3cCf8nf8vqigeMGNobx5YMJ4aY7hl1jCW//oUrj95SIeIPkBoUCDTBsd1iOgDnDcpmatmDOL5b/bw9toDFJdX8cSXuzhxWG+3og92Ul5Cz1Du/Whrsyk0XvtuHw8u3sF5k5K4a+4oAHpHhXL/BeN5/6YTGBAbwa8XpnLev79hR3ZRq+7DGMNv3kol+3AZj106idH9evLmddP5yfEpPPfNbi55eiUZBaUtPu+R8irKq6pbZVNdamoMO3OKm/1bvb8hg1W7D/KrM0YQGxlCUGAAj146idjIEG54eQ0FJRVttqU90Ra/onRRKqtruOLZVazbV8CcsYm8tz6Dd2+awcT+0U0e98bq/fx6YSr3nD2ay44b6LJFvXhzFtf/bw0nDovnP1dOcVnJzRjDe+szuPejLRwpr+a+88Zy/jHJLbqHF1fu4e73NvPbeSO59qQh9bZ9lJrJb95KJTjQJg6cOaIPgU30LPKLy1m8JZtFGzNZuSufABFG9+vJxP7RTBoQzcT+0QyIjfBocLq6xvBhagb/+nwnaTnFXDFtIPecPdrl/I2iskpm/eNLEnqG8e5NM+rZuG7fIS56aiUzhvbmuSuPbbfxJU9RV4+idEPyiss557GvySgs47RRCfznyuazn1TXGM5/YgUb9hfQIyyI00YlMHdsIicNjycsOJDvdh/kimdXMbJvT1752XHN9mJyDpfxi1fXsWr3QS45tj9/OGdMbYRTU2zOKOS8x1cwY2gcz7oRxR9yi7nx5bVsyyoiNCjARjj16cHwxB6MSOhBUkw4q37I5+NNWXz7Qz41xs7snjMmEQOs31dAanoBZZU1gC1NesyAGI4fEseMob0bRSlVVdfwQWoGj32+kx9yjzCsTxTjk6N5a+0BTh3Zh8cundTo73HfR1v4z9e7eedG1w/dl77dy+/f3cStpw3j1tNaN+GwtajwK0o3ZeOBQv704Wb+ev44hvbp4dEx5VXVfJ2Wx8ebsliyJZvC0koiQgKZOSKer9Py6N0jlIXXH0+shzH/VdU1PPzZDh5ftotRfXvy78uOYVATkTnF5VWc/djXlFRU8fEtJzV5ndKKaj5MzWBblp3TsCO7iOzD5fX2GRwfybyxfZk7LpHRfXs2EvPt2UWs31/A+n0FfLfnIHvzSwDoHRXC9CG9mTEkjgARnvhyF7vzjjAysQc3zxrGnDGJBAQIL327l3ve28Sovj157ifHktAzDLBhsvP++RUXTk7m/gvGu7TfGMPtb2zgnfXpPHHZZM4Y0/zEv4KSCj7amMm769L5+4UTmvxbNoUKv6IoLqmsruFbR6t58eYsggMDePP66c0W3nHFsm053PbGeqqqDX+7YDxnjm8cmWOM4bbX1/P+hgxevcb9QHRTFJZUsiOniD15R5jQP5phfVo2v+DAoRJW7Mxnxa48vtmVT26RfZCM7tuTm2cN4/TRCY16IMu25XDTK2uJDg/m+Z9OZXhCFJc+8y1bM4tYdsfMZh9e5/37G7ZlFdGvVxgnj4jn5OHxHD+0d21kVFllNcu25fDOunSWbc+hstowrE8U9503jqmDmh+Id4UKv6IozVJdY6iuMW2KpEkvKOXnr6xl3b4CkqLDiY4Ipld4cO17RZXhrbUH+OXs4dw8a1g7Wt86jLEDuAWllUwZGNPkA2RTeiFX/fd7SiuquejY/jz79W7unT+Wy6cNbPY6haWVfLwxky+25/LNzjyKyqsIDBAmD4ghKSacz7ZmU1RWRZ8eoZw7sR/zJyU16r20FBV+RVE6jIqqGp77Zjc7sosoLLGpuQucabpLKjl1ZB8ev+yYJgdrOyvpBaVc9fz3bM8uYmxST9676YQW30dldQ3r9hXw5Y4cvtyRy778EmaPTuS8SUlMHxLXbn8XFX5FUToFxpgun/bhcFkl//p8JwsmJzMswbNxFV/Q2ZK0KYrip3R10QfoGRbMb+eN8rUZrUYncCmKovgZKvyKoih+hgq/oiiKn6HCryiK4meo8CuKovgZKvyKoih+hgq/oiiKn6HCryiK4md0iZm7IpIL7G3l4b2BvHY0p6ug9+1/+Ou96327Z6AxJr7hyi4h/G1BRFa7mrLc3dH79j/89d71vluOunoURVH8DBV+RVEUP8MfhP9pXxvgI/S+/Q9/vXe97xbS7X38iqIoSn38ocWvKIqi1EGFX1EUxc/o1sIvInNEZLuI7BSRO31tj7cQkedEJEdENtVZFysiS0QkzfEe40sbvYGI9BeRZSKyRUQ2i8gtjvXd+t5FJExEvhORDY77/qNj/SARWeX4vr8uIu6rf3dhRCRQRNaJyIeO5W5/3yKyR0Q2ish6EVntWNfq73m3FX4RCQQeB+YCo4FLRWS0b63yGv8F5jRYdyew1BgzDFjqWO5uVAG3G2NGA9OAmxz/4+5+7+XAqcaYCcBEYI6ITAP+BjxsjBkKHAKu9p2JXuUWYGudZX+571OMMRPrxO63+nvebYUfmArsNMb8YIypAF4DzvWxTV7BGLMcONhg9bnAC47PLwDzO9KmjsAYk2mMWev4XIQVgyS6+b0bS7FjMdjxMsCpwELH+m533wAikgycCfzHsSz4wX27odXf8+4s/EnA/jrLBxzr/IUEY0ym43MWkOBLY7yNiKQAk4BV+MG9O9wd64EcYAmwCygwxlQ5dumu3/dHgF8DNY7lOPzjvg2wWETWiMi1jnWt/p5rsXU/wBhjRKTbxu2KSBTwFnCrMeZw3WLe3fXejTHVwEQRiQbeAUb61iLvIyJnATnGmDUiMtPH5nQ0Jxhj0kWkD7BERLbV3djS73l3bvGnA/3rLCc71vkL2SLSF8DxnuNje7yCiARjRf9lY8zbjtV+ce8AxpgCYBkwHYgWEWdjrjt+32cA54jIHqzr9lTgn3T/+8YYk+54z8E+6KfShu95dxb+74FhjhH/EOAS4H0f29SRvA9c6fh8JfCeD23xCg7/7rPAVmPMQ3U2det7F5F4R0sfEQkHZmPHN5YBFzp263b3bYy5yxiTbIxJwf6ePzfGXEY3v28RiRSRHs7PwOnAJtrwPe/WM3dFZB7WJxgIPGeMuc+3FnkHEXkVmIlN05oN3AO8C7wBDMCmtL7IGNNwALhLIyInAF8BGznq8/0t1s/fbe9dRMZjB/MCsY23N4wxfxKRwdiWcCywDrjcGFPuO0u9h8PVc4cx5qzuft+O+3vHsRgEvGKMuU9E4mjl97xbC7+iKIrSmO7s6lEURVFcoMKvKIriZ6jwK4qi+Bkq/IqiKH6GCr+iKIqfocKvKF5GRGY6M0kqSmdAhV9RFMXPUOFXFAcicrkjz/16EXnKkQitWEQeduS9Xyoi8Y59J4rItyKSKiLvOHOhi8hQEfnMkSt/rYgMcZw+SkQWisg2EXlZ6iYUUpQORoVfUQARGQVcDMwwxkwEqoHLgEhgtTFmDPAldlY0wIvAb4wx47Ezh53rXwYed+TKPx5wZk+cBNyKrQ0xGJt3RlF8gmbnVBTLLGAy8L2jMR6OTXpVA7zu2Od/wNsi0guINsZ86Vj/AvCmI59KkjHmHQBjTBmA43zfGWMOOJbXAynA116/K0VxgQq/olgEeMEYc1e9lSK/b7Bfa3Oc1M0dU43+9hQfoq4eRbEsBS505Dt31jMdiP2NODM//gj42hhTCBwSkRMd668AvnRUATsgIvMd5wgVkYiOvAlF8QRtdSgKYIzZIiK/w1Y5CgAqgZuAI8BUx7Yc7DgA2DS4TzqE/Qfgp471VwBPicifHOdY0IG3oSgeodk5FaUJRKTYGBPlazsUpT1RV4+iKIqfoS1+RVEUP0Nb/IqiKH6GCr+iKIqfocKvKIriZ6jwK4qi+Bkq/IqiKH7G/wMwtnngZCMWhAAAAABJRU5ErkJggg==\n", - "text/plain": [ - "<Figure size 432x288 with 1 Axes>" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - } - ], + "outputs": [], "source": [ "plt.plot(history.history['accuracy'])\n", "plt.plot(history.history['val_accuracy'])\n", @@ -1439,27 +1510,9 @@ }, { "cell_type": "code", - "execution_count": 52, + "execution_count": null, "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "3/3 [==============================] - 23s 7s/step - loss: 33.8036 - accuracy: 0.5625\n" - ] - }, - { - "data": { - "text/plain": [ - "[33.8035888671875, 0.5625]" - ] - }, - "execution_count": 52, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ "model.evaluate(validation_dataset)" ] @@ -1468,7 +1521,7 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "As you can see, we reach a validation accuracy of over 56%. This is a strong improvement over the previous model." + "As you can see, we reach a validation accuracy of over 56%. " ] }, { @@ -1707,7 +1760,7 @@ }, { "cell_type": "code", - "execution_count": 111, + "execution_count": 24, "metadata": {}, "outputs": [], "source": [ @@ -1716,7 +1769,7 @@ }, { "cell_type": "code", - "execution_count": 112, + "execution_count": 25, "metadata": { "colab": {}, "colab_type": "code", @@ -1725,17 +1778,14 @@ }, "outputs": [ { - "name": "stdout", - "output_type": "stream", - "text": [ - "[ 2 0 1 0 0 2 0 5 ], angelina jolie\n", - "[ 0 3 0 0 4 0 3 0 ], brad pitt\n", - "[ 0 0 8 0 0 0 0 2 ], catherine deneuve\n", - "[ 0 0 1 6 1 0 1 1 ], johnny depp\n", - "[ 0 2 0 0 7 0 1 0 ], leonardo dicaprio\n", - "[ 2 0 1 0 0 3 0 4 ], marion cotillard\n", - "[ 0 1 0 0 0 0 9 0 ], robert de niro\n", - "[ 1 0 0 0 0 2 0 7 ], sandra bullock\n" + "ename": "NameError", + "evalue": "name 'num_valid_images' is not defined", + "output_type": "error", + "traceback": [ + "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", + "\u001b[0;31mNameError\u001b[0m Traceback (most recent call last)", + "\u001b[0;32m<ipython-input-25-d6a92e7cceeb>\u001b[0m in \u001b[0;36m<module>\u001b[0;34m\u001b[0m\n\u001b[0;32m----> 1\u001b[0;31m \u001b[0mY_valid\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mnp\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mzeros\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mnum_valid_images\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;36m1\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0mdtype\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mint\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 2\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 3\u001b[0m \u001b[0mstep\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mnum_valid_images\u001b[0m \u001b[0;34m//\u001b[0m \u001b[0mnum_classes\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 4\u001b[0m \u001b[0;32mfor\u001b[0m \u001b[0mind\u001b[0m \u001b[0;32min\u001b[0m \u001b[0mrange\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mnum_classes\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 5\u001b[0m \u001b[0mY_valid\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0mind\u001b[0m\u001b[0;34m*\u001b[0m\u001b[0mstep\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mind\u001b[0m\u001b[0;34m+\u001b[0m\u001b[0;36m1\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m*\u001b[0m\u001b[0mstep\u001b[0m\u001b[0;34m]\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mind\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;31mNameError\u001b[0m: name 'num_valid_images' is not defined" ] } ], @@ -1904,6 +1954,262 @@ " " ] }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Part III : Semantic Segmentation" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "In this section, we’ll focus on semantic segmentation: we’ll be looking once again at\n", + "images of cats and dogs, and this time we’ll learn how to tell apart the main subject\n", + "and its background.\n", + "\n", + "We’ll work with the Oxford-IIIT Pets dataset (www.robots.ox.ac.uk/~vgg/data/pets/), which contains 7'390 pictures of various breeds of cats and dogs, together with foreground-background segmentation masks for \n", + "each picture. A segmentation mask is the image-segmentation equivalent of a label: it’s an image the same size as the input image, with a single color channel where each integer value corresponds to the class of the corresponding pixel in the input image. In our case, the pixels of our segmentation\n", + "masks can take one of three integer values:\n", + "1. (foreground)\n", + "2. (background)\n", + "3. (contour)\n", + "\n", + "Let’s start by downloading and uncompressing our dataset, using the `wget` and `tar`\n", + "shell utilities:" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "!wget http:/ /www.robots.ox.ac.uk/~vgg/data/pets/data/images.tar.gz\n", + "!wget http://www.robots.ox.ac.uk/~vgg/data/pets/data/annotations.tar.gz\n", + "!tar -xf images.tar.gz\n", + "!tar -xf annotations.tar.gz" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "The input pictures are stored as JPG files in the `images/` folder \n", + "(such as images/Abyssinian_1.jpg), and the corresponding segmentation mask is stored as a PNG file with\n", + "the same name in the `annotations/trimaps/` folder (such as annotations/trimaps/Abyssinian_1.png).\n", + "Let’s prepare the list of input file paths, as well as the list of the corresponding\n", + "mask file paths:" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "import os\n", + "input_dir = \"images/\"\n", + "target_dir = \"annotations/trimaps/\"\n", + "input_img_paths = sorted(\n", + " [os.path.join(input_dir, fname)\n", + " for fname in os.listdir(input_dir)\n", + " if fname.endswith(\".jpg\")])\n", + " \n", + "target_paths = sorted([os.path.join(target_dir, fname)\n", + " for fname in os.listdir(target_dir)\n", + " if fname.endswith(\".png\") and not fname.startswith(\".\")])" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Now, what does one of these inputs and its mask look like? Let’s take a quick look.\n", + "Here’s a sample image:" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "import matplotlib.pyplot as plt\n", + "from tensorflow.keras.utils import load_img, img_to_array\n", + "plt.axis(\"off\")\n", + "# Display input image number 9\n", + "plt.imshow(load_img(input_img_paths[9]))" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "And here is its corresponding target:" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "def display_target(target_array):\n", + " # The original labels are 1, 2, and 3. We subtract 1 so that the\n", + " # labels range from 0 to 2, and then we multiply by 127 so that\n", + " # the labels become 0 (black), 127 (gray), 254 (near-white).\n", + " normalized_array = (target_array.astype(\"uint8\") - 1) * 127\n", + " plt.axis(\"off\")\n", + " plt.imshow(normalized_array[:, :, 0])\n", + "\n", + "# We use color_mode=\"grayscale\" so that the image we load is treated as\n", + "# having a single color channel. \n", + "img = img_to_array(load_img(target_paths[9], color_mode=\"grayscale\"))\n", + "display_target(img)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Next, let’s load our inputs and targets into two NumPy arrays, and let’s split the arrays\n", + "into a training and a validation set. Since the dataset is very small, we can just load\n", + "everything into memory:" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "import numpy as np\n", + "import random\n", + "\n", + "# We resize everything to 200x200\n", + "img_size = (200, 200)\n", + "# Total number of samples in the data\n", + "num_imgs = len(input_img_paths)\n", + "\n", + "# Shuffle the file paths (they were originally sorted by breed). We \n", + "# use the same seed (1337) in both statements to ensure that the input \n", + "# paths and target paths stay in the same order\n", + "\n", + "random.Random(1337).shuffle(input_img_paths)\n", + "random.Random(1337).shuffle(target_paths)\n", + "\n", + "def path_to_input_image(path):\n", + " return img_to_array(load_img(path, target_size=img_size))\n", + "\n", + "def path_to_target(path):\n", + " img = img_to_array(\n", + " load_img(path, target_size=img_size, color_mode=\"grayscale\"))\n", + " # Subtract 1 so that our labels become 0, 1, and 2\n", + " img = img.astype(\"uint8\") - 1\n", + " return img\n", + "\n", + "# Load all images in the input_imgs float32 array and their masks in the\n", + "# targets uint8 array (same order). The inputs have three channels (RBG values)\n", + "# and the targets have a single channel (which contains integer labels)\n", + "input_imgs = np.zeros((num_imgs,) + img_size + (3,), dtype=\"float32\")\n", + "targets = np.zeros((num_imgs,) + img_size + (1,), dtype=\"uint8\")\n", + "for i in range(num_imgs):\n", + " input_imgs[i] = path_to_input_image(input_img_paths[i])\n", + " targets[i] = path_to_target(target_paths[i])\n", + " \n", + "# Reserve 1000 samples for validation\n", + "num_val_samples = 1000\n", + "\n", + "# Split the data into a training and a\n", + "# validation set\n", + "train_input_imgs = input_imgs[:-num_val_samples]\n", + "train_targets = targets[:-num_val_samples]\n", + "val_input_imgs = input_imgs[-num_val_samples:]\n", + "val_targets = targets[-num_val_samples:]" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Now it’s time to define our model:" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "def get_model(img_size, num_classes):\n", + " inputs = keras.Input(shape=img_size + (3,))\n", + " # Don’t forget to rescale input images to the [0-1] range\n", + " x = layers.Rescaling(1./255)(inputs)\n", + " ### [First half of the network: downsampling inputs] ###\n", + "\n", + " # Entry block\n", + " x = layers.Conv2D(32, 3, strides=2, padding=\"same\")(inputs)\n", + " x = layers.BatchNormalization()(x)\n", + " x = layers.Activation(\"relu\")(x)\n", + "\n", + " previous_block_activation = x # Set aside residual\n", + "\n", + " # Blocks 1, 2, 3 are identical apart from the feature depth.\n", + " for filters in [64, 128, 256]:\n", + " x = layers.Activation(\"relu\")(x)\n", + " x = layers.SeparableConv2D(filters, 3, padding=\"same\")(x)\n", + " x = layers.BatchNormalization()(x)\n", + "\n", + " x = layers.Activation(\"relu\")(x)\n", + " x = layers.SeparableConv2D(filters, 3, padding=\"same\")(x)\n", + " x = layers.BatchNormalization()(x)\n", + "\n", + " x = layers.MaxPooling2D(3, strides=2, padding=\"same\")(x)\n", + "\n", + " # Project residual\n", + " residual = layers.Conv2D(filters, 1, strides=2, padding=\"same\")(\n", + " previous_block_activation\n", + " )\n", + " x = layers.add([x, residual]) # Add back residual\n", + " previous_block_activation = x # Set aside next residual\n", + "\n", + " ### [Second half of the network: upsampling inputs] ###\n", + "\n", + " for filters in [256, 128, 64, 32]:\n", + " x = layers.Activation(\"relu\")(x)\n", + " x = layers.Conv2DTranspose(filters, 3, padding=\"same\")(x)\n", + " x = layers.BatchNormalization()(x)\n", + "\n", + " x = layers.Activation(\"relu\")(x)\n", + " x = layers.Conv2DTranspose(filters, 3, padding=\"same\")(x)\n", + " x = layers.BatchNormalization()(x)\n", + "\n", + " x = layers.UpSampling2D(2)(x)\n", + "\n", + " # Project residual\n", + " residual = layers.UpSampling2D(2)(previous_block_activation)\n", + " residual = layers.Conv2D(filters, 1, padding=\"same\")(residual)\n", + " x = layers.add([x, residual]) # Add back residual\n", + " previous_block_activation = x # Set aside next residual\n", + "\n", + " # Add a per-pixel classification layer\n", + " outputs = layers.Conv2D(num_classes, 3, activation=\"softmax\", padding=\"same\")(x)\n", + "\n", + " # Define the model\n", + " model = keras.Model(inputs, outputs)\n", + " return model\n", + "\n", + "\n", + "# Free up RAM in case the model definition cells were run multiple times\n", + "keras.backend.clear_session()\n", + "\n", + "# Build model\n", + "model = get_model(img_size, num_classes)\n", + "model.summary()" + ] + }, { "cell_type": "code", "execution_count": null, @@ -1918,6 +2224,27 @@ "outputs": [], "source": [] }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Part IV : Object Detection with Yolo" + ] + }, { "cell_type": "markdown", "metadata": { @@ -1925,7 +2252,7 @@ "id": "R0dfpdDOGhM2" }, "source": [ - "# Part IV : Object Detection with Mask R-CNN\n", + "# Part V : Instance Segmentation with Mask R-CNN\n", "\n", "### Please run this section on Colab !" ]