diff --git "a/docs/notebooks/ex04a - more in cnn.ipynb" "b/docs/notebooks/ex04a - more in cnn.ipynb" new file mode 100644--- /dev/null +++ "b/docs/notebooks/ex04a - more in cnn.ipynb" @@ -0,0 +1 @@ +{"nbformat":4,"nbformat_minor":0,"metadata":{"colab":{"name":"ex4 - more in cnn.ipynb","provenance":[{"file_id":"196zIUCpGGm7Eb3oPxLqnRmXxK96Ejd1m","timestamp":1654164418111}],"collapsed_sections":[],"machine_shape":"hm","toc_visible":true},"kernelspec":{"name":"python3","display_name":"Python 3"},"language_info":{"name":"python"},"accelerator":"GPU","gpuClass":"standard"},"cells":[{"cell_type":"markdown","source":["# CIFAR10 Data\n","\n","**Note**: Please make sure to \"Save a Copy\" if you want to edit this script.\n","\n","This section we dive deeper into the field of image classification problem, an important type of tasks to master in object recognition and computer vision.\n","\n","We investigate a new dataset that is a little more complicated than the MNIST dataset we looked at before. The new data is called CIFAR10. It is slightly larger in sizes of each image and the images are colored. Hence, ther eare 3 channels, i.e. RGB. Source of the data is [here](https://www.cs.toronto.edu/~kriz/cifar.html)\n","\n","

\n"," \n","

\n","\n","The labels for the objects are:\n","\n","| Label | Description |\n","| --- | --- |\n","| 0\t | airplane |\n","| 1\t | automobile |\n","| 2\t | bird |\n","| 3\t | cat |\n","| 4\t | deer |\n","| 5\t | dog |\n","| 6\t | frog |\n","| 7\t | horse |\n","| 8\t | ship |\n","| 9\t | truck |\n","\n","## Research Question\n","\n","Can AI recognize different objects *in colors*?\n","\n","## Agenda\n","\n","This is the standrad image data for developing neural network models and convolutional neural network models. \n","\n","- Convolutional Neural Networks\n","- Transfer learning\n","\n","Goal: To develop state-of-the-art CNN models.\n","\n","## Notes\n","\n","Most of the notes are taken using markdown area. To learn more diverse editting techniques for you to take quick notes using markdown, please click [here](https://colab.research.google.com/notebooks/markdown_guide.ipynb)."],"metadata":{"id":"ZgxIJ7VDkatT"}},{"cell_type":"code","source":["# library\n","import numpy as np\n","import pandas as pd\n","import matplotlib.pyplot as plt\n","\n","# import tf\n","import tensorflow as tf"],"metadata":{"id":"ulxmSEJYZqD7"},"execution_count":null,"outputs":[]},{"cell_type":"code","source":["# use tf API to get data\n","cifar10 = tf.keras.datasets.cifar10\n","(training_images, training_labels), (test_images, test_labels) = cifar10.load_data()\n","print(training_images.shape)\n","print(training_images[0].shape)"],"metadata":{"colab":{"base_uri":"https://localhost:8080/"},"id":"XG_ELaMhaDZe","executionInfo":{"status":"ok","timestamp":1657578599824,"user_tz":240,"elapsed":575,"user":{"displayName":"Yiqiao Yin","userId":"16271867367914268422"}},"outputId":"08559546-ee91-4400-f8e4-b89b133a3072"},"execution_count":null,"outputs":[{"output_type":"stream","name":"stdout","text":["(50000, 32, 32, 3)\n","(32, 32, 3)\n"]}]},{"cell_type":"code","source":["# define the objects names\n","obj_names = [\n"," 'airplane',\n"," 'automobile',\n"," 'bird',\n"," 'cat',\n"," 'deer',\n"," 'dog',\n"," 'frog',\n"," 'horse',\n"," 'ship',\n"," 'truck'\n","]"],"metadata":{"id":"HcEKrdxJjSB-"},"execution_count":null,"outputs":[]},{"cell_type":"code","source":["# check out the unique levels\n","np.unique(training_labels)"],"metadata":{"colab":{"base_uri":"https://localhost:8080/"},"id":"QLPSkL5-kNv_","executionInfo":{"status":"ok","timestamp":1657578599825,"user_tz":240,"elapsed":7,"user":{"displayName":"Yiqiao Yin","userId":"16271867367914268422"}},"outputId":"4464be46-ce8c-42cd-e10f-f40382f63c58"},"execution_count":null,"outputs":[{"output_type":"execute_result","data":{"text/plain":["array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9], dtype=uint8)"]},"metadata":{},"execution_count":12}]},{"cell_type":"code","source":["# notice the data type\n","training_labels[0], training_labels[0][0], obj_names[training_labels[0][0]]\n","\n","# comment\n","# - the first [0] extracts the first instance\n","# - the second [0] gets the item from the array\n","# this is because [0] is different than 0 itself"],"metadata":{"colab":{"base_uri":"https://localhost:8080/"},"id":"QSxZwasijrfu","executionInfo":{"status":"ok","timestamp":1657578599825,"user_tz":240,"elapsed":6,"user":{"displayName":"Yiqiao Yin","userId":"16271867367914268422"}},"outputId":"e59523d3-ee79-4d6e-958d-6eb136074d11"},"execution_count":null,"outputs":[{"output_type":"execute_result","data":{"text/plain":["(array([6], dtype=uint8), 6, 'frog')"]},"metadata":{},"execution_count":13}]},{"cell_type":"code","source":["# what does it look like?\n","i = 12\n","plt.imshow(training_images[i])\n","plt.title('object:'+obj_names[training_labels[i][0]])\n","# plt.colorbar()"],"metadata":{"colab":{"base_uri":"https://localhost:8080/","height":298},"id":"-EQeZ2VPiSD_","executionInfo":{"status":"ok","timestamp":1657578600306,"user_tz":240,"elapsed":485,"user":{"displayName":"Yiqiao Yin","userId":"16271867367914268422"}},"outputId":"b47a0505-826c-401f-fd7c-18d70f3da5f0"},"execution_count":null,"outputs":[{"output_type":"execute_result","data":{"text/plain":["Text(0.5, 1.0, 'object:horse')"]},"metadata":{},"execution_count":14},{"output_type":"display_data","data":{"text/plain":["
"],"image/png":"iVBORw0KGgoAAAANSUhEUgAAAPsAAAEICAYAAACZA4KlAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4yLjIsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy+WH4yJAAAgAElEQVR4nO2deZBld3XfP+ctvfcsPZtas2g0o9FqtDFWIAiMwcJCVY6gQrlQKkDZckTFkISUXbFKTgUR4wSnDCpcdrCHSIXAWIIIySgUAWShBYKR1AJpNNJEy0iz9fRMz9Ld03u/5eSPdwd6Jr/z655e3uvR73yqXvXr33m/e8+975577/t97zk/UVUcx3nzk2u0A47j1AcPdsdJBA92x0kED3bHSQQPdsdJBA92x0kED/ZzBBH5ioh8NmIfEZEtdfBDReSixV6Ps/B4sL9JUNUOVX19PssQkcdF5PcWyidnaeHB7jQEESk02ofU8GBfYojIZdkVdlBEXhSRfzbNvFpEHhGRYRF5QkQumNbvF7fXItIsIn8uIvtF5IiI/LWItE777M0i8pyInBSRPSJyo4j8KfBO4C+znwR/GXHzN0Tk1czHvxIRyZabE5H/KCL7RKRfRL4qIssz2+bMx1tFZD/wQxFpEZG/FZHj2bKeEZF12eeXi8jdItInIr0i8lkRyS/Yjk4RVfXXEnkBReA14A6gCXgPMAxcAnwle/8uoBn4IvDjaX0VuCh7fxfwMNAFdAL/C/ivme06YAi4gdrJfj1waWZ7HPi9M3z6DnD7Gev5DrAC2AQcBW7MbL+b+b8F6AAeBL6W2TZnfb8KtAOtwMcz39qAPPBWYFn2+YeAv8k+uxZ4Gvh4o7+jc/nVcAf8Ne3LqF1ZDwO5aW33AXdmwX7/tPYOoAJszP5X4CJAgFFg67TPvh14I3v/N8Bdxvr/v2APfEaB66f9/81TJwPgUeD3p9kuAUpAYVqwb5lm/13gJ8CVZ6xjHTAJtE5ruwV4rNHf0bn88t9NS4vzgQOqWp3Wto/a1RfgwKlGVR0RkROn+kz7/BpqV8pns7trqJ0ATt0CbwS+O08/D097P0btxHPK/31n+F6gFrynmO7r1zJ/7heRFcDfAn8MXEDtLqdv2jbkzujrnCUe7EuLQ8BGEclNC/hNwCvUrowbT31QRDqo3aYfOmMZx4Bx4ApV7Q2s4wCw1Vj/fFMgD1EL1FNsAsrAEWDDmetQ1RLwGeAzIrKZ2kno5ezvJLBaVcvz9MnJ8AG6pcVT1K6U/0FEiiLybuC3gPsz+00icr2INAF/AvxUVU+72mUniS8Dd4nIWgARWS8iv5l95G7gd0TkvdmA2noRuTSzHaH2e3uu3Af8exG5MDsZ/RfgG1bAisivi8hbsoG3k9Ru+auq2gf8APi8iCzL/NwqIr82D9+Sx4N9CaGqU9SC+/3UrtD/Hfioqv7f7CN/B3waOEFtMOtfGov6I2oDZT8VkZPAP1D7/YyqPg38DrVBvCHgCX55Nf4i8CERGRCRvwAQkf8tInfMchPuoXZr/iTwBjAB/JvI588DHqAW6LszX76W2T5KbZDyJWAg+1z3LP1wAkg2+OGcw4hIjtpg3QWqur/R/jhLE7+yvzn4FWpX0cMzfdBJFw/2cxwR+efAY8AfZT8DHCeI38Y7TiL4ld1xEqGuOnvnytW6Zv2moG0udxi/fN4isLxYPyIdnaXJOX4HGvNeDWt0iw3j8UMHGBk8HjzA5xXsInIjNbkmD/wPVf1c7PNr1m/iTx74UdBWrZz9sxMSifa5BnvsBGL2ObePw3OCc+LnZsTF6mkPRZ5OibCtXLX7UAqv7E8/eoPZZc638dmDEH9FTRO+HLhFRC6f6/Icx1lc5vOb/TrgNVV9PRsFvh+4eWHcchxnoZlPsK/n9MSEg/wyYeMXiMhtItIjIj0nB47NY3WO48yHRR+NV9UdqrpdVbcvW7l6sVfnOI7BfIK9l2lZWNSymkJZVo7jLAHmMxr/DLBNRC6kFuQfBv5FrIMIFPLh4e7qXM47cxk6h7jwFlmmZclFBk3n7sg5zhwGzy0Jqmac286KLnMOxJSc2LpU7eM7ZygN+cg2V43FxfbSnINdVcsi8kng+9Skt3tU9cW5Ls9xnMVlXjq7qn6X+Vc9cRynDvjjso6TCB7sjpMIHuyOkwge7I6TCHWvLlvIGdJbRGaIJbwsBWSup8ylvVnzYqFF0TkLaOZxtfCJNRrb6sjqxMgBk0jyT9WIo9ih6Fd2x0kED3bHSQQPdsdJBA92x0kED3bHSYS6jsYLkLce4J9Lwa0lgp8xlzBLRPGoxkbWy+Hh+FylYvaZy1T1fpw6TiJ4sDtOIniwO04ieLA7TiJ4sDtOIniwO04i1DcRRoSckTWiEpEZTOktpqssvOZi1qCL5j/E/JijpLjAMuVc66rNjfpqYXPKoYpPJxTpFqlBV7WP78rUZLC9NGnPkiSFpvB6IhKfX9kdJxE82B0nETzYHScRPNgdJxE82B0nETzYHScR6l6Djlw4W0fVliYKGBJEdLaghT+PWZl5sWl6KhHtp7oI2XxCeC6quEg5t9pvMf+tuoGxeoKxzMcFF+wi68pFjkVbDAOMqc0AchFpuTQ5EmyfmrBX1dwSlt5i2zWvYBeRvcAwUAHKqrp9PstzHGfxWIgr+6+rqk+87jhLHP/N7jiJMN9gV+AHIvKsiNwW+oCI3CYiPSLSc/KE3wA4TqOYb7Bfr6rXAu8HPiEi7zrzA6q6Q1W3q+r2ZV2r57k6x3HmyryCXVV7s7/9wEPAdQvhlOM4C8+cB+hEpB3Iqepw9v59wH+O9sGe0kYi5x3Rsz8nLUaJSktZmRoZNvtIRI5pam01bZVI9lJMVtQ5pHnNNbMtt1SGfOaQpTbXXMT4FE+R70UNqQwYHx0Ktk+MjZt9mouW9BaWXmF+o/HrgIcy3bQA/J2qfm8ey3McZxGZc7Cr6uvAVQvoi+M4i8gSuQ9zHGex8WB3nETwYHecRPBgd5xEqPNcb0qRqaCtWrVdsee1sjOJchEJIiat5HL2+W/o6JFg+6MPPWD26ezoMG0XX3qJaWtdudy0ta9ZY9raOrqC7ZVIZp6Kva9iV4O4JGrs5TlqotGr0hxS4mISZSVyDMQ2IBeTS9U+vgeO9wXb9+7ZZfb5p29/v7GiSEyYFsdx3lR4sDtOIniwO04ieLA7TiJ4sDtOItS3Bp1WyFVPhh0Re/TZGje16q3BDFPxREZN81I0bYPHDgfbd/70cXtdE2H1AeCNnRtN27L160zb5rdcadre/s7fDLaLtJh9KpHReCtxCeKjzzaRunWRYfX4gHusX3h9sdH4WKJRZWrUtB05dMi0rVtrf9eVqXAizN7Xfm72WdbWHmwfH7eTsvzK7jiJ4MHuOIngwe44ieDB7jiJ4MHuOIngwe44iVBX6a1UmuDQgZeCtu6Nv2r2qxpJLZasUrPN7TymFXuCn0p5Mti+vDky7U/F9nG0/6BpO34ynBwBcHTwqGlrLSwLtl957TvMPrnmiEwZSTaSBT58chF9LV4zLjYPmCG9Ve0l5gv2sXNw38um7adPfN+0XXfd9aZt/54Xg+1HD+0z+zwzFj4WR0ddenOc5PFgd5xE8GB3nETwYHecRPBgd5xE8GB3nESoq/Q2OTHGnldeCNrOX2/PN5GzMtEimUsxqaaat89x5YmwpAHwyvPPBttzpTGzz9pIDbq9/ba8hoSzmgCqQ+HMQYAfPvz3wfb2or28y695i2krx+SwiFZmlbyrVG2ZrBKpn1aI1IWTSJZazrDlI3JdedLevy8/94+m7aWf/8i0jQz1mrZD+/cH2weHBsw+pWp4X1XKdpbljFd2EblHRPpFZNe0ti4ReUREXs3+rpxpOY7jNJbZ3MZ/BbjxjLbbgUdVdRvwaPa/4zhLmBmDXVWfBE6c0XwzcG/2/l7gAwvsl+M4C8xcB+jWqeqpH5yHqc3oGkREbhORHhHpGR22q3w4jrO4zHs0Xms1nszRDlXdoarbVXV7e6c9SOQ4zuIy12A/IiLdANnf/oVzyXGcxWCu0tvDwMeAz2V/vz2bTpVymaFj4fNCZcKWOwqta4PtVbtOIiK2BKE5u6jkCcM/gD07nwm2dzbZu3F5c7NpO37Mzl4rDw2atq4xe8NXrg5rXi/3/Njs8/ru501bxwpbaLnqrdeatmJruMBlNTa1UkTms6QmgMlx+7seHx4Jto8MHjf7HNgXzkIDeKnHlteqkWKP/b17Tduw4WNLe5vZJ1cwjoHIPpyN9HYf8I/AJSJyUERupRbkN4jIq8BvZP87jrOEmfHKrqq3GKb3LrAvjuMsIv64rOMkgge74ySCB7vjJIIHu+MkQl2z3srlKU4cDxdZfOP1nWa/S654Z7Bdcq1mn2IkEyofmaPswN69pm1wMCyHbepebfZhtGSaYlOlxQpfjo+G5wYDWNkVlsomh2xJcdczT5u2piZ7Pw68Zkt2Le3hB6haO+zvjEhG3OBRWyobjzyZedDIKBsZtmUymiKZeWU7wzEXmTOvnLO/z47mzmD7eKRYabU6HjbE5uYzLY7jvKnwYHecRPBgd5xE8GB3nETwYHecRPBgd5xEqKv0ptUKU+PhInqHesNzwAFsu+TqYPvoiCE/AOWI1JSLzOU1cuyIaZucChejnIxkZA1EsuiGxsLZTgBtbXbuf6EQKbSp4QywSkSuW9NuZwHmq3YBzoE94eKhAJPjYYmqXLKXF5MiW9vtwp1dnXZ2WPX462E/xuxMuW2XXmHaWprCGZgAI8Y2A+w7emaxp18yWAofB9Juy3UtncYxPJ+sN8dx3hx4sDtOIniwO04ieLA7TiJ4sDtOItR1NL5arTBl1Ona/4Zd9+v1V3cH25vza8w+rz39uGnrbLVHn3MlewS0bCRBPLXz52afNR12DbfxyHRHlRF7pH71Wnu7K6XwKPPoiF3TblWkzlxlKjK8OxUpAjge3o9tOXvIvdDSZNq6N59n2vJlOxGmtyWciHRy0k5Qqk7ZI/WdHbZKsmH1KtPW1bnCtN3/vUeC7Wu32SP/K9YvD7YX8nmzj1/ZHScRPNgdJxE82B0nETzYHScRPNgdJxE82B0nEeoqvQmQM7IdBk8cNvsdPtQbbH/nWy83+1z27neYtj0v2bXTRnqPmbZCLiyVDWLLdcubbSmke+sFpu3A7j2mbXLCXl+xKzzdVLE5PB0TgEYSa6bKtv/SZCegTBKezitfsSWvlrwtvXU02dNo5bGTa9asCEtUR4ftmnbHBsPJWgBSiSTyTNpTmHWvsuXS5S3hbZscs9fVavQRsb/L2Uz/dI+I9IvIrmltd4pIr4g8l71ummk5juM0ltncxn8FuDHQfpeqXp29vruwbjmOs9DMGOyq+iRgJ+M6jnNOMJ8Buk+KyM7sNt983lJEbhORHhHpmZywf685jrO4zDXYvwRsBa4G+oDPWx9U1R2qul1Vtze32M+kO46zuMwp2FX1iKpWVLUKfBm4bmHdchxnoZmT9CYi3aral/37QWBX7POnUBUqU2EpZ1JsiSdfDLtZtqbAAZoiGVTL2uzN7u6ws7IuXBOWmlpaI9NQdW4ybVdd3W3aqhP2eXhqYsK0FXLhfmpkwwEcG7Tr5PUds4dr2trsunDNavxkm7S/s5aS/Z0NnThq2qRk135rLoa/m6kp+yfl2JSdRUfBznobGLBl25GItNwkYV9yrfa6lq0Kb1c+Ul9xxmAXkfuAdwOrReQg8Gng3SJyNaDAXuDjMy3HcZzGMmOwq+otgea7F8EXx3EWEX9c1nESwYPdcRLBg91xEsGD3XESoa5ZbyAoYXllbNSWvMYnwkUq+4/tM/sUjKwggJYOWyq75rItpq2vN1wU8+jO/WafjRfZ8toF3atNW/5K24+enzxl2oaHwvJPITKdVGXcztYaOHLItB2LHD7LjaKeLQX7e25vs6W3wVHbx/Hh8PEBMGokCI5GikqWx+x1lbGz11pa7ONq9Hg4cxOgUg7LkcuXrTP7tHaEs9sM5bVms02O47yZ8GB3nETwYHecRPBgd5xE8GB3nETwYHecRKir9NbS2sK2Ky4O2gYG7cyl8aEjwfZdO+0so6f77Uyu4ridefWH//b3TdsHl4XlqxWrnjD7jB7rM23t/a+atos77My2PXbtSA7uD8uR+Y2bzT6lsi2HTap9PRg5aUte46NhaagjNs9e3t6w4TG7yOaJQfs4GDWy2wZH7f3bZK+KPfsOmraNq8LFLQGKRTurc7ISnjOvkLP7aNly0v4u/cruOIngwe44ieDB7jiJ4MHuOIngwe44iVDX0fh8Ic+q87qCtrXr7AQDquGR3ZND9jQ9R0/ao+DDvXa//X32KP75q88Ptr/v195r9jnw/LOm7cQhexqq3JoVpq17tVm5m9f27A62l8MDvjUb9pRBIxHlQiL1zqaMUeGhcXtKo/Ej9qh6Xux1DU8OmbZCmzFNUkQVGIioDKMj9v6YHLdr152/xq7XN1YKTyvW3GonBlm15iTyXfqV3XESwYPdcRLBg91xEsGD3XESwYPdcRLBg91xEmE2M8JsBL4KrKP2lP0OVf2iiHQB3wA2U5sV5rdV1da0AERBwg/wK3ZNMJWwNGHV4QJYt36taWvNhadxAihVw+sCGDGkPlFbxvnVGz5k2l590a4xNlmyJaqmZ+zae61GfT0Ve18NDg2atnI1khUidtIFatisdqBQsqdkkpztf+vqSE3Bf3JlsH1Nl13/7/Ef2DX+Dh+wp6HqPWFv28iE/X2W8uFta19lH6dVI0dG7d00qyt7GfgDVb0ceBvwCRG5HLgdeFRVtwGPZv87jrNEmTHYVbVPVX+WvR8GdgPrgZuBe7OP3Qt8YLGcdBxn/pzVb3YR2QxcAzwFrJs2k+tharf5juMsUWYd7CLSAXwL+JSqnlZYW1UVI2teRG4TkR4R6RkdtgtUOI6zuMwq2EWkSC3Qv66qD2bNR0SkO7N3A8GHylV1h6puV9Xt7Z32gIPjOIvLjMEuIkJtiubdqvqFaaaHgY9l7z8GfHvh3XMcZ6GYTdbbO4CPAC+IyHNZ2x3A54BvisitwD7gt2dakCjkDClnqmJLE8Xm8DlpbHTE7FNWO80r32JnE/39ww+atmu2hIcl+vvtrKu1l73TtLWutIc5en7yQ9O2/5idHdbWGa6TNzlp74/2Nrv2Wxlbelu1bpVpy+XD2lC+YMuUTUYfgPXrzzNtG66wbau7lwXbm8U+9AcH7ay37/f/yLSVLD0MGJ60NbG1F4T9X7spnCEKIE2GVB2R3mYMdlX9cWQRdm6n4zhLCn+CznESwYPdcRLBg91xEsGD3XESwYPdcRKhrgUnK9UKI2NhWWNswn66TgxFY2TULv6H2ptWKdpy0vceecy09e0OF5zsjxQhrL64x7TFZK3JSBHFpi47y2vqcDgzb2zEzuYbV9uPNRH557c+/D7TJi1hASeXj/g+bPtxXqTI5nj+pG0rheXZtlb7Aa9tl201bf/niWdM2+RwZGqrFnu7L77ikmD72i5734+XwnGUt4IFv7I7TjJ4sDtOIniwO04ieLA7TiJ4sDtOIniwO04i1FV6ExEKxfAqdczOyrJqQEpk/q9ii21rbbVlkG2/crFp29K1PtieO2nPDzeYswtprltlFz1sW3WhaSuNTZi2gUNhSWb4RKyopF0ocWjIziwcnrDnNssbiYVTU7ZMJhVbujoyZMty5SZ7f1hK1EBEtq0U7P3RFqnJMNRv749KZK69gWPh70ZL4eMNIF+xKk7a6/Eru+Mkgge74ySCB7vjJIIHu+Mkgge74yRCXUfjVauUJ8O15joiiQmFQtjNicjURJWSnfiRy9mbvTKScDE8Hh5J3nrVJtuPZfbIf3POTloYGLNHwYtty03b8vPD014d2msn1mxca9dw6xs6bNsOHTdta5o7gu3VSPLP8uX2MZDP29elQlt4XQAVDR8HzU32uootzaZtw9YNpq13zyumjart/8H9fcH28clLzT7F9rCPkrPX41d2x0kED3bHSQQPdsdJBA92x0kED3bHSQQPdsdJhBmlNxHZCHyV2pTMCuxQ1S+KyJ3AvwKOZh+9Q1W/O9PyrOf029psKcRKeBkZsZM7BDvzoNBkSytty8LTJwF0rQhPk9QWSWgZxE6EKZUiU1QV7SmZhg35EmDVhrD0Vux8w+xz1VXhGmgAUzvtdZWmbP9XrwpPDaX5ktmnrcne96WKneFRLdoJNAVDsqtNPBymJVIv7qLLtpi2F586YNo62uxts47VitrX4hUrwvKrNe0WzE5nLwN/oKo/E5FO4FkReSSz3aWqfz6LZTiO02BmM9dbH9CXvR8Wkd2AnXvnOM6S5Kx+s4vIZuAa4Kms6ZMislNE7hER+9Ezx3EazqyDXUQ6gG8Bn1LVk8CXgK3A1dSu/J83+t0mIj0i0jM2YhcZcBxncZlVsItIkVqgf11VHwRQ1SOqWlHVKvBl4LpQX1XdoarbVXV7W4c96OQ4zuIyY7CLiAB3A7tV9QvT2runfeyDwK6Fd89xnIViNqPx7wA+ArwgIs9lbXcAt4jI1dTUtL3Ax2dakAJl4/RSyYWnCwIoFMJyQlOzLblMjtr1wFra7DuMrrVhyQigxVCh8kVbytNI9l1rROLJRzL6SiXbtmFzOINt72ZbHly+zt4fV1xl1+Rra7f971y2LNg+NhGukQcwNWX/zKtE9ofkwusCqBiS3fionQXYFvleWjuM4nrA+Rfa+3jTBfaY9qGD4czCo8ciPp4XlvKqEUlxNqPxPwZCkTijpu44ztLBn6BznETwYHecRPBgd5xE8GB3nETwYHecRKjv9E+5HPnWsHQxVrGzw5oLYVmuY7ktueQj8+CUKnbmlRTt89/YcFg2aq/ackykdiGUbKkpp3ZG2douu+BkuS0sU17xVltCs6ZqAtiycqNp23/ULkY5NDAQbC822ysrRbL5yhV7X7U1R6S3clj67GyNZKFF9n27UegRYP3WNaZt07ZwNiLASUMGPHnSlinHxsPTV1Wrtu9+ZXecRPBgd5xE8GB3nETwYHecRPBgd5xE8GB3nESoq/SGQM5IVJucsKW38lhYKqtEst7yLfamSS5W6DFSsK9tRbB9omxLeU2RjDgxJEWAfMW2Fa2dCEgxLDle/JYLzT5U7Mw8yrYfY2pnFopRjHL5Mruw6PGxsJwEUJqypdRcxP98JZwtV8zHDn17XbFMv/bltqy4ep0tl67f2BVsnyzZUmSz8bWI/XX5ld1xUsGD3XESwYPdcRLBg91xEsGD3XESwYPdcRKhvtIbChqWQkQiWWrlcJ/JqYjkko8VsLQ3uyK2LFcy5pybKtnS27jhO0ClEsuusiWqUmR9BWOur+ZOWwKMZUpRtm0btoSLWwK0GNmNEdWQ1na78GUxkj44PjZi2srG/i/k7Ky3XOQYyOXtDTjvfLtYaVub7f+WreHMwv6jR4PtAM1GdmYuor35ld1xEsGD3XESwYPdcRLBg91xEsGD3XESYcbReBFpAZ4EmrPPP6CqnxaRC4H7gVXAs8BHVNXOZgFQpWIkjagxTQ8A1fCo+3gkeYZcJHHCGFUHyOVsW9lIuBgZt+ujxUbOI/kWdE50mLaONnskub0tPIpfKNijyBOxhIsmu1/JSDIBqFTD252zu9DaGUkyETvJZGLcPoyt/Z+LTDfW1GSrAhIJmU0X2lM8VSLJOq2d4e+su8VWO8hHFBSD2VzZJ4H3qOpV1KZnvlFE3gb8GXCXql4EDAC3nvXaHcepGzMGu9Y4JWQWs5cC7wEeyNrvBT6wKB46jrMgzHZ+9nw2g2s/8AiwBxhU/cUTMgcB+x7GcZyGM6tgV9WKql4NbACuAy6d7QpE5DYR6RGRnrFh+7et4ziLy1mNxqvqIPAY8HZghYicGq3YAPQafXao6nZV3d7WaQ98OI6zuMwY7CKyRkRWZO9bgRuA3dSC/kPZxz4GfHuxnHQcZ/7MJhGmG7hXRPLUTg7fVNXviMhLwP0i8lng58DdMy9KkaqRmCB27TersNaxgRN2n0giTOey2LRR9vnv+MBgsH141P55Eku6KRZtOenkiF3fTSOJK6VyWI5cttyugTYxFZl2yZDQajZb+lQjAaWpxZbymiO1AZub7ONDq7YtZ0hUsSSk2DYrkW3GPuamIglFVnJNoWgfO2WM7yxSg27GYFfVncA1gfbXqf1+dxznHMCfoHOcRPBgd5xE8GB3nETwYHecRPBgd5xEENVI6tVCr0zkKLAv+3c1cKxuK7dxP07H/Tidc82PC1R1TchQ12A/bcUiPaq6vSErdz/cjwT98Nt4x0kED3bHSYRGBvuOBq57Ou7H6bgfp/Om8aNhv9kdx6kvfhvvOIngwe44idCQYBeRG0XkZRF5TURub4QPmR97ReQFEXlORHrquN57RKRfRHZNa+sSkUdE5NXs78oG+XGniPRm++Q5EbmpDn5sFJHHROQlEXlRRP5d1l7XfRLxo677RERaRORpEXk+8+MzWfuFIvJUFjffEImU3A2hqnV9AXlqNey2AE3A88Dl9fYj82UvsLoB630XcC2wa1rbfwNuz97fDvxZg/y4E/jDOu+PbuDa7H0n8Apweb33ScSPuu4TalnpHdn7IvAU8Dbgm8CHs/a/Bv712Sy3EVf264DXVPV1rdWZvx+4uQF+NAxVfRI4s/LGzdSq9EKdqvUaftQdVe1T1Z9l74epVUJaT533ScSPuqI1FryicyOCfT1wYNr/jaxMq8APRORZEbmtQT6cYp2q9mXvDwPrGujLJ0VkZ3abv+g/J6YjIpupFUt5igbukzP8gDrvk8Wo6Jz6AN31qnot8H7gEyLyrkY7BLUzO9H5YhaVLwFbqU0I0gd8vl4rFpEO4FvAp1T15HRbPfdJwI+67xOdR0Vni0YEey8wffZ5szLtYqOqvdnffuAhGltm64iIdANkf/sb4YSqHskOtCrwZeq0T0SkSC3Avq6qD2bNdd8nIT8atU+ydZ91RWeLRgT7M8C2bGSxCfgw8HC9nRCRdhHpPPUeeB+wK95rUXmYWpVeaGC13lPBlfFB6rBPRESoFSzdrapfmGaq6z6x/Kj3Plm0is71GmE8Y7TxJmojnbLReU8AAACOSURBVHuAP26QD1uoKQHPAy/W0w/gPmq3gyVqv71upTZB5qPAq8A/AF0N8uNrwAvATmrB1l0HP66ndou+E3gue91U730S8aOu+wS4klrF5p3UTiz/adox+zTwGvA/geazWa4/Lus4iZD6AJ3jJIMHu+Mkgge74ySCB7vjJIIHu+Mkgge74ySCB7vjJML/A1v18grPljsKAAAAAElFTkSuQmCC\n"},"metadata":{"needs_background":"light"}}]},{"cell_type":"code","source":["# rescale\n","training_images = training_images / 255\n","test_images = test_images / 255"],"metadata":{"id":"1EyMQfvkzltC"},"execution_count":null,"outputs":[]},{"cell_type":"code","source":["# one hot encode\n","training_labels_one_hot_encoded = tf.keras.utils.to_categorical(training_labels)\n","test_labels_one_hot_encoded = tf.keras.utils.to_categorical(test_labels)\n","print(training_labels_one_hot_encoded.shape, test_labels_one_hot_encoded.shape)"],"metadata":{"colab":{"base_uri":"https://localhost:8080/"},"id":"MzIzfWZfbpvF","executionInfo":{"status":"ok","timestamp":1657578600307,"user_tz":240,"elapsed":7,"user":{"displayName":"Yiqiao Yin","userId":"16271867367914268422"}},"outputId":"d3e1f951-9e57-4aa7-8109-fd413726badb"},"execution_count":null,"outputs":[{"output_type":"stream","name":"stdout","text":["(50000, 10) (10000, 10)\n"]}]},{"cell_type":"markdown","source":["# Convolutional Neural Networks\n","\n","The benefit of using CNNs is their ability to develop an internal representation of a two-dimensional image. This allows the model to learn position and scale in variant structures in the data which is important when working with images. "],"metadata":{"id":"r-1YEUiXEn3x"}},{"cell_type":"markdown","source":["## Introduction\n","\n","

\n"," \n","

\n","\n","First, we introduce convolution operation. A convolution operation is like a matrix operation. It is defined as element-wise matrix multiplication. \n","\n","### Convolution layer (CONV)\n","\n","The convolution layer (CONV) uses filters that perform convolution operations as it is scanning the input II with respect to its dimensions. Its hyperparameters include the filter size FF and stride SS. The resulting output OO is called feature map or activation map.\n","\n","

\n"," \n","

\n","\n","$$\n","\\underbrace{\n","\\begin{bmatrix}\n","1 & 2 & 6 \\\\\n","5 & 4 & 5 \\\\\n","5 & 6 & 7 \\\\\n","\\end{bmatrix}\n","}_\\text{image}\n","⊗\n","\\underbrace{\n","\\begin{bmatrix}\n","1 & 1 \\\\\n","0 & 0 \\\\ \n","\\end{bmatrix}\n","}_\\text{filter}\n","= \n","\\begin{bmatrix}\n","1 \\times 1 + 2 \\times 1 + 0 + 0 & 2 \\times 1 + 6 \\times 1 + 0 + 0 \\\\\n","5 \\times 1 + 4 + 0 + 0 & 4 \\times 1 + 5 + 0 + 0 \\\\\n","\\end{bmatrix}\n","=\n","\\begin{bmatrix}\n","3 & 8 \\\\\n","9 & 9 \\\\\n","\\end{bmatrix}\n","$$\n","\n","Next, we introduce pooling. There are two types of pooling: (1) average pooling, and (2) maximum pooling.\n","\n","### Pooling (POOL)\n","\n","The pooling layer (POOL) is a downsampling operation, typically applied after a convolution layer, which does some spatial invariance. In particular, max and average pooling are special kinds of pooling where the maximum and average value is taken, respectively.\n","\n","This is average pooling.\n","$$\n","\\text{ave}\\bigg(\n","\\begin{bmatrix}\n","4 & 6 \\\\\n","8 & 10 \\\\\n","\\end{bmatrix}\n","\\bigg) = (4 + 6 + 8 + 10) \\frac{1}{4} = 28/4 = 7\n","$$\n","\n","This is maximum pooling.\n","$$\n","\\text{max}\\bigg(\n","\\begin{bmatrix}\n","4 & 6 \\\\\n","8 & 10 \\\\\n","\\end{bmatrix}\n","\\bigg) = \\max\\{4, 6, 8, 10\\} = 10\n","$$\n","\n","| Type | Max Pooling | Average Pooling |\n","| --- | --- | --- |\n","| Purpose | Each pooling operation selects the maximum value of the current view | Each pooling operation averages the values of the current view |\n","| Illustration | | |\n","| Comments | Preserves detected features; Most commonly used | Downsamples feature map, Used in LeNet |\n","\n","### Fully Connected (FC)\n","\n","The fully connected layer (FC) operates on a flattened input where each input is connected to all neurons. If present, FC layers are usually found towards the end of CNN architectures and can be used to optimize objectives such as class scores.\n","\n","Actions:\n","- Flatten: from 2D array to 1D array | for example, lay out each value from 3 by 3 matrix and expand them in a vector of length 9\n","- fully connected: each neuron (or unit) in each layer is connected with each neuron from the previously layer\n","\n","

\n"," \n","

\n"],"metadata":{"id":"u-OOkRPXzits"}},{"cell_type":"code","source":["training_images.shape"],"metadata":{"colab":{"base_uri":"https://localhost:8080/"},"id":"2Ll1TpOzZQQe","executionInfo":{"status":"ok","timestamp":1657578600307,"user_tz":240,"elapsed":5,"user":{"displayName":"Yiqiao Yin","userId":"16271867367914268422"}},"outputId":"7ca211ac-6a2b-4514-db03-49647695fa85"},"execution_count":null,"outputs":[{"output_type":"execute_result","data":{"text/plain":["(50000, 32, 32, 3)"]},"metadata":{},"execution_count":17}]},{"cell_type":"code","source":["# create a small convolutional layer\n","model = tf.keras.models.Sequential()\n","model.add(tf.keras.layers.Conv2D(1, (10, 10), input_shape=(32, 32, 3)))\n","model.add(tf.keras.layers.MaxPooling2D())\n","\n","# remark:\n","# This is a very simple model. Though it is called a model,\n","# it is actually not a neural network yet. Because there is \n","# no dense layers yet. We just want to see what the Conv2D function\n","# does to the pictures.\n","# summary\n","model.summary()"],"metadata":{"id":"zWiAHXVl-1gh","colab":{"base_uri":"https://localhost:8080/"},"executionInfo":{"status":"ok","timestamp":1657579060067,"user_tz":240,"elapsed":222,"user":{"displayName":"Yiqiao Yin","userId":"16271867367914268422"}},"outputId":"531369b1-ab3c-4f62-87ad-d7384fa20c8f"},"execution_count":null,"outputs":[{"output_type":"stream","name":"stdout","text":["Model: \"sequential_1\"\n","_________________________________________________________________\n"," Layer (type) Output Shape Param # \n","=================================================================\n"," conv2d_1 (Conv2D) (None, 23, 23, 1) 301 \n"," \n"," max_pooling2d (MaxPooling2D (None, 11, 11, 1) 0 \n"," ) \n"," \n","=================================================================\n","Total params: 301\n","Trainable params: 301\n","Non-trainable params: 0\n","_________________________________________________________________\n"]}]},{"cell_type":"code","source":["# before model fitting, let us just throw in 1 image\n","sample_output_before_fitting = model.predict(training_images[12].reshape((1, 32, 32, 3)))"],"metadata":{"id":"O54e0JCuCQRQ"},"execution_count":null,"outputs":[]},{"cell_type":"code","source":["# check dimension\n","sample_output_before_fitting.shape"],"metadata":{"colab":{"base_uri":"https://localhost:8080/"},"id":"6WVbOqk1a_gV","executionInfo":{"status":"ok","timestamp":1657579067677,"user_tz":240,"elapsed":225,"user":{"displayName":"Yiqiao Yin","userId":"16271867367914268422"}},"outputId":"3ac1e310-bf33-4936-9ff7-3c933d2d0fac"},"execution_count":null,"outputs":[{"output_type":"execute_result","data":{"text/plain":["(1, 11, 11, 1)"]},"metadata":{},"execution_count":25}]},{"cell_type":"markdown","source":["You will see a tuple of 4 numbers. They mean:\n","- 1st: sample size\n","- 2nd: width of the image\n","- 3rd: height of the image\n","- 4th: any colors, if it's 1, it's greyscale"],"metadata":{"id":"_W8odsJWbF5E"}},{"cell_type":"code","source":["# resize\n","import cv2\n","resized_image_ = cv2.resize(training_images[12], (11, 11))\n","resized_image_.shape"],"metadata":{"colab":{"base_uri":"https://localhost:8080/"},"id":"zs_4crilbTGn","executionInfo":{"status":"ok","timestamp":1657579081042,"user_tz":240,"elapsed":493,"user":{"displayName":"Yiqiao Yin","userId":"16271867367914268422"}},"outputId":"d2f0defd-57f5-42ec-e769-fc47d1ef4caf"},"execution_count":null,"outputs":[{"output_type":"execute_result","data":{"text/plain":["(11, 11, 3)"]},"metadata":{},"execution_count":26}]},{"cell_type":"code","source":["# original picture\n","plt.subplot(1, 3, 1)\n","# frog\n","plt.imshow(training_images[12])\n","# transformed image\n","plt.subplot(1, 3, 2)\n","plt.imshow(sample_output_before_fitting[:,:,:,0].reshape((11, 11)))\n","# plt.title('some transformed picture')\n","# plt.colorbar()\n","# cv2 resize function\n","plt.subplot(1, 3, 3)\n","plt.imshow(resized_image_)\n","\n","# show\n","plt.show()"],"metadata":{"colab":{"base_uri":"https://localhost:8080/","height":149},"id":"xsFWFHkgOXRG","executionInfo":{"status":"ok","timestamp":1657579105529,"user_tz":240,"elapsed":497,"user":{"displayName":"Yiqiao Yin","userId":"16271867367914268422"}},"outputId":"f5ec0ace-a0f6-443d-dba0-516f3d80e5e9"},"execution_count":null,"outputs":[{"output_type":"display_data","data":{"text/plain":["
"],"image/png":"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\n"},"metadata":{"needs_background":"light"}}]},{"cell_type":"markdown","source":["Now let us use the understanding of convolutional layer to build our first Convolutional Neural Network. We design an architecture that is adapted from the LeNet model. The original paper is published [here](http://vision.stanford.edu/cs598_spring07/papers/Lecun98.pdf).\n","\n","

\n"," \n","

"],"metadata":{"id":"--lhi-rFayNR"}},{"cell_type":"code","source":["# build a CNN (Convolutional Neural Network) model\n","model = tf.keras.models.Sequential(name=\"MODEL_JohnSmith\")\n","\n","## Your Changes Start Here ##\n","model.add(tf.keras.layers.Conv2D(filters=32, kernel_size=(3,3), activation='relu', input_shape=(32, 32, 3), name=\"Conv_1\"))\n","model.add(tf.keras.layers.MaxPooling2D())\n","model.add(tf.keras.layers.Conv2D(filters=64, kernel_size=(2,2), activation='relu', name=\"Conv_2\"))\n","model.add(tf.keras.layers.MaxPooling2D()) \n","\n","# You can have more CONVOLUTIONAL layers! # <===== TRY TO TUNE THIS!!!\n","# Each convolutional layer can have arbitrary different number of units! # <===== TRY TO TUNE THIS!!!\n","# ... you can have however many you want\n","## Your Changes Ends Here ##\n","# up to here, we finish coding the convolutional layers, we have not done neural network layers\n","\n","# build neural network layers\n","model.add(tf.keras.layers.Flatten()) # neural network requires the input layer to be a vector instead of 2D array\n","\n","## Your Changes Start Here ##\n","# in regression: y = b1x1 + b2x2 + c | bias=True\n","# y = b1x1 + b2x2 | bias=False\n","model.add(tf.keras.layers.Dense(256, activation='relu', use_bias=True)) # input units (usually starts with 128) and activation (it's a choice, usually relu)\n","model.add(tf.keras.layers.Dense(128, activation='relu', use_bias=True)) # input units (usually starts with 128) and activation (it's a choice, usually relu)\n","# You can have more DENSE layers! # <===== TRY TO TUNE THIS!!!\n","# Each dense layer can have arbitrary different number of units! # <===== TRY TO TUNE THIS!!!\n","# ... you can have however many you want\n","## Your Changes Ends Here ##\n","model.add(tf.keras.layers.Dense(10, activation='softmax')) # output layer or end layer | you have to match the number of classes\n","\n","# summary\n","model.summary()"],"metadata":{"id":"S7hWzQHGDwBL","colab":{"base_uri":"https://localhost:8080/"},"executionInfo":{"status":"ok","timestamp":1657579330414,"user_tz":240,"elapsed":227,"user":{"displayName":"Yiqiao Yin","userId":"16271867367914268422"}},"outputId":"8714468d-1746-4b8d-dcc8-691b30fc5bb9"},"execution_count":null,"outputs":[{"output_type":"stream","name":"stdout","text":["Model: \"MODEL_JohnSmith\"\n","_________________________________________________________________\n"," Layer (type) Output Shape Param # \n","=================================================================\n"," Conv_1 (Conv2D) (None, 30, 30, 32) 896 \n"," \n"," max_pooling2d_1 (MaxPooling (None, 15, 15, 32) 0 \n"," 2D) \n"," \n"," Conv_2 (Conv2D) (None, 14, 14, 64) 8256 \n"," \n"," max_pooling2d_2 (MaxPooling (None, 7, 7, 64) 0 \n"," 2D) \n"," \n"," flatten (Flatten) (None, 3136) 0 \n"," \n"," dense (Dense) (None, 256) 803072 \n"," \n"," dense_1 (Dense) (None, 128) 32896 \n"," \n"," dense_2 (Dense) (None, 10) 1290 \n"," \n","=================================================================\n","Total params: 846,410\n","Trainable params: 846,410\n","Non-trainable params: 0\n","_________________________________________________________________\n"]}]},{"cell_type":"code","source":["# plot using a utility function\n","tf.keras.utils.plot_model(model, to_file=\"my_model.png\", show_shapes=True, show_layer_names=True)\n","# where is it? \n","# This file, my_model.png, is under your Colab folder.\n","# Go to the left, click on the \"Folder\" button, and you should see this png file."],"metadata":{"colab":{"base_uri":"https://localhost:8080/","height":976},"id":"eEQfok7KEzdN","executionInfo":{"status":"ok","timestamp":1657579343431,"user_tz":240,"elapsed":805,"user":{"displayName":"Yiqiao Yin","userId":"16271867367914268422"}},"outputId":"6f5457f2-a61c-4b29-90ae-5671384e85fe"},"execution_count":null,"outputs":[{"output_type":"execute_result","data":{"text/plain":[""],"image/png":"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4ubmJqNGjZILFy4YtKvrz+jmzZsNngc3b96U/fv3i7Ozsyxfvtyk8+dXs8maMT/JmjXE1AFNdm24+pgxYwYSExNx69YtS4dSJ6GhoVi/fj18fX0tHUqtWOvacNacB03p94laHuYnWTOuDWdGVV/Jbwruvq139uxZqNXqJlMoWbumlAdERGQZfMC7CViwYAFmzpwJEcGLL76IrVu3WjokIiKiFqPFXVl66623sGXLFuTm5sLX1xe7du2ydEj35ejoiC5duuDJJ5/E0qVLERQUZOmQmrymmAdERGQZLa5YWrlyJe7cuQMRwS+//IKxY8daOqT7Wr58OcrLy5Genl7tG3BUN00xD4iIyDJaXLFEREREZAoWS0RERERGsFgiIiIiMoLFEhEREZERZp86ICEhwdyHpCbu2rVrAJgbpqha+JhjRtaI+UnWrCEWjjf7DN5ERERElmbOGbzNViwREdUXl9EgIivUcpc7ISIiIqoNFktERERERrBYIiIiIjKCxRIRERGRESyWiIiIiIxgsURERERkBIslIiIiIiNYLBEREREZwWKJiIiIyAgWS0RERERGsFgiIiIiMoLFEhEREZERLJaIiIiIjGCxRERERGQEiyUiIiIiI1gsERERERnBYomIiIjICBZLREREREawWCIiIiIygsUSERERkREsloiIiIiMYLFEREREZASLJSIiIiIjWCwRERERGcFiiYiIiMgIFktERERERrBYIiIiIjKCxRIRERGRESyWiIiIiIxgsURERERkBIslIiIiIiNYLBEREREZwWKJiIiIyAg7SwdARC3TtWvX8MILL6C8vFy/LTs7G87OznjssccM2nbu3Bn//d//3cgREhFVYrFERBbh7e2NK1euIC0trdp7X331lcG/H3300cYKi4ioGt6GIyKLef7556FUKu/bLiwsrBGiISKqGYslIrKYyZMno6yszGibbt26ISgoqJEiIiKqjsUSEVmMv78/evbsCYVCUeP7SqUSL7zwQiNHRURkiMUSEVnU888/D1tb2xrfKysrw7hx4xo5IiIiQyyWiMiiJk6ciIqKimrbbWxs0L9/f3Ts2LHxgyIiuguLJSKyKE9PTzzyyCOwsTH878jGxgbPP/+8haIiIvodiyUisrjnnnuu2jYRwejRoy0QDRGRIRZLRGRxY8eONXhuydbWFk8++STatm1rwaiI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AxvduCIiIiJLwWKpCXB2dsZnn32Gc+fOoUOHDlCr1fD390dMTAxWr16NDz/80NwpNjlvvfUWYmJikJubCx8fH+zZs8fcKRERUT3hY7gmYsCAAfjPf/5j7jQeGuHh4QgPDzd3GkRE1AB4Z4mIiIjICBZLREREREawWCIiIiIygsUSERERkREsloiIiIiMuO8M3kREREQPm2rN4B0QEIDY2NiGyYiI6C4nTpzA+vXr+X8QETUqBneWiIjMhWtTElEjFM8xS0RERERGsFgiIiIiMoLFEhEREZERLJaIiIiIjGCxRERERGQEiyUiIiIiI1gsERERERnBYomIiIjICBZLREREREawWCIiIiIygsUSERERkREsloiIiIiMYLFEREREZASLJSIiIiIjWCwRERERGcFiiYiIiMgIFktERERERrBYIiIiIjKCxRIRERGRESyWiIiIiIxgsURERERkBIslIiIiIiNYLBEREREZwWKJiIiIyAgWS0RERERGsFgiIiIiMoLFEhEREZERLJaIiIiIjGCxRERERGQEiyUiIiIiI1gsERERERnBYomIiIjICBtzJ0BED6eMjAz87//+r96206dPAwC2bNmit93JyQkTJ05ssNyIiO6mEBExdxJE9PC5ffs2PDw8UFBQAGtrawBA5X9HCoVC106r1WLq1Kn44IMPzJEmEVE8H8MRkVnY2tpi7NixsLGxgVarhVarRVlZGcrKynT/1mq1AIBJkyaZOVsiepixWCIis5k0aRJKS0uNtnFxccGTTz7ZQBkRERlisUREZjN48GC4u7vfd79SqcSUKVNgY8PhlURkPiyWiMhsrKysMHnyZCiVyir3a7VaDuwmIrNjsUREZjVx4kTd2KR7PfLII+jXr18DZ0REpI/FEhGZ1eOPP442bdoYbFepVJg6dareN+OIiMyBxRIRmd2LL75o8CiutLSUj+CIqFFgsUREZjd58mSDR3F+fn7o1q2bmTIiIvo/LJaIyOw6deoEf39/3SM3pVKJv/71r2bOiojoDhZLRNQovPTSS7qZvMvKyvgIjogaDRZLRNQoTJw4EeXl5QCAnj17wsfHx8wZERHdwWKJiBoFb29v/OlPfwIATJ061czZEBH9H4uZFvfEiROIiIgwdxpEVI9u374NhUKBzz77DMeOHTN3OkRUj+Lj482dQrVZzJ2ltLQ07Nmzx9xp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61aEhoYCAJ577jmDWcF79OiBwYMHY86cOTV+LY19KZGNGzeiT58+AICFCxfihRdeMPlalZSUoFu3blCr1RgwYAA6dOiAL774Ara2tro2s2bNwuDBgzFx4kR07NgRK1asgFqtBgD069dPN83AzJkz4eHhAX9/fzz//PO4detWg1wHIiJqGhTS2D95/7+4uDhMmDCh0RcKlk6hUCA2NtZgDqOGNGPGDMTHxyMrK8tsOZiicj2++Ph4M2dCpK8xvJ+J7mWBn+fxD82dJbIslZNGEhERmRuLpUbi559/Nhh7VNVPYGCguVMlIiJ6qLBYaiQ6deoEEXngz+7du82dar166623EBMTg9zcXPj4+GDPnj3mTqneHT58GIsXL0ZCQgLatWunK4xffPFFg7ZDhgyBk5MTrK2t0aVLF/zwww9myNh0FRUViIyMREBAQJX7V65cWeUfB127drWouO+99x46deoEtVoNBwcHdOrUCUuXLtWtJFApLCwM/v7+0Gg0sLW1hZ+fHxYsWICCggJdm48//hjvvfee2e6ysl8aKikpQadOnfD2229bXFytVovw8HD4+flBpVLBxcUFXbt2xeXLl02Ka+5+aTZiIWJjY8WC0rVYACQ2NtbcaViUsWPHytixY2t07LJly2T48OGSl5en2+br6yvNmzcXALJv3z6DYw4cOCAvvPBCjfNtaBcvXpT+/fsLAHnssceqbLNixQoBYPDTpUsXi4o7bNgwWbdunaSnp0t+fr7ExcWJUqmUZ555Rq/dwIEDJSoqSrKysiQvL09iY2NFqVTKc889p9du/fr1MnDgQMnOzq5RPjV9P7NfVm3evHkCQJYsWWJxcUeNGiUdO3aUb7/9VrRardy4cUNGjBghycnJJsetbb+0wM/zON5ZIjKT1atXY/fu3YiLizNYpub999+HlZUVgoKCkJuba6YMa++nn37CokWLMHPmTHTv3t1o2x07dhjcST137pxFxVWpVHj99dfh7u4OR0dHjBs3DiNHjsR//vMf/P7777p2jo6OCAoKQrNmzeDk5ITx48dj1KhROHjwoO5bnAAwZ84cPPbYY3j++edRVlZWo5xMxX5ZtePHj9e4X5g77u7du5GUlIT4+Hj86U9/go2NDTw9PbF379773kU1Ftcc/dLcWCwRmcEvv/yCpUuX4t1334WdnZ3B/oCAAISEhOD69et4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KViUa9euAWDfpMaJ72dqbCyxT1rcDN5ERERk+Syk/ACAeIsploio6bPAZRCIqOnjcidERERExrBYIiIiIjKCxRIRERGRESyWiIiIiIxgsURERERkBIslIiIiIiNYLBEREREZwWKJiIiIyAgWS0RERERGsFgiIiIiMoLFEhEREZERLJaIiIiIjGCxRERERGQEiyUiIiIiI1gsERERERnBYomIiIjICBZLREREREawWCIiIiIygsUSERERkREsloiIiIiMYLFEREREZASLJSIiIiIjWCwRERERGcFiiYiIiMgIFktERERERrBYIiIiIjKCxRIRERGRESyWiIiIiIxgsURERERkBIslIiIiIiNYLBEREREZwWKJiIiIyAgWS0RERERG2Jg7ASJ6OF27dg1Tp05FeXm5blt2djacnJwwaNAgvbYdO3bEP//5zwbOkIjoDhZLRGQWXl5euHLlClJTUw32ffnll3r//vOf/9xQaRERGeBjOCIym5deeglKpfKB7QIDAxsgGyKiqrFYIiKzmTx5MsrKyoy26dKlC/z9/RsoIyIiQyyWiMhsfH198eijj0KhUFS5X6lUYurUqQ2cFRGRPhZLRGRWL730EqytravcV1ZWhnHjxjVwRkRE+lgsEZFZTZw4ERUVFQbbrays0LdvX7Rt27bhkyIiuguLJSIyK09PT/Tv3x9WVvr/HVlZWeGll14yU1ZERP+HxRIRmd2LL75osE1EMHr0aDNkQ0Skj8USEZnd2LFj9cYtWVtb4+mnn4aHh4cZsyIiuoPFEhGZnaurK5555hldwSQimDJlipmzIiK6g8USETUKU6ZM0Q30ViqVGDlypJkzIiK6g8USETUKI0aMgK2tLQBg+PDhcHR0NHNGRER3sFgiokbBwcFBdzeJj+CIqDFRiIjU5MC4uDhMmDChrvMhIiIiqnM1LHcAIN6mtsFjY2NrewqiOjNhwgSEhISgX79+5k7FYkRGRgIA5s6da+ZMgPLycsTGxmLSpEnmToUaAb6fqS6cOHEC69evr9U5an1nqRaVGlGdUygUiI2Nxfjx482disWoXE4kPj7ezJncUVJSAjs7O3OnQY0A389UF+qgXonnmCUialRYKBFRY8NiiYiIiMgIFktERERERrBYIiIiIjKCxRIRERGRESyWGpF169bBw8MDCoUCmzdv1m3fv38/nJ2d8ckn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JSIiIiILWCwRERERWcBiiYiIiMgCFktEREREFrBYIiIiIrKAxRIRERGRBSyWiIiIiCxgsURERERkAYslIiIiIgtYLBERERFZwGKJiIiIyAJbpQMgot6ptrYWFRUVZm2VlZUAgNLSUrN2lUoFFxeXTouNiOjnWCwRkSLu3LmDgQMHor6+vsl7ffv2Nfv3lClTcPz48c4KjYjIDC/DEZEi+vfvj9/85jfo08fy15BKpcLcuXM7KSoioqZYLBGRYl577bVH9rGxscGsWbM6IRoiouaxWCIixYSGhsLW9uF3A9jY2ODFF1/EY4891olRERGZY7FERIrR6/WYOnXqQwsmEcGCBQs6OSoiInMslohIUQsWLGj2Jm8AsLOzw8svv9zJERERmWOxRESKevnll6HT6Zq0q9VqhISEwMHBQYGoiIh+wmKJiBSl0Wgwa9YsqNVqs/ba2lrMnz9foaiIiH7CYomIFDdv3jzU1taaten1ejz//PMKRURE9BMWS0SkuOeee85sIkq1Wo25c+fCzs5OwaiIiB5gsUREirO1tcXcuXNNl+Jqa2sxb948haMiInqAxRIRdQlz5841XYrr378/Jk6cqHBEREQPsFgioi4hODgYAwcOBAC8/vrrj1wGhYios3Ah3S4mLS1N6RCIFDNmzBhcv34djz32GP8vUK81aNAgjB8/Xukw6GdUIiJKB0E/UalUSodAREQKCgsLQ3p6utJh0E/SeWapCzIYDHj11VeVDqPHmD17NgDwy6cV0tLSMGfOHCjxt9T+/fsRFhbW6eP2ZErmk1qn8fuKuhbeFEBEXQoLJSLqalgsEREREVnAYomIiIjIAhZLRERERBawWCIiIiKygMUSERERkQUslnqYN998E05OTlCpVDh79qzS4bRJfHw8hg8fDr1eD3t7e/j7++NPf/oTKioqFI3r6NGjcHZ2xuHDhxWNg4iIOheLpR5mz5492L17t9JhtMvx48fxzjvvIC8vD7du3cLGjRuxbds2xecf4Rw1RES9E4sl6nIcHR2xZMkS9O3bF05OTnj11VcREhKCY8eO4dq1a4rFNW3aNNy9exfTp09XLIZG1dXVCA4OVjoMIqJegTN490DdfcmUI0eONGnr168fAKCqqqqzw+mS9u7di5KSEqXDICLqFXhmqZsTESQkJGDYsGGwt7eHs7MzVq5c2aRffX094uLi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\n"},"metadata":{},"execution_count":30}]},{"cell_type":"code","source":["# callbacks\n","callbacks = [ tf.keras.callbacks.ModelCheckpoint(\"some_sample_cnn_model.h5\", save_best_only=True) ]"],"metadata":{"id":"hEnVywnA0aAM"},"execution_count":null,"outputs":[]},{"cell_type":"code","source":["# compile\n","model.compile(\n"," ## Your Changes Start Here ##\n"," # optimizer: https://keras.io/api/optimizers/\n"," # loss: https://keras.io/api/losses/\n"," optimizer=\"adam\",\n"," loss=\"categorical_crossentropy\",\n"," ## Your Changes Ends Here ##\n"," metrics=['accuracy']\n",")"],"metadata":{"id":"AeaYQBpqFBRF"},"execution_count":null,"outputs":[]},{"cell_type":"code","source":["# load gpu\n","%tensorflow_version 2.x\n","import tensorflow as tf\n","device_name = tf.test.gpu_device_name()\n","if device_name != '/device:GPU:0':\n"," raise SystemError('GPU device not found')\n","print('Found GPU at: {}'.format(device_name))"],"metadata":{"colab":{"base_uri":"https://localhost:8080/"},"id":"BG9ViI6IFh-c","executionInfo":{"status":"ok","timestamp":1657579441734,"user_tz":240,"elapsed":216,"user":{"displayName":"Yiqiao Yin","userId":"16271867367914268422"}},"outputId":"2ddeb7ae-a02d-4ce4-979a-6d2f47621f51"},"execution_count":null,"outputs":[{"output_type":"stream","name":"stdout","text":["Found GPU at: /device:GPU:0\n"]}]},{"cell_type":"markdown","source":["### Training"],"metadata":{"id":"YPgu1H3e57D6"}},{"cell_type":"code","source":["# fit | we train the model here\n","# use GPU\n","batch_size=64\n","with tf.device('/device:GPU:0'):\n"," history = model.fit(\n"," training_images, # X: the data the model use to learn\n"," training_labels_one_hot_encoded, # Y: the target the model try to predict\n"," \n"," ## Your Changes Start Here ##\n"," # there is a sweet spot, you don't want to overfit, but you also want to make sure your model learned something\n"," validation_split=0.2, # a ratio of percentage that the model uses for validating\n"," batch_size=training_images.shape[0] // batch_size,\n"," epochs=50\n"," ## Your Changes Ends Here ##\n"," # callbacks=callbacks\n"," )"],"metadata":{"colab":{"base_uri":"https://localhost:8080/"},"id":"e5Ud7WCuFbnU","executionInfo":{"status":"ok","timestamp":1657579555968,"user_tz":240,"elapsed":32589,"user":{"displayName":"Yiqiao Yin","userId":"16271867367914268422"}},"outputId":"c2d717ea-ec90-4aa6-e847-d9370c61e078"},"execution_count":null,"outputs":[{"output_type":"stream","name":"stdout","text":["Epoch 1/50\n","52/52 [==============================] - 3s 19ms/step - loss: 1.8883 - accuracy: 0.3303 - val_loss: 1.6516 - val_accuracy: 0.4088\n","Epoch 2/50\n","52/52 [==============================] - 1s 11ms/step - loss: 1.4892 - accuracy: 0.4685 - val_loss: 1.4542 - val_accuracy: 0.4868\n","Epoch 3/50\n","52/52 [==============================] - 1s 11ms/step - loss: 1.3377 - accuracy: 0.5236 - val_loss: 1.3570 - val_accuracy: 0.5229\n","Epoch 4/50\n","52/52 [==============================] - 1s 11ms/step - loss: 1.2492 - accuracy: 0.5565 - val_loss: 1.2538 - val_accuracy: 0.5637\n","Epoch 5/50\n","52/52 [==============================] - 1s 11ms/step - loss: 1.1766 - accuracy: 0.5850 - val_loss: 1.1752 - val_accuracy: 0.5902\n","Epoch 6/50\n","52/52 [==============================] - 1s 11ms/step - loss: 1.1208 - accuracy: 0.6010 - val_loss: 1.2263 - val_accuracy: 0.5745\n","Epoch 7/50\n","52/52 [==============================] - 1s 11ms/step - loss: 1.0764 - accuracy: 0.6220 - val_loss: 1.1423 - val_accuracy: 0.6014\n","Epoch 8/50\n","52/52 [==============================] - 1s 11ms/step - loss: 1.0471 - accuracy: 0.6329 - val_loss: 1.1025 - val_accuracy: 0.6155\n","Epoch 9/50\n","52/52 [==============================] - 1s 11ms/step - loss: 1.0097 - accuracy: 0.6441 - val_loss: 1.0908 - val_accuracy: 0.6210\n","Epoch 10/50\n","52/52 [==============================] - 1s 11ms/step - loss: 0.9740 - accuracy: 0.6572 - val_loss: 1.1033 - val_accuracy: 0.6123\n","Epoch 11/50\n","52/52 [==============================] - 1s 11ms/step - loss: 0.9447 - accuracy: 0.6692 - val_loss: 1.0397 - val_accuracy: 0.6397\n","Epoch 12/50\n","52/52 [==============================] - 1s 11ms/step - loss: 0.9054 - accuracy: 0.6840 - val_loss: 1.0606 - val_accuracy: 0.6326\n","Epoch 13/50\n","52/52 [==============================] - 1s 11ms/step - loss: 0.8841 - accuracy: 0.6916 - val_loss: 1.0069 - val_accuracy: 0.6532\n","Epoch 14/50\n","52/52 [==============================] - 1s 11ms/step - loss: 0.8636 - accuracy: 0.6989 - val_loss: 1.0232 - val_accuracy: 0.6521\n","Epoch 15/50\n","52/52 [==============================] - 1s 11ms/step - loss: 0.8343 - accuracy: 0.7118 - val_loss: 1.0155 - val_accuracy: 0.6491\n","Epoch 16/50\n","52/52 [==============================] - 1s 11ms/step - loss: 0.8155 - accuracy: 0.7164 - val_loss: 0.9645 - val_accuracy: 0.6706\n","Epoch 17/50\n","52/52 [==============================] - 1s 11ms/step - loss: 0.7877 - accuracy: 0.7261 - val_loss: 0.9661 - val_accuracy: 0.6698\n","Epoch 18/50\n","52/52 [==============================] - 1s 11ms/step - loss: 0.7609 - accuracy: 0.7368 - val_loss: 0.9573 - val_accuracy: 0.6762\n","Epoch 19/50\n","52/52 [==============================] - 1s 11ms/step - loss: 0.7459 - accuracy: 0.7430 - val_loss: 0.9901 - val_accuracy: 0.6636\n","Epoch 20/50\n","52/52 [==============================] - 1s 11ms/step - loss: 0.7254 - accuracy: 0.7496 - val_loss: 0.9228 - val_accuracy: 0.6879\n","Epoch 21/50\n","52/52 [==============================] - 1s 11ms/step - loss: 0.6830 - accuracy: 0.7642 - val_loss: 0.9613 - val_accuracy: 0.6750\n","Epoch 22/50\n","52/52 [==============================] - 1s 11ms/step - loss: 0.6599 - accuracy: 0.7730 - val_loss: 0.9950 - val_accuracy: 0.6641\n","Epoch 23/50\n","52/52 [==============================] - 1s 11ms/step - loss: 0.6603 - accuracy: 0.7710 - val_loss: 0.9271 - val_accuracy: 0.6924\n","Epoch 24/50\n","52/52 [==============================] - 1s 11ms/step - loss: 0.6315 - accuracy: 0.7836 - val_loss: 0.9629 - val_accuracy: 0.6802\n","Epoch 25/50\n","52/52 [==============================] - 1s 11ms/step - loss: 0.6113 - accuracy: 0.7920 - val_loss: 0.9260 - val_accuracy: 0.6939\n","Epoch 26/50\n","52/52 [==============================] - 1s 11ms/step - loss: 0.5888 - accuracy: 0.7994 - val_loss: 0.9722 - val_accuracy: 0.6809\n","Epoch 27/50\n","52/52 [==============================] - 1s 11ms/step - loss: 0.5599 - accuracy: 0.8093 - val_loss: 0.9646 - val_accuracy: 0.6872\n","Epoch 28/50\n","52/52 [==============================] - 1s 11ms/step - loss: 0.5328 - accuracy: 0.8188 - val_loss: 0.9813 - val_accuracy: 0.6843\n","Epoch 29/50\n","52/52 [==============================] - 1s 12ms/step - loss: 0.5231 - accuracy: 0.8217 - val_loss: 0.9476 - val_accuracy: 0.6965\n","Epoch 30/50\n","52/52 [==============================] - 1s 11ms/step - loss: 0.4917 - accuracy: 0.8331 - val_loss: 0.9643 - val_accuracy: 0.6902\n","Epoch 31/50\n","52/52 [==============================] - 1s 11ms/step - loss: 0.4739 - accuracy: 0.8400 - val_loss: 1.0035 - val_accuracy: 0.6851\n","Epoch 32/50\n","52/52 [==============================] - 1s 11ms/step - loss: 0.4542 - accuracy: 0.8457 - val_loss: 1.0402 - val_accuracy: 0.6814\n","Epoch 33/50\n","52/52 [==============================] - 1s 11ms/step - loss: 0.4290 - accuracy: 0.8586 - val_loss: 0.9890 - val_accuracy: 0.6978\n","Epoch 34/50\n","52/52 [==============================] - 1s 11ms/step - loss: 0.4114 - accuracy: 0.8627 - val_loss: 1.0160 - val_accuracy: 0.6896\n","Epoch 35/50\n","52/52 [==============================] - 1s 11ms/step - loss: 0.3997 - accuracy: 0.8660 - val_loss: 1.0350 - val_accuracy: 0.6851\n","Epoch 36/50\n","52/52 [==============================] - 1s 11ms/step - loss: 0.3765 - accuracy: 0.8742 - val_loss: 1.0853 - val_accuracy: 0.6839\n","Epoch 37/50\n","52/52 [==============================] - 1s 11ms/step - loss: 0.3602 - accuracy: 0.8800 - val_loss: 1.0639 - val_accuracy: 0.6933\n","Epoch 38/50\n","52/52 [==============================] - 1s 11ms/step - loss: 0.3222 - accuracy: 0.8954 - val_loss: 1.0675 - val_accuracy: 0.6937\n","Epoch 39/50\n","52/52 [==============================] - 1s 11ms/step - loss: 0.3059 - accuracy: 0.9031 - val_loss: 1.0802 - val_accuracy: 0.6975\n","Epoch 40/50\n","52/52 [==============================] - 1s 11ms/step - loss: 0.2855 - accuracy: 0.9090 - val_loss: 1.1012 - val_accuracy: 0.6954\n","Epoch 41/50\n","52/52 [==============================] - 1s 11ms/step - loss: 0.2825 - accuracy: 0.9082 - val_loss: 1.1238 - val_accuracy: 0.6912\n","Epoch 42/50\n","52/52 [==============================] - 1s 11ms/step - loss: 0.2597 - accuracy: 0.9182 - val_loss: 1.2403 - val_accuracy: 0.6731\n","Epoch 43/50\n","52/52 [==============================] - 1s 11ms/step - loss: 0.2427 - accuracy: 0.9246 - val_loss: 1.1887 - val_accuracy: 0.6921\n","Epoch 44/50\n","52/52 [==============================] - 1s 11ms/step - loss: 0.2183 - accuracy: 0.9338 - val_loss: 1.1987 - val_accuracy: 0.6926\n","Epoch 45/50\n","52/52 [==============================] - 1s 11ms/step - loss: 0.2034 - accuracy: 0.9405 - val_loss: 1.2574 - val_accuracy: 0.6898\n","Epoch 46/50\n","52/52 [==============================] - 1s 11ms/step - loss: 0.1938 - accuracy: 0.9419 - val_loss: 1.3088 - val_accuracy: 0.6808\n","Epoch 47/50\n","52/52 [==============================] - 1s 11ms/step - loss: 0.1858 - accuracy: 0.9436 - val_loss: 1.2868 - val_accuracy: 0.6906\n","Epoch 48/50\n","52/52 [==============================] - 1s 12ms/step - loss: 0.1849 - accuracy: 0.9419 - val_loss: 1.3367 - val_accuracy: 0.6820\n","Epoch 49/50\n","52/52 [==============================] - 1s 11ms/step - loss: 0.1462 - accuracy: 0.9604 - val_loss: 1.3826 - val_accuracy: 0.6851\n","Epoch 50/50\n","52/52 [==============================] - 1s 11ms/step - loss: 0.1371 - accuracy: 0.9626 - val_loss: 1.4194 - val_accuracy: 0.6834\n"]}]},{"cell_type":"markdown","source":["### Evaluation"],"metadata":{"id":"39NRc5Tm6dH9"}},{"cell_type":"code","source":["# quick evaluation on test set\n","this_final_loss_, this_final_acc_ = model.evaluate(test_images, test_labels_one_hot_encoded)\n","print('Test Result: Loss is '+str(this_final_loss_)+', and accuracy is '+str(this_final_acc_))"],"metadata":{"colab":{"base_uri":"https://localhost:8080/"},"executionInfo":{"status":"ok","timestamp":1657579579970,"user_tz":240,"elapsed":1108,"user":{"displayName":"Yiqiao Yin","userId":"16271867367914268422"}},"outputId":"02351c42-c125-484e-9fad-552552b324d4","id":"Wwf9NNPF6dIC"},"execution_count":null,"outputs":[{"output_type":"stream","name":"stdout","text":["313/313 [==============================] - 1s 2ms/step - loss: 1.4334 - accuracy: 0.6739\n","Test Result: Loss is 1.4334017038345337, and accuracy is 0.6739000082015991\n"]}]},{"cell_type":"markdown","source":["### Visualize Performance"],"metadata":{"id":"xIb2ZZKxGEHu"}},{"cell_type":"code","source":["# plot\n","plt.figure(figsize=(10, 4))\n","plt.subplot(1, 2, 1)\n","plt.plot(history.history['loss'])\n","plt.plot(history.history['val_loss'])\n","plt.legend(['train loss', 'val loss'])\n","plt.title('loss')\n","plt.subplot(1, 2, 2)\n","plt.plot(history.history['accuracy'])\n","plt.plot(history.history['val_accuracy'])\n","plt.legend(['train acc', 'val acc'])\n","plt.title('accuracy')"],"metadata":{"colab":{"base_uri":"https://localhost:8080/","height":298},"executionInfo":{"status":"ok","timestamp":1657580333168,"user_tz":240,"elapsed":537,"user":{"displayName":"Yiqiao Yin","userId":"16271867367914268422"}},"outputId":"58d32c66-749b-4cb8-b351-34610ee07f94","id":"odz4GzkbGEHz"},"execution_count":null,"outputs":[{"output_type":"execute_result","data":{"text/plain":["Text(0.5, 1.0, 'accuracy')"]},"metadata":{},"execution_count":36},{"output_type":"display_data","data":{"text/plain":["
"],"image/png":"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yZ0ElF9eUvVdiByVL1+ehISEPN8vxHVyjoiicCQ0lhe/O8iJsHgGt6nNaw82o5Kro7XDKjKFNiZLKeUK9AaeynK3Bn5TSmngS6317GwfbB4/CZgEULdu3kvdV3B2wNXJnrDYlALFLYQQQojCobVm38Volu8J4VJsEhVcHCjv7EAFF0eS0jJYticYTzcn5o7z474mXtYOt8gVZsnTfsD2W7oKO2qt2wB9gClKqc45PVhrPVtr7ae19qtatWqeD6qUwquiC+Hx0pIlSrepU6cya9asv25PmzaNDz74gISEBLp3706bNm3w8fHhxx9/zPNzaq156aWXaNGiBT4+PixbtgyAy5cv07lzZ3x9fWnRogVbt24lIyODcePG/bXvRx99VOivsbgppXorpU4qpc4opaZms72eUup3pdQhpdQmpVRta8R5pwrz3BkwYABt27alefPmzJ5943vz2rVradOmDa1ataJ79+4AJCQkMH78eHx8fGjZsiUrVqwo/BcnSoTIhBTmbD1Hj4+2MPjznfxy6BLxyemcCk9g86kIlv55kWV7gnnItybrn+tSJhIsKNzZhSO4patQax2a+e8VpdQqoB2wpRCPCZjB7+GytI4oTr9OhbDDhfuc1X2gz/QcNw8fPpxnn32WKVOmALB8+XLWrVuHi4sLq1atomLFily9epWAgAD69++fp5oyK1eu5MCBAxw8eJCrV6/i7+9P586dWbx4Mb169eLll18mIyODxMREDhw4QGhoKEeOHAEgJiamcF63lSil7IFZQA8gBNijlPpJa30sy24fAAu01vOVUvcB/wEevqMD2/i5M3fuXDw8PEhKSsLf35/BgwdjsViYOHEiW7Zs+WsNQoC33nqLSpUqcfiweb3R0dGF+KJFSRASncinv59h5f4Q0jI0bepW5r3BLXmgZQ3cnG9OMbTWNlnr6k4USpKllKoEdAHGZLnPDbDTWsdn/t4TeLMwjner6hVdCLwgf7yidGvdujVXrlzh0qVLRERE4O7uTp06dUhLS+Pf//43W7Zswc7OjtDQUMLDw6levXquz7lt2zZGjhyJvb09Xl5edOnShT179uDv78+jjz5KWloaAwYMwNfXlwYNGnDu3DmefvppHnjgAXr27FkMr7pItQPOaK3PASillgIPAVmTrGbA85m/bwR+KNYIC0lhnjszZsxg1apVAAQHB3P6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\n"},"metadata":{"needs_background":"light"}}]},{"cell_type":"code","source":["# predict\n","test_labels_one_hot_encoded_predicted = model.predict(test_images)\n","test_labels_predicted = np.argmax(test_labels_one_hot_encoded_predicted, axis=1)\n","print(test_labels.shape)\n","print(test_labels_predicted.shape)"],"metadata":{"colab":{"base_uri":"https://localhost:8080/"},"id":"FNWWb7-gOP-i","executionInfo":{"status":"ok","timestamp":1657580333661,"user_tz":240,"elapsed":495,"user":{"displayName":"Yiqiao Yin","userId":"16271867367914268422"}},"outputId":"a421803a-b12d-4a48-9a58-1c11f0106036"},"execution_count":null,"outputs":[{"output_type":"stream","name":"stdout","text":["(10000, 1)\n","(10000,)\n"]}]},{"cell_type":"code","source":["# import \n","from sklearn import metrics"],"metadata":{"id":"X5OZRktpcmsc"},"execution_count":null,"outputs":[]},{"cell_type":"code","source":["# confusion matrix\n","conf_mat = metrics.confusion_matrix(y_true=test_labels, y_pred=test_labels_predicted)\n","conf_mat"],"metadata":{"colab":{"base_uri":"https://localhost:8080/"},"id":"278ENobkOP-j","executionInfo":{"status":"ok","timestamp":1657580333949,"user_tz":240,"elapsed":8,"user":{"displayName":"Yiqiao Yin","userId":"16271867367914268422"}},"outputId":"6114fd2d-c54c-46b3-9f39-e5e62af38f9e"},"execution_count":null,"outputs":[{"output_type":"execute_result","data":{"text/plain":["array([[662, 14, 54, 23, 42, 16, 24, 7, 117, 41],\n"," [ 22, 701, 12, 15, 13, 9, 19, 9, 62, 138],\n"," [ 47, 6, 495, 81, 127, 97, 76, 37, 24, 10],\n"," [ 7, 6, 48, 519, 87, 183, 76, 35, 21, 18],\n"," [ 19, 3, 55, 62, 691, 38, 62, 49, 19, 2],\n"," [ 7, 1, 43, 190, 66, 619, 26, 36, 4, 8],\n"," [ 4, 7, 43, 64, 58, 30, 778, 3, 9, 4],\n"," [ 11, 6, 34, 29, 103, 95, 13, 694, 5, 10],\n"," [ 48, 28, 11, 19, 12, 8, 7, 5, 831, 31],\n"," [ 33, 71, 17, 22, 15, 22, 13, 13, 45, 749]])"]},"metadata":{},"execution_count":39}]},{"cell_type":"code","source":["# waht are the diagonals\n","np.diagonal(conf_mat)"],"metadata":{"colab":{"base_uri":"https://localhost:8080/"},"id":"DZP-xO_kOP-j","executionInfo":{"status":"ok","timestamp":1657580333949,"user_tz":240,"elapsed":8,"user":{"displayName":"Yiqiao Yin","userId":"16271867367914268422"}},"outputId":"5cd534f8-8b64-4c53-cf29-78104a8569b1"},"execution_count":null,"outputs":[{"output_type":"execute_result","data":{"text/plain":["array([662, 701, 495, 519, 691, 619, 778, 694, 831, 749])"]},"metadata":{},"execution_count":40}]},{"cell_type":"code","source":["# sum of diagonal\n","np.sum(np.diagonal(conf_mat))"],"metadata":{"colab":{"base_uri":"https://localhost:8080/"},"id":"mgl9jfKaOP-j","executionInfo":{"status":"ok","timestamp":1657580333950,"user_tz":240,"elapsed":7,"user":{"displayName":"Yiqiao Yin","userId":"16271867367914268422"}},"outputId":"e366d3d8-a699-4fc8-996d-8159d7a3cf72"},"execution_count":null,"outputs":[{"output_type":"execute_result","data":{"text/plain":["6739"]},"metadata":{},"execution_count":41}]},{"cell_type":"code","source":["# sum of the matrix\n","np.sum(conf_mat)"],"metadata":{"colab":{"base_uri":"https://localhost:8080/"},"id":"G691BwcNOP-j","executionInfo":{"status":"ok","timestamp":1657580333950,"user_tz":240,"elapsed":6,"user":{"displayName":"Yiqiao Yin","userId":"16271867367914268422"}},"outputId":"7f000814-c4a4-458b-f6fa-5bbf9f4a4222"},"execution_count":null,"outputs":[{"output_type":"execute_result","data":{"text/plain":["10000"]},"metadata":{},"execution_count":42}]},{"cell_type":"code","source":["# accuracy\n","np.sum(np.diagonal(conf_mat))/np.sum(conf_mat)"],"metadata":{"colab":{"base_uri":"https://localhost:8080/"},"id":"miOhZQzhOP-j","executionInfo":{"status":"ok","timestamp":1657580333950,"user_tz":240,"elapsed":5,"user":{"displayName":"Yiqiao Yin","userId":"16271867367914268422"}},"outputId":"5aed300c-d55c-4c13-cab8-feb0f476005f"},"execution_count":null,"outputs":[{"output_type":"execute_result","data":{"text/plain":["0.6739"]},"metadata":{},"execution_count":43}]},{"cell_type":"code","source":["# quick way\n","from sklearn.metrics import confusion_matrix, ConfusionMatrixDisplay"],"metadata":{"id":"nIxoU1XvOP-j"},"execution_count":null,"outputs":[]},{"cell_type":"code","source":["# plot\n","cm = confusion_matrix(test_labels, test_labels_predicted, labels=np.arange(10))\n","disp = ConfusionMatrixDisplay(confusion_matrix=cm, display_labels=np.arange(10))\n","disp.plot()\n","plt.title('test acc='+str(np.round(this_final_acc_, 3)))\n","plt.show()"],"metadata":{"colab":{"base_uri":"https://localhost:8080/","height":295},"id":"iniM0DE_OP-j","executionInfo":{"status":"ok","timestamp":1657580334595,"user_tz":240,"elapsed":648,"user":{"displayName":"Yiqiao Yin","userId":"16271867367914268422"}},"outputId":"17d0b63c-ce48-4b86-bd00-fb58aec11bf7"},"execution_count":null,"outputs":[{"output_type":"display_data","data":{"text/plain":["
"],"image/png":"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\n"},"metadata":{"needs_background":"light"}}]},{"cell_type":"markdown","source":["So we have some sort of results. However, the performance is not that good. We have certain high numbers on the diagonals of the confusion matrix, but the errors are also pretty high too."],"metadata":{"id":"DLBR2uKFnCO8"}},{"cell_type":"markdown","source":["## Transfer Learning\n","\n","We have been building models and training them ourselves from scratch. For example, we can illustrate the old pipeline as below.\n","$$\n","\\begin{matrix}\n","\\text{Data} & \\rightarrow & \\text{NeuralNet:}\n","\\begin{bmatrix}\n","\\circ \\\\\n","\\circ \\\\\n","\\vdots \\\\\n","\\circ \\\\\n","\\end{bmatrix}\n","\\dots \n","\\begin{bmatrix}\n","\\circ \\\\\n","\\vdots \\\\\n","\\circ \\\\\n","\\end{bmatrix}\n","& \\rightarrow \\text{Softmax}\n","\\end{matrix}\n","$$\n","\n","At today's level, many models and datasets have been investigated before. If that is the case, it is often times much more benefitial to use a pre-trained model. \n","\n","Transfer learning uses the following pipeline. Instead of building a model directly from the data, transfer learning proposes to use a pre-trained model on a powerful computer such that though the model is not trained on the current data the internal structure can still be extracted. This is because there is an underlying assumption that the current data shares similar feature with the data used on the pre-trained model.\n","$$\n","\\begin{matrix}\n","\\text{Data} \\rightarrow \\text{Pre-trained Model} \\rightarrow \\text{Features} \\rightarrow & \n","\\begin{bmatrix}\n","\\circ \\\\\n","\\circ \\\\\n","\\vdots \\\\\n","\\circ \\\\\n","\\end{bmatrix}\n","\\dots \n","\\begin{bmatrix}\n","\\circ \\\\\n","\\vdots \\\\\n","\\circ \\\\\n","\\end{bmatrix}\n","& \\rightarrow \\text{Softmax}\n","\\end{matrix}\n","$$\n","\n","

\n"," \n","

\n","\n","\n","This section let us investigate the procedure of using a pre-trained model."],"metadata":{"id":"QjRZMpwSc8QH"}},{"cell_type":"code","source":["# rescale\n","x_train = training_images.astype('float32')\n","x_test = test_images.astype('float32')\n"," \n","# z-score\n","mean = np.mean(x_train,axis=(0,1,2,3))\n","std = np.std(x_train,axis=(0,1,2,3))\n","x_train = (x_train-mean)/(std+1e-7)\n","x_test = (x_test-mean)/(std+1e-7)"],"metadata":{"id":"9I4skHzu_b-o"},"execution_count":null,"outputs":[]},{"cell_type":"code","source":["# display dimension\n","x_train.shape, x_test.shape"],"metadata":{"colab":{"base_uri":"https://localhost:8080/"},"id":"s9z4q8AXjhyh","executionInfo":{"status":"ok","timestamp":1657582621491,"user_tz":240,"elapsed":2,"user":{"displayName":"Yiqiao Yin","userId":"16271867367914268422"}},"outputId":"4bd63a37-dd44-4f09-dcc2-57242962bc7e"},"execution_count":null,"outputs":[{"output_type":"execute_result","data":{"text/plain":["((50000, 32, 32, 3), (10000, 32, 32, 3))"]},"metadata":{},"execution_count":57}]},{"cell_type":"code","source":["# check min and max\n","np.min(x_train), np.max(x_train)"],"metadata":{"colab":{"base_uri":"https://localhost:8080/"},"id":"jUUpYR_cnswm","executionInfo":{"status":"ok","timestamp":1657580335456,"user_tz":240,"elapsed":285,"user":{"displayName":"Yiqiao Yin","userId":"16271867367914268422"}},"outputId":"a3558344-1f5d-43ac-e847-95f9c1131118"},"execution_count":null,"outputs":[{"output_type":"execute_result","data":{"text/plain":["(-1.8816491, 2.093401)"]},"metadata":{},"execution_count":47}]},{"cell_type":"code","source":["# import \n","import tensorflow as tf"],"metadata":{"id":"v0RrBgtK1K9j"},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":["Transfer learning requires a pretrained model. A good pre-trained model for demonstration purpose is VGG16. The keras API for VGG16 can be found [here](https://keras.io/api/applications/vgg/). The original paper of VGG16 can be found [here](https://arxiv.org/abs/1409.1556). The model diagram can be shown below.\n","\n","

\n"," \n","

"],"metadata":{"id":"3IfiL3grtnom"}},{"cell_type":"markdown","source":["### Dropout\n","\n","Simply put, dropout refers to ignoring units (i.e. neurons) during the training phase of certain set of neurons which is chosen at random. By “ignoring”, I mean these units are not considered during a particular forward or backward pass.\n","\n","Given that we know a bit about dropout, a question arises — why do we need dropout at all? Why do we need to literally shut-down parts of a neural networks?\n","\n","The answer to these questions is “to prevent over-fitting”.\n","\n","A fully connected layer occupies most of the parameters, and hence, neurons develop co-dependency amongst each other during training which curbs the individual power of each neuron leading to over-fitting of training data.\n","\n","

\n","\n","More see this [blog](https://medium.com/@amarbudhiraja/https-medium-com-amarbudhiraja-learning-less-to-learn-better-dropout-in-deep-machine-learning-74334da4bfc5)."],"metadata":{"id":"VZX4OTOlIV5B"}},{"cell_type":"code","source":["# add layer\n","def create_model(upsampling_multiplier, n_classes, hidden=[2048,1024], dropOutRate=0.2):\n"," \"\"\"\n"," Compiles a model integrated with VGG16 pretrained layers\n"," \n"," upsampling_multiplier: int - number of upsampling2d needed\n"," n_classes: int - number of classes for the output layer\n"," hidden: list of integers - a list of integers to indicate the number of units for each dense layer added in the middle\n"," dropOutRate: fraction - a number indicating drop out rate\n"," \"\"\"\n"," \n"," # Pretrained convolutional layers are loaded using the Imagenet weights.\n"," # Include_top is set to False, in order to exclude the model's fully-connected layers.\n"," conv_base = tf.keras.applications.vgg16.VGG16(\n"," include_top=False,\n"," weights='imagenet',\n"," pooling='max')\n","\n"," # design model\n"," model= tf.keras.Sequential()\n","\n"," # upsample\n"," for i in range(upsampling_multiplier):\n"," model.add(tf.keras.layers.UpSampling2D()) # trick 1\n","\n"," # add base model\n"," model.add(conv_base)\n"," model.add(tf.keras.layers.Flatten())\n","\n"," # design hidden layers\n"," for curr_unit in hidden:\n"," model.add(tf.keras.layers.Dense(curr_unit, activation=('relu'))) \n"," model.add(tf.keras.layers.Dropout(dropOutRate)) # trick 2\n","\n"," # last layer\n"," model.add(tf.keras.layers.Dense(n_classes, activation=('softmax')))\n","\n"," # output \n"," return model"],"metadata":{"id":"Jz9dylhYCIwB"},"execution_count":null,"outputs":[]},{"cell_type":"code","source":["# set the model using the function defined above\n","model = create_model(upsampling_multiplier=1, hidden=[2048, 1024, 1024, 512, 512, 256, 256, 128, 128], n_classes=10)"],"metadata":{"id":"ex-b0PSwCkKB","executionInfo":{"status":"ok","timestamp":1657580335930,"user_tz":240,"elapsed":477,"user":{"displayName":"Yiqiao Yin","userId":"16271867367914268422"}},"colab":{"base_uri":"https://localhost:8080/"},"outputId":"2d01bfe6-4234-49a5-c584-2dc3494a083e"},"execution_count":null,"outputs":[{"output_type":"stream","name":"stdout","text":["Downloading data from https://storage.googleapis.com/tensorflow/keras-applications/vgg16/vgg16_weights_tf_dim_ordering_tf_kernels_notop.h5\n","58892288/58889256 [==============================] - 0s 0us/step\n","58900480/58889256 [==============================] - 0s 0us/step\n"]}]},{"cell_type":"markdown","source":["Here is a more diverse source list ([guide1](https://towardsdatascience.com/step-by-step-guide-to-using-pretrained-models-in-keras-c9097b647b29), and [guide2](https://towardsdatascience.com/step-by-step-guide-to-using-pretrained-models-in-keras-c9097b647b29)) if you want more variety of building your own model using a pre-trained model. "],"metadata":{"id":"ka7nn7vd4M6J"}},{"cell_type":"markdown","source":["### Training"],"metadata":{"id":"bYT8UzI659WT"}},{"cell_type":"code","source":["# training\n","batch_size = 128\n","opt_rms = tf.keras.optimizers.RMSprop(lr=0.00001, decay=1e-6)\n","model.compile(loss='categorical_crossentropy', optimizer=opt_rms, metrics=['accuracy'])\n","\n","# fit | we train the model here\n","# use GPU\n","with tf.device('/device:GPU:0'):\n"," history = model.fit(\n"," x_train, training_labels_one_hot_encoded,\n"," steps_per_epoch=x_train.shape[0] // batch_size,\n"," epochs=100,\n"," verbose=1,\n"," validation_data=(x_test, test_labels_one_hot_encoded)\n"," )"],"metadata":{"colab":{"base_uri":"https://localhost:8080/"},"id":"YpQwHpx19nD1","executionInfo":{"status":"ok","timestamp":1657582615283,"user_tz":240,"elapsed":2279354,"user":{"displayName":"Yiqiao Yin","userId":"16271867367914268422"}},"outputId":"0969cf2e-5caf-40a6-f747-6b0735401dcd"},"execution_count":null,"outputs":[{"output_type":"stream","name":"stderr","text":["/usr/local/lib/python3.7/dist-packages/keras/optimizer_v2/rmsprop.py:130: UserWarning: The `lr` argument is deprecated, use `learning_rate` instead.\n"," super(RMSprop, self).__init__(name, **kwargs)\n"]},{"output_type":"stream","name":"stdout","text":["Epoch 1/100\n","390/390 [==============================] - 29s 62ms/step - loss: 2.2139 - accuracy: 0.1357 - val_loss: 1.9446 - val_accuracy: 0.3390\n","Epoch 2/100\n","390/390 [==============================] - 23s 59ms/step - loss: 1.8495 - accuracy: 0.3003 - val_loss: 1.4775 - val_accuracy: 0.4570\n","Epoch 3/100\n","390/390 [==============================] - 23s 59ms/step - loss: 1.4959 - accuracy: 0.4392 - val_loss: 1.0924 - val_accuracy: 0.6249\n","Epoch 4/100\n","390/390 [==============================] - 23s 59ms/step - loss: 1.1833 - accuracy: 0.5803 - val_loss: 0.8594 - val_accuracy: 0.7016\n","Epoch 5/100\n","390/390 [==============================] - 23s 59ms/step - loss: 0.9430 - accuracy: 0.6761 - val_loss: 0.6488 - val_accuracy: 0.8103\n","Epoch 6/100\n","390/390 [==============================] - 23s 59ms/step - loss: 0.7336 - accuracy: 0.7597 - val_loss: 0.5940 - val_accuracy: 0.8214\n","Epoch 7/100\n","390/390 [==============================] - 23s 58ms/step - loss: 0.5779 - accuracy: 0.8195 - val_loss: 0.5430 - val_accuracy: 0.8495\n","Epoch 8/100\n","390/390 [==============================] - 23s 58ms/step - loss: 0.4830 - accuracy: 0.8547 - val_loss: 0.5231 - val_accuracy: 0.8603\n","Epoch 9/100\n","390/390 [==============================] - 23s 59ms/step - loss: 0.4078 - accuracy: 0.8794 - val_loss: 0.4453 - val_accuracy: 0.8785\n","Epoch 10/100\n","390/390 [==============================] - 23s 59ms/step - loss: 0.3513 - accuracy: 0.8980 - val_loss: 0.4316 - val_accuracy: 0.8870\n","Epoch 11/100\n","390/390 [==============================] - 23s 59ms/step - loss: 0.2955 - accuracy: 0.9151 - val_loss: 0.4495 - val_accuracy: 0.8829\n","Epoch 12/100\n","390/390 [==============================] - 23s 59ms/step - loss: 0.2566 - accuracy: 0.9270 - val_loss: 0.4414 - val_accuracy: 0.8973\n","Epoch 13/100\n","390/390 [==============================] - 23s 59ms/step - loss: 0.2235 - accuracy: 0.9373 - val_loss: 0.4536 - val_accuracy: 0.8951\n","Epoch 14/100\n","390/390 [==============================] - 23s 59ms/step - loss: 0.1878 - accuracy: 0.9463 - val_loss: 0.4565 - val_accuracy: 0.8984\n","Epoch 15/100\n","390/390 [==============================] - 23s 59ms/step - loss: 0.1658 - accuracy: 0.9528 - val_loss: 0.4651 - val_accuracy: 0.8975\n","Epoch 16/100\n","390/390 [==============================] - 23s 59ms/step - loss: 0.1344 - accuracy: 0.9613 - val_loss: 0.5220 - val_accuracy: 0.9025\n","Epoch 17/100\n","390/390 [==============================] - 23s 59ms/step - loss: 0.1194 - accuracy: 0.9666 - val_loss: 0.5338 - val_accuracy: 0.9052\n","Epoch 18/100\n","390/390 [==============================] - 23s 58ms/step - loss: 0.1038 - accuracy: 0.9715 - val_loss: 0.4954 - val_accuracy: 0.9106\n","Epoch 19/100\n","390/390 [==============================] - 23s 58ms/step - loss: 0.0862 - accuracy: 0.9760 - val_loss: 0.5991 - val_accuracy: 0.8998\n","Epoch 20/100\n","390/390 [==============================] - 23s 58ms/step - loss: 0.0794 - accuracy: 0.9786 - val_loss: 0.5444 - val_accuracy: 0.9073\n","Epoch 21/100\n","390/390 [==============================] - 23s 58ms/step - loss: 0.0706 - accuracy: 0.9807 - val_loss: 0.6295 - val_accuracy: 0.9047\n","Epoch 22/100\n","390/390 [==============================] - 23s 58ms/step - loss: 0.0597 - accuracy: 0.9841 - val_loss: 0.5948 - val_accuracy: 0.9048\n","Epoch 23/100\n","390/390 [==============================] - 23s 58ms/step - loss: 0.0554 - accuracy: 0.9861 - val_loss: 0.6521 - val_accuracy: 0.9089\n","Epoch 24/100\n","390/390 [==============================] - 23s 59ms/step - loss: 0.0462 - accuracy: 0.9885 - val_loss: 0.7590 - val_accuracy: 0.9014\n","Epoch 25/100\n","390/390 [==============================] - 23s 58ms/step - loss: 0.0423 - accuracy: 0.9890 - val_loss: 0.6752 - val_accuracy: 0.9081\n","Epoch 26/100\n","390/390 [==============================] - 23s 58ms/step - loss: 0.0393 - accuracy: 0.9906 - val_loss: 0.6882 - val_accuracy: 0.9080\n","Epoch 27/100\n","390/390 [==============================] - 23s 58ms/step - loss: 0.0355 - accuracy: 0.9914 - val_loss: 0.9314 - val_accuracy: 0.8937\n","Epoch 28/100\n","390/390 [==============================] - 23s 58ms/step - loss: 0.0355 - accuracy: 0.9912 - val_loss: 0.7021 - val_accuracy: 0.9076\n","Epoch 29/100\n","390/390 [==============================] - 23s 58ms/step - loss: 0.0310 - accuracy: 0.9927 - val_loss: 0.7842 - val_accuracy: 0.9090\n","Epoch 30/100\n","390/390 [==============================] - 23s 58ms/step - loss: 0.0304 - accuracy: 0.9928 - val_loss: 0.7866 - val_accuracy: 0.9062\n","Epoch 31/100\n","390/390 [==============================] - 23s 58ms/step - loss: 0.0275 - accuracy: 0.9939 - val_loss: 0.8253 - val_accuracy: 0.9082\n","Epoch 32/100\n","390/390 [==============================] - 23s 58ms/step - loss: 0.0280 - accuracy: 0.9936 - val_loss: 0.7722 - val_accuracy: 0.9135\n","Epoch 33/100\n","390/390 [==============================] - 23s 58ms/step - loss: 0.0249 - accuracy: 0.9943 - val_loss: 0.8478 - val_accuracy: 0.9034\n","Epoch 34/100\n","390/390 [==============================] - 23s 58ms/step - loss: 0.0265 - accuracy: 0.9941 - val_loss: 0.7813 - val_accuracy: 0.9059\n","Epoch 35/100\n","390/390 [==============================] - 23s 59ms/step - loss: 0.0206 - accuracy: 0.9951 - val_loss: 0.8364 - val_accuracy: 0.9095\n","Epoch 36/100\n","390/390 [==============================] - 23s 59ms/step - loss: 0.0214 - accuracy: 0.9951 - val_loss: 0.8836 - val_accuracy: 0.9115\n","Epoch 37/100\n","390/390 [==============================] - 23s 59ms/step - loss: 0.0268 - accuracy: 0.9945 - val_loss: 0.8764 - val_accuracy: 0.9067\n","Epoch 38/100\n","390/390 [==============================] - 23s 59ms/step - loss: 0.0246 - accuracy: 0.9945 - val_loss: 0.9953 - val_accuracy: 0.9004\n","Epoch 39/100\n","390/390 [==============================] - 23s 59ms/step - loss: 0.0223 - accuracy: 0.9956 - val_loss: 0.7803 - val_accuracy: 0.9135\n","Epoch 40/100\n","390/390 [==============================] - 23s 59ms/step - loss: 0.0219 - accuracy: 0.9951 - val_loss: 0.8098 - val_accuracy: 0.9098\n","Epoch 41/100\n","390/390 [==============================] - 23s 59ms/step - loss: 0.0184 - accuracy: 0.9965 - val_loss: 0.8746 - val_accuracy: 0.9139\n","Epoch 42/100\n","390/390 [==============================] - 23s 58ms/step - loss: 0.0184 - accuracy: 0.9963 - val_loss: 0.9617 - val_accuracy: 0.9130\n","Epoch 43/100\n","390/390 [==============================] - 23s 58ms/step - loss: 0.0212 - accuracy: 0.9957 - val_loss: 1.2066 - val_accuracy: 0.8988\n","Epoch 44/100\n","390/390 [==============================] - 23s 59ms/step - loss: 0.0206 - accuracy: 0.9961 - val_loss: 0.8934 - val_accuracy: 0.9128\n","Epoch 45/100\n","390/390 [==============================] - 23s 59ms/step - loss: 0.0201 - accuracy: 0.9962 - val_loss: 0.9238 - val_accuracy: 0.9095\n","Epoch 46/100\n","390/390 [==============================] - 23s 59ms/step - loss: 0.0182 - accuracy: 0.9962 - val_loss: 0.9210 - val_accuracy: 0.9129\n","Epoch 47/100\n","390/390 [==============================] - 23s 59ms/step - loss: 0.0177 - accuracy: 0.9965 - val_loss: 0.8708 - val_accuracy: 0.9143\n","Epoch 48/100\n","390/390 [==============================] - 23s 59ms/step - loss: 0.0177 - accuracy: 0.9969 - val_loss: 1.2805 - val_accuracy: 0.8948\n","Epoch 49/100\n","390/390 [==============================] - 23s 59ms/step - loss: 0.0194 - accuracy: 0.9962 - val_loss: 0.9985 - val_accuracy: 0.9073\n","Epoch 50/100\n","390/390 [==============================] - 23s 59ms/step - loss: 0.0169 - accuracy: 0.9966 - val_loss: 0.8801 - val_accuracy: 0.9163\n","Epoch 51/100\n","390/390 [==============================] - 23s 59ms/step - loss: 0.0167 - accuracy: 0.9971 - val_loss: 1.0129 - val_accuracy: 0.9095\n","Epoch 52/100\n","390/390 [==============================] - 23s 59ms/step - loss: 0.0159 - accuracy: 0.9968 - val_loss: 1.2761 - val_accuracy: 0.8986\n","Epoch 53/100\n","390/390 [==============================] - 23s 59ms/step - loss: 0.0186 - accuracy: 0.9966 - val_loss: 0.9619 - val_accuracy: 0.9112\n","Epoch 54/100\n","390/390 [==============================] - 23s 58ms/step - loss: 0.0178 - accuracy: 0.9969 - val_loss: 0.8694 - val_accuracy: 0.9149\n","Epoch 55/100\n","390/390 [==============================] - 23s 58ms/step - loss: 0.0144 - accuracy: 0.9971 - val_loss: 0.9763 - val_accuracy: 0.9143\n","Epoch 56/100\n","390/390 [==============================] - 23s 59ms/step - loss: 0.0163 - accuracy: 0.9972 - val_loss: 0.9572 - val_accuracy: 0.9141\n","Epoch 57/100\n","390/390 [==============================] - 23s 59ms/step - loss: 0.0175 - accuracy: 0.9968 - val_loss: 1.0330 - val_accuracy: 0.9099\n","Epoch 58/100\n","390/390 [==============================] - 23s 59ms/step - loss: 0.0180 - accuracy: 0.9970 - val_loss: 0.8977 - val_accuracy: 0.9071\n","Epoch 59/100\n","390/390 [==============================] - 23s 59ms/step - loss: 0.0154 - accuracy: 0.9968 - val_loss: 1.0738 - val_accuracy: 0.9101\n","Epoch 60/100\n","390/390 [==============================] - 23s 59ms/step - loss: 0.0168 - accuracy: 0.9970 - val_loss: 0.9556 - val_accuracy: 0.9086\n","Epoch 61/100\n","390/390 [==============================] - 23s 59ms/step - loss: 0.0131 - accuracy: 0.9979 - val_loss: 1.0519 - val_accuracy: 0.9109\n","Epoch 62/100\n","390/390 [==============================] - 23s 58ms/step - loss: 0.0158 - accuracy: 0.9971 - val_loss: 0.9620 - val_accuracy: 0.9151\n","Epoch 63/100\n","390/390 [==============================] - 23s 59ms/step - loss: 0.0145 - accuracy: 0.9978 - val_loss: 0.9377 - val_accuracy: 0.9153\n","Epoch 64/100\n","390/390 [==============================] - 23s 58ms/step - loss: 0.0161 - accuracy: 0.9973 - val_loss: 1.0428 - val_accuracy: 0.9091\n","Epoch 65/100\n","390/390 [==============================] - 23s 58ms/step - loss: 0.0145 - accuracy: 0.9978 - val_loss: 1.1041 - val_accuracy: 0.9096\n","Epoch 66/100\n","390/390 [==============================] - 23s 59ms/step - loss: 0.0166 - accuracy: 0.9974 - val_loss: 1.1308 - val_accuracy: 0.9053\n","Epoch 67/100\n","390/390 [==============================] - 23s 58ms/step - loss: 0.0117 - accuracy: 0.9978 - val_loss: 1.0083 - val_accuracy: 0.9144\n","Epoch 68/100\n","390/390 [==============================] - 23s 58ms/step - loss: 0.0177 - accuracy: 0.9971 - val_loss: 1.0949 - val_accuracy: 0.9069\n","Epoch 69/100\n","390/390 [==============================] - 23s 59ms/step - loss: 0.0159 - accuracy: 0.9975 - val_loss: 1.0039 - val_accuracy: 0.9128\n","Epoch 70/100\n","390/390 [==============================] - 23s 59ms/step - loss: 0.0171 - accuracy: 0.9973 - val_loss: 1.0786 - val_accuracy: 0.9081\n","Epoch 71/100\n","390/390 [==============================] - 23s 59ms/step - loss: 0.0159 - accuracy: 0.9977 - val_loss: 1.1091 - val_accuracy: 0.9129\n","Epoch 72/100\n","390/390 [==============================] - 23s 58ms/step - loss: 0.0172 - accuracy: 0.9972 - val_loss: 1.1701 - val_accuracy: 0.9131\n","Epoch 73/100\n","390/390 [==============================] - 23s 58ms/step - loss: 0.0135 - accuracy: 0.9974 - val_loss: 1.1090 - val_accuracy: 0.9140\n","Epoch 74/100\n","390/390 [==============================] - 23s 59ms/step - loss: 0.0166 - accuracy: 0.9978 - val_loss: 1.1999 - val_accuracy: 0.9082\n","Epoch 75/100\n","390/390 [==============================] - 23s 58ms/step - loss: 0.0181 - accuracy: 0.9975 - val_loss: 1.0019 - val_accuracy: 0.9139\n","Epoch 76/100\n","390/390 [==============================] - 23s 59ms/step - loss: 0.0122 - accuracy: 0.9980 - val_loss: 1.4549 - val_accuracy: 0.9047\n","Epoch 77/100\n","390/390 [==============================] - 23s 59ms/step - loss: 0.0176 - accuracy: 0.9973 - val_loss: 1.1083 - val_accuracy: 0.9135\n","Epoch 78/100\n","390/390 [==============================] - 23s 59ms/step - loss: 0.0167 - accuracy: 0.9975 - val_loss: 1.2270 - val_accuracy: 0.9113\n","Epoch 79/100\n","390/390 [==============================] - 23s 59ms/step - loss: 0.0158 - accuracy: 0.9978 - val_loss: 1.0124 - val_accuracy: 0.9097\n","Epoch 80/100\n","390/390 [==============================] - 23s 59ms/step - loss: 0.0182 - accuracy: 0.9974 - val_loss: 1.1666 - val_accuracy: 0.9100\n","Epoch 81/100\n","390/390 [==============================] - 23s 58ms/step - loss: 0.0166 - accuracy: 0.9976 - val_loss: 1.0580 - val_accuracy: 0.9108\n","Epoch 82/100\n","390/390 [==============================] - 23s 58ms/step - loss: 0.0147 - accuracy: 0.9978 - val_loss: 1.1682 - val_accuracy: 0.9105\n","Epoch 83/100\n","390/390 [==============================] - 23s 58ms/step - loss: 0.0173 - accuracy: 0.9974 - val_loss: 1.1106 - val_accuracy: 0.9178\n","Epoch 84/100\n","390/390 [==============================] - 23s 58ms/step - loss: 0.0145 - accuracy: 0.9979 - val_loss: 1.0234 - val_accuracy: 0.9142\n","Epoch 85/100\n","390/390 [==============================] - 23s 58ms/step - loss: 0.0154 - accuracy: 0.9976 - val_loss: 1.0053 - val_accuracy: 0.9143\n","Epoch 86/100\n","390/390 [==============================] - 23s 58ms/step - loss: 0.0141 - accuracy: 0.9980 - val_loss: 1.0801 - val_accuracy: 0.9108\n","Epoch 87/100\n","390/390 [==============================] - 23s 58ms/step - loss: 0.0192 - accuracy: 0.9972 - val_loss: 1.0924 - val_accuracy: 0.9162\n","Epoch 88/100\n","390/390 [==============================] - 23s 58ms/step - loss: 0.0177 - accuracy: 0.9971 - val_loss: 1.9286 - val_accuracy: 0.8883\n","Epoch 89/100\n","390/390 [==============================] - 23s 59ms/step - loss: 0.0167 - accuracy: 0.9974 - val_loss: 1.2667 - val_accuracy: 0.9115\n","Epoch 90/100\n","390/390 [==============================] - 23s 58ms/step - loss: 0.0165 - accuracy: 0.9975 - val_loss: 1.4163 - val_accuracy: 0.9032\n","Epoch 91/100\n","390/390 [==============================] - 23s 58ms/step - loss: 0.0164 - accuracy: 0.9977 - val_loss: 1.1656 - val_accuracy: 0.9035\n","Epoch 92/100\n","390/390 [==============================] - 23s 59ms/step - loss: 0.0184 - accuracy: 0.9978 - val_loss: 1.1640 - val_accuracy: 0.9122\n","Epoch 93/100\n","390/390 [==============================] - 23s 59ms/step - loss: 0.0176 - accuracy: 0.9972 - val_loss: 1.3926 - val_accuracy: 0.9095\n","Epoch 94/100\n","390/390 [==============================] - 23s 59ms/step - loss: 0.0164 - accuracy: 0.9978 - val_loss: 1.1433 - val_accuracy: 0.9104\n","Epoch 95/100\n","390/390 [==============================] - 23s 59ms/step - loss: 0.0173 - accuracy: 0.9975 - val_loss: 1.2993 - val_accuracy: 0.9117\n","Epoch 96/100\n","390/390 [==============================] - 23s 58ms/step - loss: 0.0177 - accuracy: 0.9979 - val_loss: 1.2722 - val_accuracy: 0.9132\n","Epoch 97/100\n","390/390 [==============================] - 23s 58ms/step - loss: 0.0169 - accuracy: 0.9973 - val_loss: 1.0846 - val_accuracy: 0.9097\n","Epoch 98/100\n","390/390 [==============================] - 23s 59ms/step - loss: 0.0184 - accuracy: 0.9973 - val_loss: 1.1675 - val_accuracy: 0.9132\n","Epoch 99/100\n","390/390 [==============================] - 23s 58ms/step - loss: 0.0177 - accuracy: 0.9974 - val_loss: 1.4652 - val_accuracy: 0.9070\n","Epoch 100/100\n","189/390 [=============>................] - ETA: 10s - loss: 0.0171 - accuracy: 0.9974WARNING:tensorflow:Your input ran out of data; interrupting training. Make sure that your dataset or generator can generate at least `steps_per_epoch * epochs` batches (in this case, 39000 batches). You may need to use the repeat() function when building your dataset.\n","390/390 [==============================] - 12s 31ms/step - loss: 0.0170 - accuracy: 0.9974 - val_loss: 1.0352 - val_accuracy: 0.9069\n"]}]},{"cell_type":"markdown","source":["### Visualize Performance"],"metadata":{"id":"CIm_UWefwc0D"}},{"cell_type":"markdown","source":["The training performance using VGG16."],"metadata":{"id":"FEs225WXhmqN"}},{"cell_type":"code","source":["# plot\n","plt.figure(figsize=(10, 4))\n","plt.subplot(1, 2, 1)\n","plt.plot(history.history['loss'])\n","plt.plot(history.history['val_loss'])\n","plt.legend(['train loss', 'val loss'])\n","plt.title('loss')\n","plt.subplot(1, 2, 2)\n","plt.plot(history.history['accuracy'])\n","plt.plot(history.history['val_accuracy'])\n","plt.legend(['train acc', 'val acc'])\n","plt.title('accuracy')"],"metadata":{"id":"KVyvvMy-weqr","executionInfo":{"status":"ok","timestamp":1657582615620,"user_tz":240,"elapsed":344,"user":{"displayName":"Yiqiao Yin","userId":"16271867367914268422"}},"colab":{"base_uri":"https://localhost:8080/","height":298},"outputId":"96cfd989-918f-417e-8405-bf568a12db17"},"execution_count":null,"outputs":[{"output_type":"execute_result","data":{"text/plain":["Text(0.5, 1.0, 'accuracy')"]},"metadata":{},"execution_count":52},{"output_type":"display_data","data":{"text/plain":["
"],"image/png":"iVBORw0KGgoAAAANSUhEUgAAAlMAAAEICAYAAAB74HFBAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4yLjIsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy+WH4yJAAAgAElEQVR4nOydZ3hc1bWG3z1dXbLkLldsjBsYFyBgegmml9ACoQVIg4QQkksSSEi74Sa5NwkJCYGEUIIhlITuGEgwpmMDtjG4d8lNltWlkabs+2PN0Yy6ZKsdeb3P4+fonNlzzp6RPOebb629lrHWoiiKoiiKouwbnr6egKIoiqIoiptRMaUoiqIoirIfqJhSFEVRFEXZD1RMKYqiKIqi7AcqphRFURRFUfYDFVOKoiiKoij7gYoppVswxmw2xpzS1/NQFEVRlN5GxZSiKIqiKMp+oGJKURRFUfYDI+j99ABGf/lKt2KMCRpjfmOM2Z749xtjTDDxWIEx5gVjTLkxZq8x5g3nA8gY81/GmGJjTJUxZo0x5uS+fSWKorgNY8xtxpgNic+RT40x56c8dr0xZlXKYzMTx0cZY/5hjCkxxpQaY36fOH6nMeZvKc8fa4yxxhhfYn+RMeZnxpi3gFpgvDHmmpRrbDTGfKnZ/M41xiwzxlQm5nm6MeYiY8wHzcbdYox5tufeKaW78fX1BJQBx/eBo4AZgAWeBW4H7gC+BRQBgxNjjwKsMWYScCMwx1q73RgzFvD27rQVRRkAbACOBXYCFwF/M8ZMAOYCdwLnAUuBg4CIMcYLvAD8B/gCEANmd+F6XwDmAWsAA0wCzgI2AscBC4wxS6y1HxpjjgAeBj4H/BsYDmQBm4A/GWMmW2tXpZz3p/vyBih9gzpTSndzOfBja+1ua20J8CPkgwEggnyAjLHWRqy1b1hpDhkDgsAUY4zfWrvZWruhT2avKIprsdY+aa3dbq2NW2v/DqwDjgCuA35hrV1ihfXW2i2Jx0YA37bW1lhrw9baN7twyQettZ9Ya6OJz7QXrbUbEtd4HXgZEXcAXwQesNa+kphfsbV2tbW2Hvg7cAWAMWYqMBYReYpLUDGldDcjgC0p+1sSxwB+CawHXk5Y4LcBWGvXAzcj3xx3G2MeN8aMQFEUpQsYY65MhNHKjTHlwDSgABiFuFbNGQVssdZG9/GS25pdf54x5t1EGkM5cEbi+s612vqS+BDweWOMQb58PpEQWYpLUDGldDfbgTEp+6MTx7DWVllrv2WtHQ+cA9zi5EZZa+dba+cmnmuB/+ndaSuK4maMMWOA+5GUgXxrbS6wEgm/bUNCe83ZBox28qCaUQOkp+wPa2WMTbl+EHga+BUwNHH9lxLXd67V2hyw1r4LNCAu1ueBR1p/lUp/RcWU0t08BtxujBlsjCkAfgD8DcAYc5YxZkLi21cFEt6LG2MmGWNOSnwYhYE6IN5H81cUxZ1kIOKmBMAYcw3iTAH8GbjVGDMrsfJuQkJ8vQ/sAO4yxmQYY0LGmGMSz1kGHGeMGW2MyQG+28H1A0i6QgkQNcbMA05LefwvwDXGmJONMR5jzEhjzCEpjz8M/B6IdDHUqPQDVEwp3c1PkQTPFcDHwIckEyknAq8C1cA7wB+sta8hH0B3AXuQxNEhdPzBpSiK0oi19lPgf5HPll3AdOCtxGNPAj8D5gNVwDPAIGttDDgbmABsRRbIXJJ4zitILtMK4AM6yGGy1lYBXweeAMoQh+m5lMffB64Bfo18mXydpi7+I4j4+xuK6zCS/6soiqIoSl9hjEkDdgMzrbXr+no+StdQZ0pRFEVR+p6vAEtUSLkTrTOlKIqiKH2IMWYzkqh+Xh9PRdlHNMynKIqiKIqyH2iYT1EURVEUZT/oszBfQUGBHTt2bF9dXlGUPuCDDz7YY60d3PHI/o9+hinKgUV7n199JqbGjh3L0qVL++ryiqL0AcaYLR2Pcgf6GaYoBxbtfX5pmE9RFEVRFGU/UDGlKIqiKIqyH6iYUhRFURRF2Q+0ztQAIxKJUFRURDgc7uupuJZQKERhYSF+v7+vp6IoiqK4ABVTA4yioiKysrIYO3Ys0k9Y6QrWWkpLSykqKmLcuHF9PR1FURTFBWiYb4ARDofJz89XIbWPGGPIz89XZ28AYYx5wBiz2xizso3HjTHmbmPMemPMCmPMzN6eo6Io7kbF1ABEhdT+oe/fgONB4PR2Hp8HTEz8uwH4Yy/MSVGUAUS/D/PVR2P8cdEGPjM+nyPH5/f1dBRFcRnW2sXGmLHtDDkXeNhKb613jTG5xpjh1todvTJBpdupDEfYW92A12MI+DykB7xkBOR2F47GqI/EiVuL00zNANG4pa4hRjgaIxyJ0xCNkx7wkpPmxxgIR2LUNcSpbYhSF4nh83jweQ1+r4egz4PHGBpiceojMRpicSKxONGYJW7BGAj5vQR9HqyFWNziMeDzejAGItE49dE4ZbUN7K1pwO/1kJvuJ+jzUFEXoSocJeT3kh7wEotb6iIxYnFLyO8l4PVQH41TF4kR9HnISfMT8HkIR2LUR+N4jcHnNURilvpojLiFdL+XkN9LNB5vPO68JwGfB6/HUNcQo6Y+RtAv50zze4nGLbG4vDcNMYvfawj5vHg8JvF644kxFr/XQ5rfC0B1fZRwNIbf48HvNY3vtcdjKMgMkJMWwOcx8l7E5L2IxKz8jqwlErNEY3FiVlIxfB5DdpqfkN9LdX2UqnAUj4FA4v0NJ34HmUEfmUEfXk/yC3K8WQu9QwtzOWhw5n7/zfV7MeU1ht+8ug5OQcWUCygvL2f+/Pl89atf7fJzzzjjDObPn09ubm6nxt95551kZmZy6623dvlaipLCSGBbyn5R4lgLMWWMuQFxrxg9enSvTM7thCMxNpfWsLMiTDRmicbj7KluYHdlmPpYnKDXA8ZQWRehsi4CBgJeD9X1UXZX1lNW29B4A8wI+sgK+Qj65CbdEI2zszLM7sowAZ+HtICXqnCU8tpIX75kxUX86JypB4aY8nk9ZIV8+p/DJZSXl/OHP/yhVTEVjUbx+dr+k3vppZd6cmqKst9Ya+8D7gOYPXv2AdslvqymgWVF5ZTVNFBTH2V7RZgNu6vZureWvTUNjZ/XPq+htiHW6jmMAb/XQ0M0DkBWyEdOmh9rxZ1ID3gZmh1iwpBMPMZgsdTUx6gKR6isi2Kx+DweJg7J5OiD8onGLbX1UTKCPkYPSqcgM0jMWiKxOLX1MarqoxggLSAOkddjMIAFrJW5hnzi2KQFPAS84no4Ai/k95KWcIeCPg9xC9FYnIaYODWOqxPwegn6Pfi9Hnweg8cY4lbcn3AkjscYvB45Fo1ZLOLiBHwe8tIDDEoPEInHKa9toD4aJzc9QGbAR30sRm19DK/HkBbw4jWG+mic+mis0fWqj8apqIvQEI2TFhDXylqIxOP4PR6Cfg8GqIvIXLweg99rCPq8hPwePB5DQzROLG5JC3hJ93sbzxmOxPB7ZUzA6yHg9RCJxwlHYsTj4PcZfAnnyeMxRBJumbWQGfSRFvASiYnj5PcaccZiltKaesprI1grrpHfK/P0ezx4PJJ24fcYfF4PXmMwHnHyqsLiEGYmBLa10BCLN/6OfR4R5NX10SZulMfI790hLyPQLf8n+r2YAshN91NRp2LKDdx2221s2LCBGTNmcOqpp3LmmWdyxx13kJeXx+rVq1m7di3nnXce27ZtIxwO841vfIMbbrgBSLbnqK6uZt68ecydO5e3336bkSNH8uyzz5KWltbmdZctW8aXv/xlamtrOeigg3jggQfIy8vj7rvv5t5778Xn8zFlyhQef/xxXn/9db7xjW8A8h918eLFZGVl9cr7o/RLioFRKfuFiWMKElZZvbOK9zaWsnJ7Jcu3lbNud3WTMT6PYUx+OuMKMpgxKpfc9EBj+Cor5Gfc4AxG5obwe0XEFGQGyc8I4PN6sFZCYamhGAUKMoPNjvihEx9TQ7ND3ToPn9dDRrB7pEIoEfZz8HuhMJBOYV7Xz5Xf4v1pSVrAy+Csjsd1B+4QU2kBymob+noaruNHz3/Cp9sru/WcU0Zk88Ozp7b5+F133cXKlStZtmwZAIsWLeLDDz9k5cqVjaUGHnjgAQYNGkRdXR1z5szhwgsvJD+/aQh33bp1PPbYY9x///1cfPHFPP3001xxxRVtXvfKK6/kd7/7Hccffzw/+MEP+NGPfsRvfvMb7rrrLjZt2kQwGKS8vByAX/3qV9xzzz0cc8wxVFdXEwp174eP4jqeA240xjwOHAlUHOj5Ursrw6woquCDrWUsXLmTjXtqAMjPCDBtZA7nzhjBrDGDGJ4TIj3oJS89gN+7b+uZjDF4VUcpLscdYirdr2E+F3PEEUc0qdl09913889//hOAbdu2sW7duhZiaty4ccyYMQOAWbNmsXnz5jbPX1FRQXl5OccffzwAV111FRdddBEAhx56KJdffjnnnXce5513HgDHHHMMt9xyC5dffjkXXHABhYWF3fZalf6HMeYx4ASgwBhTBPwQ8ANYa+8FXgLOANYDtcA1fTPTviMetyxau5tXPt3F2xtK2VJaC4DHwFHj8/niseM4cdIQhueEdLWrorSCS8RUgKKyur6ehutoz0HqTTIyMhp/XrRoEa+++irvvPMO6enpnHDCCa3WdAoGk9as1+ulrm7ffv8vvvgiixcv5vnnn+dnP/sZH3/8MbfddhtnnnkmL730EscccwwLFy7kkEMO2afzK/0fa+1lHTxuga/10nT6FeFIjCeXbuOBtzazaU8NWSEfR47L54ojxzBjdC5TR2STHnDFbUJR+hRX/C/JTfNTrmE+V5CVlUVVVVWbj1dUVJCXl0d6ejqrV6/m3Xff3e9r5uTkkJeXxxtvvMGxxx7LI488wvHHH088Hmfbtm2ceOKJzJ07l8cff5zq6mpKS0uZPn0606dPZ8mSJaxevVrFlHJAUdcQ49H3tvCnxRspqarnsFG53H3Z4cybNmyfw3WKciDjDjGVSECPxy0eTVLs1+Tn53PMMccwbdo05s2bx5lnntnk8dNPP517772XyZMnM2nSJI466qhuue5DDz3UmIA+fvx4/vrXvxKLxbjiiiuoqKjAWsvXv/51cnNzueOOO3jttdfweDxMnTqVefPmdcscFKW/E47EeOz9rdzz2gb2VNdzzIR87r70cI4aP0jDd4qyHxhr+2Z17+zZs+3SpUs7NfYvb27iJy98yvIfnEZOujafbY9Vq1YxefLkvp6G69H3sWcwxnxgrZ3d1/PoDrryGdYf2La3luseWsqaXVUcNX4Qt542idljB/X1tBTFNbT3+eUOZypNBFR5XYOKKUVRlC6ydPNebnjkA6KxOA9cPZuTDhna11NSlAGFO8RUQkCV10YYo0XQFUVROkV9NMbv/7OePy7awKhB6fzlqtmM74Zqz4qiNMVdYkoLdyqKonSKVTsquXH+h2woqeGCmSP54VlT1dlXlB7CFWIqJ03KveuKPkVRlI55a/0evvzIB6QHvTx07REcf/Dgvp6SogxoXCGm8lLCfIqiKErbPLusmFufXM74gkwevHYOw3PabsOkKEr34AoxlZOmYkpRFKUjnvmomFueWMacsYO4/6rZZIc0rKcovYErqrP5vB6ygj7K6zTMNxDJzGw9Ibat44qitOTZZSKkjhyXz4PXHKFCSlF6kQ7FlDFmlDHmNWPMp8aYT4wx32hljDHG3G2MWW+MWWGMmdndE83R/nyKoiitsmjNbm55YjlHjBvEX66eTVrA29dTUpQDis44U1HgW9baKcBRwNeMMVOajZkHTEz8uwH4Y7fOEshLD2gCugu47bbbuOeeexr377zzTn71q19RXV3NySefzMyZM5k+fTrPPvtsp89preXb3/4206ZNY/r06fz9738HYMeOHRx33HHMmDGDadOm8cYbbxCLxbj66qsbx/7617/u9teoKP2JNTuruHH+Rxw8NIs/XzVHe+kp/QdrIXpg3Lc7/F9nrd0B7Ej8XGWMWQWMBD5NGXYu8HCiYei7xphcY8zwxHO7hdx0v5ZG6CoLboOdH3fvOYdNh3l3tfnwJZdcws0338zXviZ9Y5944gkWLlxIKBTin//8J9nZ2ezZs4ejjjqKc845p1MtLP7xj3+wbNkyli9fzp49e5gzZw7HHXcc8+fP57Of/Szf//73icVi1NbWsmzZMoqLi1m5ciUA5eXl3fO6FaUfsqe6nmsfXEJ6wMtfrppNZtCFQioeh0gNBLP2/RzhCghmg/N50lADpeshbRBkDgFfsP3nWws1e6BsE/hCMPzQlmM+ehQ2vgYn/wByR7d+nr2bYP2r4PFBKBt8aeD1Q/YIGNqFxvPxOGz4DxS9D7EG8AZg5lWQM7Lt5+xYDlkjILODlZvWQiwCsXqoKYHaMhg8CYKZyWuXb4ZB45vOp6u/ox0r4OnroHwrTJoHh5wJ/nTAwojD5T2Jx2D547D5DTjzfyGQ0fnzd+Y1+gJNj/Vgy6Qu/c8zxowFDgfea/bQSGBbyn5R4lgTMWWMuQFxrhg9uo0/xjbISfNTXFbXpecovc/hhx/O7t272b59OyUlJeTl5TFq1CgikQjf+973WLx4MR6Ph+LiYnbt2sWwYcM6POebb77JZZddhtfrZejQoRx//PEsWbKEOXPmcO211xKJRDjvvPOYMWMG48ePZ+PGjdx0002ceeaZnHbaab3wqhWlb/jpC59SUlXP0185mhG5+7Bqr6EWPn0GDjoZsjpZFX1fbkqxKETrmt6MrYV1L8O/fwKl6+DS+TDh5Jbz2/qOCIXSDTDxFJh8DnhSwpjr/w3zL4a8sTD9YqjdIzfo+kp53BuAC/8MU86V/bd/B+/8ASaeCuNPgG3vw6fPQtV2edzjhxuXwKBxyXm+9t+w+Beyv+ZfcNpPYNbVyfdh2xJ45Qew9e2234MRM2H2tSIq0gfJeXethPJtIlwyh8j+lndg+Xwo25ycj43B27+HE78LEz8LDVUiFJ05vncfLPgOpOfD+X+C0UfCG/8LHz8tQuYzX4Vdn8Jbv4FtzW/fQOZQOOkOyBsDL98u7/fcb8LJP4SqHTD/Eti5AvInwMhZMPgQKDhYhGc0DA3VUFsK4Urw+mT73r0yx0MvhtUvwCf/SLmggTHHyO+qZLUcGncczPi8/LzqeRFhR34FPCkBtFgEXr0Tdn8KY+fKe1pfBTW75X0s3yKCtnSD/L2NPxEOOQN2rpTfcSgH5v1C/o66mU6LKWNMJvA0cLO1tnJfLmatvQ+4D6SvVVeem5vup0zDfF2jHQepJ7nooot46qmn2LlzJ5dccgkAjz76KCUlJXzwwQf4/X7Gjh1LOBzer+scd9xxLF68mBdffJGrr76aW265hSuvvJLly5ezcOFC7r33Xp544gkeeOCB7nhZitKveH/TXp5Ztp0bT5zA9MKcrj25vgpWPAGv/wKqd8qN8ZoFkFEg4mTFE+LOjJ0LaXkQj8KmxbD0AblRffZn4pRUFMG/boPtH4HxQO4YuOQREQsAi/4Hlj8GFdvkHMMPg7HHQvUuKP4Q9m4QEZQ3Dh67DC6bLzfrLe/AqufkptpQLecK5sCyv8Ggg+CE78L0z8l5n74uIUaGwqL/FvE05TyYdLq8zqV/hWdvEjekcge88kPIPwhWPg0fPgTeoAirsV+XczzzFXj9f+D8e0XwvHAzfPAgHH4FzL1F9l+4WVysU38MZVtEzPnTxLWaer6cs75ShEYsCts/hCV/geduhOdukvehpgQqi1v//Yw5Rs51yNnirpRthgX/JULn5duT48afIO/5hw+JyKrYBo9eKCKmbi+MPlp+Z+//ScbnjpbXEEiXOWYUyLzfuUfmBpBdCIecBW/+Wq677X1x/uZ+E0rWyN/Bir93/Dd2yFlw9t2QkS+u065PACtu1Pp/i7gyXrjoIRFIyx8XMRWpg+e+LvPftBguuF9cvrpyeOILcix/Avz7x02v5/FD7ij5exp1pDiCnz4H618Rh/Dgz8ocHr1Q3res4fI3e+jFsr+fdEpMGWP8iJB61Fr7j1aGFAOjUvYLE8e6jbz0ABV1EeJxi8ej3c37M5dccgnXX389e/bs4fXXXwegoqKCIUOG4Pf7ee2119iyZUunz3fsscfypz/9iauuuoq9e/eyePFifvnLX7JlyxYKCwu5/vrrqa+v58MPP+SMM84gEAhw4YUXMmnSJK644oqeepmK0mfE4pYfPvcJI3JCfPXEgzr3pIZa+PBhcaKKloi4GXUUHP9tWPh9eOR8GH+8ODeBLFjxeMtzDJkKww6F578BnzwDRUvBxmHKOfL4x0+JWLjkb3KzXPTf4jhMu0BudpsWi2OROVQExTFfhxmXi+h5+Bx49GI5H1bE09TzYep5IrCC2SKu3vgV/OM6+OhhcUDiUbjscRFIlTskpJee0sB53PFw77Eiuip3QE4hXPeqiIkdy2HIZLlZO2z/UMTF3G/C2oUipByXxhj4wrOw4Nvw1m/lJr36RXGOrnpe5tBISkhu1Bw44gYo/kCExKbXZR4nfFdcnrLN4owNngyFs5vOH0QgXJYIh1XvhkCmuFhLH4CNi2DWNSJYYg3w8h3i9pxyp5yrohiWzZdzTD1fnKPmTDlP/i5q9oho9IVg0V3w+l0iOq5Z0DT0Ga4QUR2PyfsdyBBXLJgtv494pGnIzuuHETOS+4Wz4YT/Su7vXiUCtqJYxE/dXnlNHz4M9xwBGYPFIasrh/P+KKKrerc4VGl5kDFEnD1Ps4UXp/1Uzp07WsKY0Xr5+17+GOzdKGJ57NyW78c+YCTNqZ0BktTyELDXWntzG2POBG4EzgCOBO621h7R3nm72nH9z29s5KcvrmL5D09rrDultGTVqlVMnjy5r6fB9OnTKSgo4LXXXgNgz549nH322VRXVzN79mzeffddFixYwNixY8nMzKS6urrFOZzj1lq+853vsGDBAowx3H777VxyySU89NBD/PKXv8Tv95OZmcnDDz9MZWUl11xzDfF4HICf//znzJs3r8vz7y/v40Cjva7rbqOrn2HdySPvbOaOZz/hns/P5MxDh8vBNf+SG9vImZIztOp5ETtpuXJzXP64hEOGHSrhtAmniANiDKx9GR6/TG6Es66B038uYZut74q7YjyQP1FugtbCW7+G//xMbkTn3C03aoC37oZX7oDjviOiafAhcM1LcjN1iMda3vQAavfKDTw9H8YeA4VzWs91isfgg7/Cqz+G+goRbpPPbv8NW/44/PNLkst07UJ5HW1RUwq/PUxe0+5PJKx40YNNQ5vxOPzzBvj4ScDA5U/1SOioQ2JREU5Dp/ZMPtCmN8S17GwIeF8p3QC/mymCdcXf5e/lS2/A5jfhnd/LGH+aCNIxR/fsXNqhvc+vzoipucAbwMdAPHH4e8BoAGvtvQnB9XvgdKAWuMZa2+6nTKc/iGIRWLOAhbuz+dK/alj87RMZnZ/e8fMOUFQEdA/6PvYMKqb2n8pwhON/8RqHDMtm/vVHyiKOT56BJ69KjDBA4nM9a4QkDocrJJRx/H+1fTPatBgiYTi4k3mGdWUQym0pMh45V84VzIEvvyF5OD1B1S4JE3bm5motLP6VOBSHXdLx+Nd+Lq7M0OnwxYWtJ0bHIhLiHHYozLqq5eNK1/jzqeIiNVQl3ad+RnufX51Zzfcm8r+zvTEW+Nq+Ta/DCcATX2DCtJuBIyiva2A0KqYURTkwuXfRBspqI3z/zMkipCq3S9htxEw46XYJJXl84tYUTJQnteUGpTLuuK5NJC2v5TGPRxKgn7xaQmM9JaRA3JLOOibGSDizsxx9o4SqZl3T9gozr19Ca0r3cNgl8OK3JKQ37cK+nk2X6f/raH0B8IXIoBaAMi3cqSits/0jWHg7XPE0+EN9PRulB9hRUcdzb37Iv/P+yEHzd8q39+IPJFfmgvuhYELLFXHQsZDqTrJHwBdf7r3r9QTBLEkAV3qPqRfAqz+Co77acSmLfkj/F1MAwSzS4iKmtHBnx1hrO1W/SWmdjkLf/ZaipbDlTUnUdJZMKwOKx599gae832dINCz5Sm//TpKfz/6tCClFcSvpg+CbKyWJ3YW4RkyF4jUAVGjhznYJhUKUlpaSn5+vgmofsNZSWlpKKORCZydaL9uI1mMbiBRv3ch1G24iHszGc+1zUkC3crvU0Jl4al9PT1H2n1AXS3z0I1wiprLxR2W1l/bna5/CwkKKioooKSnp66m4llAoRGFhYV9Po+tEE3W7VEwNSEqfv4MCIpR//hlyhiU6emWPkH+KovQpLhFTWXgaqskM+rRwZwf4/X7GjdMQzwFJozNV27fzULqdhqJlTCt5kVdyP8dnxzZvjaooSl/TmUbHfU8wG+qryE33U6HOlKK0jjpTAxNrqXj2v6iwGWSeeltfz0ZRlFZwiZjKgvpKbXasKO2hztTAZMXfGVzyLo8EL+EzUzpZ7VxRlF7FPWIqXEluWkDDfIrSFo3OlIqpAcOaBdhnvsq78cmkfeYGbaWlKP0Ud4ipkIT5ctJ8GuZTlLZQZ2pgsflNeOIqdmVM4rrIrVwwR3MhFaW/4g4xFcwCG2NIWlydKUVpi5iWRhhQ/Os2yBnJrYE7OHjUcPIz3VfIUFEOFNwjpoAhgQYq6iLE4y4tqqgoPYnWmRo47PoUdn5M1WHX8eZ2y4mThvT1jBRFaQeXiCmpiFrgjxC30uhTUZRmaM7UwGHF38F4WeQ/FoATD1ExpSj9GXeJKZ9849bCnYrSCupMDQzicfj4SZhwCi9viVGQGWTKcHe22FCUAwWXiCkJ8+V65Zu35k0pSiuoMzUw2PwGVBYTm34xi9eWcMKkwbqKT1H6Oa4SU9keuVmoM6UoraDO1MBgxRMQyGJZ+tFU1EU0X0pRXIC7xJRRZ0pR2kQroLufkrXw6TMw5Vz+s6ESr8cwd2JBX89KUZQOcImYknyBDCR8UabOlKK0ROtMuZuKYvjbBeBPg+O+xdLNZUwfmUNOmr+vZ6YoSge4REyJMxWK1WAMVKgzpSgtUWeqVYwxpxtj1hhj1htjWjS3M8aMNsa8Zoz5yBizwhhzRq9PMlwhQqquHC5/Cps3jrW7qjhkWFavT0VRlK7jDpRrBVkAACAASURBVDHlC4AvhKehipw0vzpTitIa6ky1wBjjBe4B5gFTgMuMMVOaDbsdeMJaezhwKfCH3p0lsOZfULIaPvcAjJjBnuoGymojHDxUxZSiuAF3iClINDuuIi9d+/MpSquoM9UaRwDrrbUbrbUNwOPAuc3GWMCpPZADbO/F+QnVO2U75mgA1u6qAlAxpSguwdfXE+g0CTGVm+7X1XyK0px4HGKJLxkqplIZCWxL2S8Cjmw25k7gZWPMTUAGcErvTC2F6t3gz4BgJpAipoZl9vpUFEXpOi5yprLVmVKUtnD68oGG+brOZcCD1tpC4AzgEWNMq5+NxpgbjDFLjTFLS0pKum8G1bsgM1kCYe0u+eI4WPvxKYorcJGYyoL6SnWmFKU1nBCfx6fOVFOKgVEp+4WJY6l8EXgCwFr7DhACWq1HYK29z1o721o7e/Dgwd03y+pdkDm0cXftrmoOHpqFMVqsU1HcgIvElDhTuWkBytWZUpSmOMnnaXniTFltBp5gCTDRGDPOGBNAEsyfazZmK3AygDFmMiKmutF26gTVuxudKWsta3dWMUnzpRTFNbhITIkzlZfup6YhRkM03tczUpT+g+NMpeU13T/AsdZGgRuBhcAqZNXeJ8aYHxtjzkkM+xZwvTFmOfAYcLW1vaxGU5ypnZVhquqjHDxU86UUxS24LwE9IwBAeW0DQ7JDfTwpReknpDpTIKE+f1rfzacfYa19CXip2bEfpPz8KXBMb8+rkWg91JU1iqk1O3Uln6K4Dfc4U6FEAnqa6D+tNaUoKThOVChXtpqE7h5qEhHFRJhv3a5qQMWUorgJ94ipYBbEo+QHJbynK/oUJYXWnCnFHVTvkq3jTO2qYnBWkLyEC68oSv/HXWIKyPPKN3Bd0acoKbQQU+pMuYbq3bJtdKaqNF9KUVyGi8SUFCjO88lNQ1f0KUoK6ky5lxRnKh63rNtdzcQhGuJTFDfhOjGV45GbhOZMKUoKTs5U+iDZqjPlHhxnKmMwe2rqqW2IMX5wRt/OSVGULuEiMSXf1IKxGgI+jzpTipJK89II6ky5h+pd8nvzBSgqk9/byFxdiakobsJ1YsrUV5GX7tcEdEVJpTHM56zmUzHlGlJqTBU7YipPxZSiuAnXialkFXQN8ylKIy2cKQ3zuYbqksbk8+JydaYUxY24SExJzhT1VdqfT1Gaowno7qWZM5Ud8pEV8vfxpBRF6QouElOOM1VJXnpAw3yKkoo6U+6lendSTJXXMTIvvY8npChKV+lQTBljHjDG7DbGrGzj8ROMMRXGmGWJfz9obdx+4wuALyRV0DP8uppPUVJxnKlgjmzVmXIH9dUQqUmG+crqKNR8KUVxHZ1xph4ETu9gzBvW2hmJfz/e/2m1QTALwpXkpgcor22gt3uRKkq/JRoGbxA8HvCnqzPlFlJqTFlrxZnSfClFcR0diilr7WJgby/MpWMSzY7z0v1E45bq+mhfz0hR+gfRenFuQRocqzPlDlKqn1fWRamuj6ozpSgupLtypj5jjFlujFlgjJna1iBjzA3GmKXGmKUlJSVdv0owu3E1H2hLGUVpJBoGX1B+9qermHILKc5UUbm4iepMKYr76A4x9SEwxlp7GPA74Jm2Blpr77PWzrbWzh48eHDXr5RwpgYlGoDurdEkdEUBWjpTDTV9Ox+lczQ6U0OTBTvVmVIU17HfYspaW2mtrU78/BLgN8YU7PfMWiOYDeEKBmWqmFKUJjRxpno4zFe1S2ojKftP9S4wXkgblCzYqc6UoriO/RZTxphhxhiT+PmIxDlL9/e8rZKWC+Fy8hPO1J7q+h65jKJ0C7EobH6rd67VxJnq4QT0f1wHz3+j585/IFG9S1byeTwUl9cR8nsanXdFUdyDr6MBxpjHgBOAAmNMEfBDwA9grb0X+BzwFWNMFKgDLrU9tcwuLQ/qysnPlG/g6kwp/Zo1L8ETX4CbPoT8g3r2Ws2dqXBlz12rbEuyobKyf1Ruh6xhgFMWIZ3Ed1NFUVxEh2LKWntZB4//Hvh9t82oPUK5EKkhwxsn4POomFL6NzWJfJiqHb0gppo5U1W7eu5aNSXg6fCjQ+kMZZth+KEAWhZBUVyMeyqgQ2MTVxOuID8jQKmKKaU/47hDtb1QWaRFzlQPhfkaauTc4YqeOf+BRDwG5VshbyzgVD9XMaUobsRdYiokYoq6MgZlBCjVnCmlP1NfJdu63hBT9a0noC+6C/79k+67Tk0i8by+B8OIBwpVOyAegbyx1DZE2VvToM6UorgUd4kpp+9YWPKmNMyn9Gvq+8qZSqkztfwxWPV8913HWcUXa4BIuPvOeyBStlm2eWPZXi6/Ly3YqSjuxGViynGmyjXMp/R/nDBfbzhTseYV0GslJFe2WRyQ1lj6ACz5S9euU5NSEkFDffuHI6ZyxyRrTKkzpSiuxF1iygnzhcsZlBFQZ0rp3zhhvtqynr9WkzBfuoSPdiZ6k9dXSkPd5iz5Cyz9a9eukyqmNNS3f5RtlhpTOYXsqBCXb4SKKUVxJe4SU2lNc6ZqG2LUNcT6dk6K0hb1vehMRcNNnSmA4g+Sj1ftbPmciiKo2t616zgrFEGdqf2lbDPkFILXz46KMMbA4KxgX89KUZR9wF1iKpQM8xUkqqCX1mgSutJPacyZ6pkatk1onoAOzcRUs1BfQw2Ey2Vu0S78H6rZk/xZxdT+Uba5cSXfroowBZlB/F53fSQriiK463+u1weBrESYTwt3Kv2c3iqNYG0zZypdtsUfQDBHfm4upiqKkz+35lq1RU0JkCgqqWJq/0gRUzsrwwzLDvXpdBRF2XfcJaZAQn115Y0tFzQJXem39FaYL5b4P9DcmSrbBOOPl5+bi6nKouTPbSWot0ZNCeSMkp81Z2rfqa+W99JxpirDDFUxpSiuxX1iKpQLdWWN/fn2VquYUvoh1qbUmSqDeLznrhVNlCho7kwBjDoCAplQ2Z4z1QUxVV2SrOauztS+U75FtinO1PAcFVOK4lbcJ6YSzY4HJXKmNMyn9EsidRCPQuZQsHGo70Hh4eQ8NXemAIZMgazhrThTKWKqudBqj5oSyBsjq9B6sv/fQCelxlQ4EqO8NsIwFVOK4lrcKabqyskK+gh4PezRBHSlP+KEwBLOQ4/mTbXnTA2ZIo10W+RMFUHGEPAGm67oW/sy1JW3fp14TBLWM4ZAKFudqf0hRUztTJRF0DCforgX94mpkDhTxhipNaVhPqU/4oT4ekVMOc5Us9IIaXkipLJHtHSfKoshZyRkD08moJdvhfkXwcPnti6UaksBC5lDIJitOVP7Q9lmWRyQlsfOShFTmoCuKO7FfWIqTXKmAC3c2Z/Z8g4s/lX7Y6yFog9kO9AIN3OmejIJvdGZahbmGzIFjEk6U6nvc0Wx1DjKGp4UWrtXyXbHMnj0opaFPp2CnRkFEMrRMN/+ULY5ES417HLEVI7WmFIUt+JCMZUnN49ImPxMbSnTb/n4CXjtv9tPvC5aCn8+Cba+23vz6i2cHKncMbLtVWcqEeYbMkW2WSOkIrpT78pacaayE2LKCfM5Yuqc30HREljwnabXaRRTQxJiSsN8+0xqWQQN8ymK63GfmEppKSP9+TRnql8SrgAba9+RcfJGKoraHuNWmof5etOZSsuD/Akw4WTZzx4uWydvKlwBDdWJMN8ICfNZCyWrRVzNvBIOORO2vdf0Ok6T44zBIqY0zLdvWAtlW8SZQlbyZQS8ZIX8fTwxRVH2FfeJqZRmx4Mygpoz1V9xXIvqXW2PqU7k6tTuaXuMW3FCYDmFsvKtNxPQfUG46QOYNE/2sxJiygnnOSv5skdKCDBSK7+vktUweJI8NuggueHHU9o1pYb5gpqAvs801Ehj6ozBQKLGlK7kUxRX40IxlSfbujLyMwPUNMQIR7Q/X7/DWRFWvbvtMU7ic80AFFOOaxOSJOOedaaalUZoTlYzZ8qpMeXkTAFUboeSNTB4suwPGi+hwVTXsKYEPD55PaFszZnaVxwRGpLq9DsqtPq5orgd94mplDCfUwVdk9D7IY3OVCfE1EB0ppwwXzAL0gcl85Xe+D946TttP29faO5MNSdzqGwdMeVUP88emRRTRe+LQ9XoTI2Tbdmm5HlqSsRNMSYZ5uvJYqTdhDHmdGPMGmPMemPMbW2MudgY86kx5hNjzPwenZAjtIPZgPTl0xpTiuJu3CemUsJ8+SqmepeurLpzxFRNO2LKCQEORGcqXCmVxz1eSBuUDPMtexQ+faZ7r9WRM+ULiAhKdaaMN1E2ISGmNrwm2yEJZyovIab2bkyep6ZEQnyQEAIWGqq67WX0BMYYL3APMA+YAlxmjJnSbMxE4LvAMdbaqcDNPTqpFGcqHrfsrqpXZ0pRXI77xFRqAnqiCvqeak1C73HKt8JPh8L2ZZ0b35mcqYEW5luzIJmXVF/R6DyQPkjKedTuhdL18p5Ewt133Y6cKRDhlJozlTVchJ7jTG1cJFvHmcoeKQU99zZ3pobIz4kQlQvypo4A1ltrN1prG4DHgXObjbkeuMdaWwZgrW3nG0A3EE6GgPfU1BONW3WmFMXluFBM5QAG6soYlCHfxNWZ6gV2fSpJs7s/7XhsJCxjIbkCrDUcoTUQwnyVO+CxS+G9e2W/vkpCfJAI8+2F4g9Sxhe3PMe+4jhT3kDbY7JGpDhTRbKSD6QmVaIQLpnDkjmJHo+sNmvhTEnSNKGEUOz/eVMjgW0p+0WJY6kcDBxsjHnLGPOuMeb0tk5mjLnBGLPUGLO0pKSdv+32SHGmdlXI707LIiiKu3GfmPJ45YO8LpkzVaor+noepxZRZ1ykcEo7kracqYaaZO7IQHCm1r8qWyfHKFyZFBxpgyQBvWhJcnz51u67dvM6U62R2lKmokicJ4fsEbIdckjT5wwanyxfYa0I40xHTLnGmeoMPmAicAJwGXC/MSa3tYHW2vustbOttbMHDx68b1dzapAFs7X6uaIMENwnpqDxm3R2yEfI72F3VTeGTJTWcUJEnXGRUm+wNW18e3dCfHljRXzFIvs1vV5n6V/h5TuS++tfka0jPuorm4b5omHYtFiEFUBFilnyyT+hKkV0Vm6HV3+UFEkd0VHOFIhgqimBFU/K+XNSxJQT6hvcTEzljZMwn7UifqN1SWfKeW39v9ZUMTAqZb8wcSyVIuA5a23EWrsJWIuIq54hxZnaWVEHoGE+RXE57hRTiWbHxhiG56Sxo0LFVI/TJWcqcbPIGdW2M+UcHzpNtj1Zh6m7aaiFV++Et++GPesgFoUNi+SxRjGVEuZzBNS29+CQM8B4oDwhpmr2wJNXw1u/SZ7/o0fhzf+DFU90bj7RMHj84tq2xdCpsv3HdRKCzU/RCm2JqUHjIVIjKzJ3LJdjTmJ6ozPV78XUEmCiMWacMSYAXAo812zMM4grhTGmAAn7baSnCFdKSNYfYmdlGK/HUJCprWQUxc24VEzlNfbnG5odbGzHoPQgjjPVFTFVMFHGx6ItxzjOlCOm2nKw+iMfP5kIZRp4/34pK1BfAYVHyGuvK2sa5ktPiCkbh9GfEfHiOFNOC5ctbyfPv/Ud2b7z+86toIzWtx/iA5h8Nty6Hr72PtzwOsy4PPlYdltiKqU8wuoXJSH9oBPlmEvCfNbaKHAjsBBYBTxhrf3EGPNjY8w5iWELgVJjzKfAa8C3rbWlPTapcEXj+7ezop7BmUG8HtNjl1MUpefx9fUE9olQroQqgOE5aSzZ7CJXw61U7UOYr+Bg2PAfqbGUNbTpmEZnamrnz9sT1FdJQ19HUHSEtfD+fTBkKgybBsvmA1aKWc66SoRV2ZaEM+WIqfzk8wvniGPnOFMlq2W7c4U8x58O296XhPGS1ZKLNfHU9ucUDbcf4nPIHJzMeUpl+Az5PzV0StPjqeURVr8A409Ium2NYb7+LaYArLUvAS81O/aDlJ8tcEviX8+TEgIuramnIKudhQOKorgClzpTuY0VtoflhNhVGSYe70INJKXrOKvPOuNMJVxDChKhpNZCfVU7JNThjOmLJPTK7XDvXPjrvM4/Z8vbsGslHPklOOJLUmfp/fth1FEwbLqM2btBwmPBlAR0gGCOhNdyR0FFIgHdcaZsXETUrk/knCd9Xxyst3/X8Zw640y1x+Sz4Dubkm6TQ+5oCUmuegHKt0i/PgdfAHxp/d6Z6pekOFPltRHy0lVMKYrbcaeYcpZyW8uw7BCRmKVUyyP0HA2J3m3Gk6zk3R7ODdbJy2mtcGfVLqnM7SQ0d+a83UnVLnjobMlxKtvU6HR2yPt/kr+/6RdB4SwYMROwMPEUyJXGtexcKdvmYb7CWVJyIGeUXC8eE/dpyFR5b7e+A1vflbHjjhPBtul12LGi/Tl11plqD08rHwW+gLScWfMSYJK9/hy0pcy+kRICLq9tIFfFlKK4HneKqbQ8iDVApLZxFcyuSs2b6jGcEF/+BGiohkhd++PDFeKU5CYWUbXWUqZ6pyzXT8sDTO86U/EYPHqh5IGd+hM5lloDqi1WvQCfPgezroZAuhw7+kapJj7pDHFMQ7mw82N5rNGZypOfxx4r+7mjIB6V93X3KiicDcMOFddr6zuQXSiu0KxrJE9pWQfdTaLh/XOm2mPQeMDCqCMhc0jTx0I56kztC6nOVF2E3DR/H09IUZT9xaViKtlSZnhCTOmKvh7EcW2cMFZHwse5WTjVslsTU44z5fEmilr2opha94oInrN/A0fcIPlOjpiKReA30+Gde5o+Z/tH8I/rYeRMOCGlvdu0C+HWdcnK4XljUsRUIr/I64evvQdH3yT7OaNlW/yh1J8aMhnGHA1FS2HLWzD6KHk8LVccqrUL2k5E375MBJmvh9wNJ28qNcTnEMx2Q2mE/kciZyoWt1TURchLVzGlKG7HnWKq8Sa9q7HYnVOvRekBHGdq2KGy7Uj4hCvEoQlmgj+jfWcKIL1g352p+qqu16h6/0+S4D31fPCHZEWhI6a2viMFNT9+KmWuu2H+pZJIfuljUjU8lYyUBPO8sfLaIBnmA6nz5E3cNB3Hbt3Lsh18iIipWL3klzliCmDS6RKK3LOu6TXjMfj7FXDf8bISctbVXXsPOosjElsTU+pM7RuJLxtV4QjWQo6G+RTF9bhTTDkFByuLyc8M4vOYxkrCSg/QwpnqIL8pXJ5MZs4c3DJnKhKWJPXMhJjKGLxvYspa+OPRsOiuzj9nzzpZYTj72qS4KZwNxR+JQFnzLzm2/aPknD54SATSZY+1XJXYnLyxyZ+D2a2PySmU7bpEoc8hk6VkgkPqzxM/K9u1/2p6jk2LYdXz8Jkb4Zsre05MzbwKrvs35B/U8jHNmeo6sQhEaiGUQ3mtfAlQZ0pR3I87xZTTCqOiGK/HMDQ7pGG+nqRqhwgDRyh0yplyxNTQlqv5nH1HmGTk71uYr7ZUXCSnSW/jfHe2/Zz375cCl7OuSh4bOUtW0O1ZJ6IlZxRgYf2/RbCtfEoEjiMm28NJQoe2xVQgQ1yu6p3i4GUOhYwCKSURzIEhKSUKckeJc7Z2YdNzrHwaAllw0u0tV+F1J4F0EZutoc5U10lpclxWK4tmclVMKYrrcaeYSs+XxNzEcn0t3NnDVG6XZfoZBbLfUYHNJmJqSMtmx41iKlHbaV/DfKUbZLtjubhdABtfh/+dJPlHzamvkmTuqec3TaYeOUu2Kx6XsgZHf13csvWvSKmCktWSG9UZUp2pUBtiChKCDXGlTKJg47G3wonfbbmy7uDTJfzolJyI1sOq56SkQfOQY2+iOVNdJ6UvX3mdOFO6mk9R3I87xZQxkoOSEFPDc9I0zNeTVO2QopbBbHF1OpOA7iwSyBjS0plynKNMx5kqEKEQj7V/3j3rYO3Lyf3S9bKNR6ToJcCaBbJd/ULL569dKA7UnC82PZ4/UV7be3+S/Umnw0EnizP18ROyWm/q+e3PzaEzYT5I5k2lVh0/7BI46istxx58OtiYzAdkG67ovMDrKUI5spKwsz0ElSZ9+codZ0pX8ymK6+lQTBljHjDG7DbGrGzjcWOMudsYs94Ys8IYM7P7p9kKOYWNuTzDckLsrAhjO9N6Q+k6lTskYdsYET7theSsbRnmq9vbNEncEVOpCejYjvvzLfgOPHlVUnSVrpf6TABFS2S78TXZOvlIqWx+UwRO4Zymxz0eGHG45LIMnSZlCSaeKvN+7z6p/O24ch2RMwowIjrbq/3krOgbMrnjc46cKe/Rir9La56VT0kh0PEndG5OPUXeWHH1OiqVoSRpDPNlN+ZMqTOlKO6nM87Ug8Dp7Tw+D+mwPhG4Afjj/k+rE2SPgApxpoZlh6htiFFV30oPOGX/iMeSzhQkQnLtJKA31EgNpdQEdGgaGqzeKW5PekKgOKvh2hNp1SUSwovUJle27d0gdZByRouYqtwuIbmcUVKlPPH30cjmN2WlXGsNgZ1Q38GJP/WDThKhFq2D6Z9re17N8QUkpy+UnQzftUZrzlRbeLxwxPWy+u+vp4v7NvW8ZAJ9XzH9c3D9f5IupNIxKc5UWUJM5agzpSiup0MxZa1dDLRnGZwLPGyFd4FcY0wnG53tB9kjoWo7xOONhTs1b6qLRBs6Dq3VlEiIyclv6siZSrlZAMlQXmqor3S9uD9ObpAjqtoLH656VuYByZBe6QYpJFo4W3KknET0kxNt19anuFNVu6B0HYyd2/r5xx0LGGkIDFL7auQsyc1rrSxAe+SNbT/EBxJGnHBqUsR1xAm3wecegD1rRVBO64LAU/oPTo5ZMJuK2gayQz5tcqwoA4DuyJkaCWxL2S9KHGuBMeYGY8xSY8zSkpIOkpg7InuEOCA1u7Vw577y4Jmw8Hvtj3HKImSPkG1GQfsJ6M3FlLPysmxzcsz2ZTBiRnI/oxX3qjkr/yHCyRuUhPN4PEVMzYGKbZJcnl4gQiNnVNNQ35a3ZDumDTF10Elwy6qm8zr1J3Du77u+Wm7WVR2XKhh8MFzxlNTi6izTLoSvvCOiaszRXZuT0j9IzZmqi5CXoSE+RRkI9GoCurX2PmvtbGvt7MGDW+le3xWcWj2VxQxNFO7cpWKq89SVQ9H7ImzawynYmdXJMF/jzSIR+hkyRQSQUxSzrkya5g4/LPkcJx8ptT9fPC41nxpqRdBteRumXwxDp4gzVbVDQnCDxidzoDa/AQedKI7XxFPFqYomejZueQsCmU2v25zsZobqmM/AoRe3Pb4tDr0Y5t7c9ed1hpyRIqraCyEq/RcnZyqYRVmttpJRlIFCd4ipYmBUyn5h4ljP4jglFUkxpc5UF3DETcW29se1cKbyZUVcWyu4mjtTvoC4PU6pAqdpb6qoSUs0Ak4N861dAI9dAvefBG/8H2Bh2gVShX3HCgnZgThTww8Fb+Ib/vgTZTvxNOkjuPUd2d/8lvSX8/raf72K0pOEKxKrYr1UaJNjRRkwdIeYeg64MrGq7yigwlq7oxvO2z7ZjjO1nYDPQ0FmkJ2Vuqqo0zjipmpH++1YyrdI7zonFNdRflO4XLapobHCOVJRPNogITqAYSliyuuT2mGVKRp885viaNXugSX3S8HMgokinMLlyfyo/Amyas4RZwclxNS446T57+u/kBBjyaq286UUpbdI9OUDxJnSgp2KMiDoTGmEx4B3gEnGmCJjzBeNMV82xnw5MeQlYCOwHrgf+GqPzTaV9EFys6wsAmBYjhbu7BJOKQEbT7pPrbHhNRiVsgLOEVVtJaE3D/OBJIhHw7LCbsdyyWdK7WcHUHiEtEhxyltseQtGHQFffgsOvRSOTzQXdkTYJ/8Ef3oy/Dj9IjjkrKSDFsiAs38LW9+GP58ix1RMKX1NStmQ8toG8tSZUpQBQYcxD2vtZR08boGvdduMOktj4c5EransNLbtre31afQI9VWwezWMmtPx2H3BWhFTuaOlHUvFNsgb03Jc+TYRQKf9NHmsoyrojWIqZTWbk9NUtFTEVGt5SxNOltDe3o1yjZ0fw3HfkZYzF/wpOW7oVClZULZZakI5KwKP/JL8S+WwS0VUPXWtCK8Rh7f5lihKrxCugFA20VicynBUyyIoygDBnRXQHbJHNtYSKsxLo7i8bmAU7lzyF3jgsz3XRLZ0g4TKpl4g++Vt5E05zXUPTikz1hjmK5WGwU9eDS99R4pbRuvlZhHIbFoDKXukOEgbX5OyCG2JKZDq3tveF8estRVrgXSpWA6tN99tzuSz4ZoFcNGDfV+XSVESzlRlWGriaZhPUQYG7s7GzR4pq7wQMVVdH6WiLuL+pM6yzVJTqbK4/f5u+0pxIl9qyrnw1m/aTkJfu1BWy+VPSB5zwnPrX4FVL4A/JLWq6ivlRhEub1lKwBgJ9a1+EbCti6lB4+Xf+ldlxZ7H17JSucPww2DPmqbzao+2GvUqSm9TXwnBQxpbyWiYT1EGBi53pkYkCnfGKMxLB6CobAAkoTvlCJpX8O4uipZAIEtEScYQCfU1p6FGcpgOntd0GX4oV4TOx09KdfOvLYHvboNJZ8Lbv4OyLa3XZSqcI24TtF2eYMIpUt5gw39gxExxoVpj+KGy7ayYUpT+QsKZaqx+rs6UogwI3C2mckYmCneWUJiXBgwQMeWsaksk13cL1iZ7qBUtkX5vHq+0NWnNmdq4CGL1cPBnmx43RgRYMBs+/2SyXcyJ34P6ChFDbYkpkIroTk++5kw4Rap771jeflHKsXNF0GkOlOImrJXQfSibijp1phRlIOFuMeVU164oThFTAyAJvbIHnKlFP4f/HiEr23auTIqbnFGt50yt/ZcIptGfafnYWf8HVz4LQ1L6yg2blszBCrXSq234DOnH117RzLFzk/Wi2lt5N+JwuG1r55oEK0p/oaFGwvehHMpqEk2ONQFdUQYEA0NMVRaTk+YnM+hzvzMVrU+WHajsJjFVUQRv/VYEjY3LargJiXIBuaPk8Xg8ZQ4NsPolSQr3tfLNedI8kNcBTQAAIABJREFUcbaac+L35NytNb4NpMPJd7RccddkTIY4UsYjZRHaI5DR/uOK0t9I6ctXXidiSp0pRRkYuD8BHaCyGGMMI3NlRZ+rqdqZ/Lmim8J8//mZhBgufkjKIcTjyZICOaMlnFdTImUIANa8KIJuxuVdu07BRPjcX9teZTf3mx2f47hvi9Draj88RenvpPbl29uAMZAVcvdHsKIogrudqfRBUj8oEaYqzEtzvzPlFNAM5nTdmVr9IjxyftOK5js/huWPiSOUO1qOeVJ+7bmJTkCpeVNL/yrhv4NO6vr8p54n1cr3lbFz4eib9v35itJfcUqdhLIpr42Qk+bH49Eei4oyEHC3mDJGbvoVshpNxJTLc6aqEmKqcLbkTHWlbtY798hKuHUvJ4+98kMJux37rdafk9NMTJVugE2vw8yrklXPFUXZf1K6A5TXRTTEpygDCHeLKUhW8QYK89KpCkutKdfiJJ8XzoFoHdSVtT6uohj+dmGy113l9saaW3z4sGyLP4QN/4Zjbm49jwmSzpSThP7Bg5IofvgV+/1SFEVJIaVvZXltg1Y/V5QBxAAQU8nVaCMTK/qK3Rzqq9wOvjQpXAmt501ZC89/XQpcvvIDOfbJM4CVQpzrXpbzvPlryT2afW3b1wvlyKq9im2S/L7sUUkwzx7e7S9NUQ5onBZMGQWU10bI0xpTijJgGABiajTU7YX66oFRHqFquxQjzS6U/dbypj56RITUyFlSD2rb+7DyaRh2KJxyp6zYe/VHsOp5mHN9x1XUc0aJu/fcTVBbCkfc0M0vSlEUakqkPlool7LaBvd3alAUpRH3LyVJyfkpzJNVZK5OQq/ckRBTIxL7CTEVrpDmx5VFsPD7MGYufP5x+O1h8NKtEu475UfSkmXccbDicfCF4Mgvd3zN3FHiZtk4nHg7jD++516fohyo1JRAxmAwhoraiPblU5QBxABwpsbItnwreel+0gNel4up7dIUOHOIfIt1Cnc+dDY8cBo8da3UYTr39xDMgs98LZk3NfV82c68KrG9MlmhvD1yRomQmnklHHdr978mRVGgZg9kFBCJxamqj5Kbps6UogwU3O9MNSZQb02pNeXSMF88Ln35skfISrqsEeJMlW4QwXTU1+CwSyFvbDJ0N+d6eOtuKDgY8hLCcvI5cNIdMOvqzl13xudFmJ34/aZ9+BRF6T4SzpSzQCYvQ50pRRkouF9MZQwBbzBlRZ9Lak2tfxUW/y984Z/gD8mx2lKIR5IhvpyR4kytfkH2j/xSUjA5hLLhquchmJk85gt0zWEaObP1iuaKonQfNSWQP4HyWunLp6v5FGXg4P4wn8cDOYWNdZIK89LdIaZWPAFb34ZNi5PHnPyorMRKuuyRkiO16gVJLm8upByGHyq5Uoqi9F9q9kDGYMpqtZWMogw03C+moEmtqZF5aVTURagK9/NaU05NqDUvJo9VJWpMOW1yckZK2YeiJTD57N6dn6Io3UdDDURqRUzViDOlYkpRBg4DREwla02NGZQOwOY9/ThvqnyrOGneIKxZkGwy7LSScWo8ZRdKl3ksHHJWn0xVUZRuoLHG1ODGJse6mk9RBg4DREyNhprdEKlj4tAsANbtrurjSbWD40od9WWo3gXbP5T9yu2yUi9jiOznJByqQeNhyOTen6eiDACMMacbY9YYY9YbY25rZ9yFxhhrjJnd7ZOo2SPbjMGNOVMqphRl4DAwxFROooFvRRFj8tPxew1rd1X37ZzaY8tbUnn8mJuldYuTYF61AzKHgTexLsAJ9x1ylq6yU5R9wBjjBe4B5gFTgMuMMVNaGZcFfAN4r0cmklL9vKw2gs9jyAy6f/2PoijCwBBTuQkxVb4Fv9fD+IJM1u3q587U6KMhfRCMPQZWvwSRMJSsadrGZehUKbqpFckVZV85Alhvrd1orW0AHgfObWXcT4D/AcI9MovUMF+i+rnRL0iKMmAYIGKqabPeiUMzWbe7nzpTVTuhdD2MOVr2J50Je9bAbw+F4qUw/sTkWK8f5v1P8vUpitJVRgLbUvaLEscaMcbMBEZZa1+kA4wxNxhjlhpjlpaUlHR+Fs368mmIT1EGFgNDTGUNl2rhiRV9E4dksa2slrqGWB9PrBWcfKkxx8h28lngT5e8qCufhZNu77u5KcoBhjHGA/wf8K3OjLfW3metnW2tnT14cCe6CzjU7IFAFvjTKKtt0CbHijLAGBhBe4+3Sa2pg4dmYi2s313N9MKcPp5cM7a8Df4MGH6Y7OcUwnc2gS+oeVGK0v0UA6nWbmHimEMWMA1YlAi7DQOeM8acY61d2m2zqCmBjAIAymsjjEqsOlYUZWAwMJwpkLyp3asB+u+KvlgU1v4LxnwmmWQOUgFdhZSi9ARLgInGmHHGmABwKfCc86C1tsJaW2CtHWutHQu8C3SvkIJkk2NQZ0pRBiADR0wdchbs+hi2vN1/VvRF6xsFHgCrnhX3bPa1fTcnRTmAsNZGgRuBhcAq+P/27jxMqupO+Pj3V1tXVe8bazd2ixubQGi0VYLmjbwBF/CBKJqYSeY1EBMkmPdNMsRxglHnGWNGkzjBUWKYcRIjMRgUDKJCQGIEIyrKvgnYzdrd9N5dXdt5/7hF22B30/RW2+/zPPV03Vun7v3V6a7Dj3PPPYcXjDE7RORBEZneb4FEZj8HImOmdMJOpRJJ4iRT478G3jz46+Oxc0ffpsXw5JWwby0YA2//B+QMh0umRTcupZKIMWa1MeYSY8xwY8y/Rvb92Bizsp2y1/V6rxS0XuZr9odoCYZ1ALpSCSZxkimX15oEc/8bcOyj2Lijb9cq6+eKubD9RTj6AVx9j7WeoFIqOYTDbdbl06VklEpEifWv+sQ51h0zb/28/+/oMwY2P2VNfQBQd8ya2XzsV6w5pF68C7y5MPaO/olHKRUbfDXWslBtkqksj/ZMKZVIEiuZ8mTBxP8DO1Yw3nuy9Y6+fnFsK6z5J1j7E2t776vWz2u+Czf93Hp+xbfA6emfeJRSsaHNHFO1TafX5dOeKaUSSWIlUwBXzQenh/EHfw3A3v4aN3XoLevnthes+a72vArZRZB/GYydDXe/BZO/3z+xKKViR5vZz6sjyVR2qvZMKZVIEi+ZSsuHK+aStu8lxqYc4/1PqvvnvIfestbVQ2DDI/Dxm3DpDZ9OeTBojDUfllIquZyRTOmYKaUSUeIlUwDXLEBcqdyftpK/7qvs+/OFQ9ZknJdOs3qhtj4HoRZrWymV3BojbVBkXT6ATB0zpVRCScxkypsDpd9mYuObZFd/xOGqxr493/GPoKUOiibBNd8DBNyZMOyqvj2vUir2NVYAAt4capoCeJx23E7tpVYqkSRmMgVw1TyC3oH83vWvHN74u949dm05vLEI3vtva/v0eKmiSZB3EUz6Hlz9XWuhYqVUcmussO7ktdmpbgro7OdKJaAurc0nIlOBXwJ24BljzCNnvf4N4Gd8uubVr4wxz/RinOfPk439W+s58MuZTP7wh5BbB5N/0LNjhoLw5+/B1t9DOAhigwGjrGQq92JIH2SVu35Rz+NXSiWGNkvJ1DT5ydTxUkolnHP2TImIHVgMTANGAneIyMh2iv7BGDMu8ohuIhUhmUP5w6in+Ispwbz1Cwg09+yAu16G9/8Hxt8J334b0ofAS9+2xksVTeqdoJVSiWXWUvjH1YCuy6dUourKZb4rgP3GmI+NMX5gGTCjb8PqPZMuGcRvAlMQfwPsX9v9AxkDf3sCci+CG38OA0fBjF9B1b5Px0sppdTZHC5rHCdQ0xzQO/mUSkBdSaaGAmVttssj+842S0Q+EpHlIlLY3oFEZK6IbBGRLRUVFd0I9/xdPTyPv5uRNDmyYMdL3T/QobesiTmvarMczPAvwMRvgs0BRZ/vnYCVUgnLWuRYe6aUSjS9NQB9FVBkjLkceAN4tr1CxpglxpgSY0xJfn5+L526c5leJ6MLc9noKIW9a7p/qe/tJ6yFlMfefub+aY/CvL9D+sCeB6uUSljhsKGmya/JlFIJqCvJ1BGgbU9TAZ8ONAfAGFNljGmJbD4DTOid8HrH1FGD+G3deOjOpb5gC2z/E+x7Ha5sZzkYmx1yh/desEqphFTfEiRsdMJOpRJRV+7mexe4WESKsZKo24GvtC0gIoONMccim9OBXb0aZQ/dNHYIj746kmZnFp4dL8GImz99MRyCkP/TJKnplHW3XtU+qD0CZX+HllrIKLAu6SmlVDecnrBT1+VTKvGcM5kyxgRF5B7gNaypEZYaY3aIyIPAFmPMSuC7IjIdCAKngG/0YcznbWiWh/EX5LG++kpu2PMqHPwrFH/e+vnSt6HhJFx4LWQWwIfLINBk3cqcMcRKvEbOgAuvswaSKqVUN5xely9LZz9XKuF0aZ4pY8xqYPVZ+37c5vmPgB/1bmi96+axQ3h81ReZkvMhzmdvgsFj4dhHkHMhTPiGNZ5q/zq4/Da4ZgEMGBHtkJVSCaR1XT5d5FiphNOlZCoR3DBmMD9ZVcDiMX/k3oyNsGkxTLwLpjwIrlSY9lNrfJTTHe1QlVIJqK7Z6pnK9GgPt1KJJmmSqfz0FK4ensdL26pY8P15yNX3nFlARBMppVSfOZ1MZXiSptlVKmkk7tp87Zg+bgiHqprY/PGpaIeilEoydb4gABluvcynVKJJrmRq7BDy0lws2Xgg2qEopZJMXXMAl8OG22mPdihKqV6WVMmU22nn61cVsX5PBXuO10c7HKVUEqnzBbVXSqkElVTJFMDXrroAj9POko0fRzsUpVQSqfMFdLyUUgkq6ZKpLK+L2RMLeXnrEY7VdnNpGaWUOk91zQHStWdKqYSUdMkUwF2TijHA0rcORjsUpVSSsC7zac+UUokoKZOpwhwvN10+mN+/8wm1kVmJlVKqL9U3B8jQ2c+VSkhJmUwBfGvycBr9IX73zuFoh6KUSgI6AF2pxJW0fc4jh2Rw7SX5/NffDnLXpGK9XVkp1ad0ALrqb4FAgPLycnw+X7RDiStut5uCggKczq7/5yepv9l3XzucO369mT++V87XSi+IdjhKqQTlC4TwB8PaM6X6VXl5Oenp6RQVFSEi0Q4nLhhjqKqqory8nOLi4i6/L2kv8wGUXpjD+GFZ/Me6fTp2SinVZ+p8kaVkdAC66kc+n4/c3FxNpM6DiJCbm3vevXlJnUyJCA9OH01Vo58HX9kZ7XCUUgmqrjmylIwOQFf9TBOp89edOkvqZApgTEEm3752OC++X85fdp+IdjhKqQRU39ozpcmUUoko6ZMpgPlfvIhLB6az8MVtnGr0RzscpVSCaV3kWAegqyRSU1PDk08+2a333nDDDdTU1PRyRH1HkykgxWHn8dljqWkO8N3nPyAUNtEOSSmVQOqatWdKJZ/OkqlgMNjpe1evXk1WVlZfhNUn9L9JEaOGZPLwLaP54fKPeOz1Pfxw6mXRDkkplSBaB6DrmCkVJT9ZtYOdR+t69Zgjh2Sw6OZRHb6+cOFCDhw4wLhx45gyZQo33ngj//Iv/0J2dja7d+9m79693HLLLZSVleHz+ViwYAFz584FoKioiC1bttDQ0MC0adOYNGkSb7/9NkOHDuXll1/G4/Gcca5Vq1bx8MMP4/f7yc3N5bnnnmPgwIE0NDQwf/58tmzZgoiwaNEiZs2axZo1a7jvvvsIhULk5eWxbt26HtWFJlNt3FZSyAef1PDkhgOMH5bNlJEDox2SUioBnB6Anq5386kk8sgjj7B9+3a2bt0KwIYNG3j//ffZvn1767QDS5cuJScnh+bmZiZOnMisWbPIzc094zj79u3j+eef59e//jW33XYbL774InfeeecZZSZNmsTmzZsREZ555hkeffRRHnvsMR566CEyMzPZtm0bANXV1VRUVDBnzhw2btxIcXExp06d6vFn1W/2WR6YPpJtR2r4wfIPeXXB5xmc6Tn3m5RSqhP1vgAOm+DRyYFVlHTWg9SfrrjiijPmb3riiSdYsWIFAGVlZezbt+8zyVRxcTHjxo0DYMKECRw6dOgzxy0vL2f27NkcO3YMv9/feo61a9eybNmy1nLZ2dmsWrWKyZMnt5bJycnp8efSMVNnSXHYeeL28fiDYe5dtlXHTykV50RkqojsEZH9IrKwndf/r4jsFJGPRGSdiPT6DL7W7OdOvU1dJb3U1NTW5xs2bGDt2rVs2rSJDz/8kPHjx7c7v1NKSkrrc7vd3u54q/nz53PPPfewbds2nn766X6f9V2TqXZcmJ/GgzNG887BUzz2+h6M0YRKqXgkInZgMTANGAncISIjzyr2AVBijLkcWA482ttx1DUHdcJOlXTS09Opr6/v8PXa2lqys7Pxer3s3r2bzZs3d/tctbW1DB06FIBnn322df+UKVNYvHhx63Z1dTWlpaVs3LiRgwcPAvTKZT5Npjow63NDua2kgCc3HOC+FdsIhMLRDkkpdf6uAPYbYz42xviBZcCMtgWMMeuNMU2Rzc1AQW8HcbpnSqlkkpubyzXXXMPo0aP5wQ9+8JnXp06dSjAYZMSIESxcuJDS0tJun+uBBx7g1ltvZcKECeTl5bXuv//++6murmb06NGMHTuW9evXk5+fz5IlS5g5cyZjx45l9uzZ3T7vaRKtXpeSkhKzZcuWqJy7q8Jhw+Nv7OVX6/dzzUW5/ObrE3VBZKV6QETeM8aU9OP5vgxMNcZ8M7L9NeBKY8w9HZT/FXDcGPNwB6/PBeYCDBs2bMLhw4e7FMfMJ/+G1+Xgd9+8shufQqnu2bVrFyNGjIh2GHGpvbrrrP3SnqlO2GzC9790KT/78uW8faCKHy7/SC/5KZWgROROoAT4WUdljDFLjDElxpiS/Pz8Lh+73hfUO/mUSmD67e6CW0sKOVnfws9e28Olg9KZ94WLoh2SUqprjgCFbbYLIvvOICLXA/8MXGuMaentIOp8AZ2wU6kEpslUF33nuuHsPVHPv7++h3DYMGfyhXrJT6nY9y5wsYgUYyVRtwNfaVtARMYDT2NdDjzZF0HUNQd1KRmlEphe5usiEeGnsy5n2uhBPPbGXq5//E3WbD+ml/2UimHGmCBwD/AasAt4wRizQ0QeFJHpkWI/A9KAP4rIVhFZ2Zsx+INhmgMh7ZlSKoHpf5XOg9tp58mvTuDt/ZU8+MpO7v7d+0y+JJ+fTB9FcV7quQ+glOp3xpjVwOqz9v24zfPr+/L89bqUjFIJT3umuuHqi/J4Zf4kFt08kg8OV/Oln2/k6TcP6ASfSqnPqPdZEwzqZT6lEpcmU93ksNv4x2uKWff9a/nCZfn826u7ue3pTazZfozapkC0w1NKxYjTixynp2jPlFLnkpaWFu0QukX/q9RDA9LdPHXnBF7eepQHVu3g7t+9jwh8blg2N44ZzA1jBjMo0x3tMJVSUXJ6kWO9zKdU4tJkqheICLeMH8qNlw/mw7Ia/rqvktd3nuDBV3by8J93cv2IgfzDVUVMLM4mxaF3ACqVTOpax0xpc6ui6NWFcHxb7x5z0BiY9kiHLy9cuJDCwkLmzZsHWLOUp6WlcffddzNjxgyqq6sJBAI8/PDDzJgxo8PjANxyyy2UlZXh8/lYsGABc+fOBWDNmjXcd999hEIh8vLyWLduHQ0NDcyfP58tW7YgIixatIhZs2b13uduh367e5HTbqOkKIeSohy+N+USDlQ0sPy9cv7wbhmv7zyB3SZckOtl4gU5zBg3hCsvzMVu04VPlUpkdc2RZErv5lNJZvbs2dx7772tydQLL7zAa6+9htvtZsWKFWRkZFBZWUlpaSnTp0/vdCHwpUuXkpOTQ3NzMxMnTmTWrFmEw2HmzJnDxo0bKS4ubl1j76GHHiIzM5Nt26zksbq6us8/qyZTfWh4fhr/NPUyFnzxYv6y+yS7jtWx53g9f952jD9sKSPb6+TiAekU56VSkO1hcJaHwmwPxfmp5Kel6ArzSiWAOr2bT8WCTnqQ+sr48eM5efIkR48epaKiguzsbAoLCwkEAtx3331s3LgRm83GkSNHOHHiBIMGDerwWE888QQrVqwAoKysjH379lFRUcHkyZMpLi4GICcnB4C1a9eybNmy1vdmZ2f34ae0aDLVD9xOOzdExk8B+AIh1u46wca9FRysbGTd7hNUNvjPeI/TLogIdhGG5Xi5ZFA6A9JTcNptpLrsDMx0MzDDjU0gGDKkux0MyfKQ7XVR7wvQ5A8xNNuD037mPQaBUJjDVY14XA5yU1068ahSfazeF8QmkOrS75pKPrfeeivLly/n+PHjrQsKP/fcc1RUVPDee+/hdDopKirC5/N1eIwNGzawdu1aNm3ahNfr5brrruu0fDR0KZkSkanALwE78Iwx5pGzXk8B/geYAFQBs40xh3o31MThdtq56fIh3HT5kNZ9vkCIY7U+PjnVxKHKRo7X+QgbQzBkOFTZyAefVFPd6CcQMvhD4S6dx+O0c3lBJvnpKfiDYSoaWth5tI6W4KfvT0txkJfmIsvrwmkXnHYbgzM9FOZ4Wi9L+IIhTtT6OFnfgk0El8OGwyY47DbcThtZHhdZXidOuw2HXbBFetQCoTB1zQEa/SGyPE4GZKSQ6nIgAnab4LLbsNuEygY/J+t9hMKGFIedDI+DwmwvgzLdNLYEqW4K0NASpKklSHMgRDBswEBOqosBGSkANLQEsYtQlGf16tX5Apyoa0EEvC47dptQ7wvS5A+R6rKT5nbgC4Q51ejHYRMuGZiOx2XnZJ2P9z+pwRhDpseJ02GjyR+iJRDC47LjddnxBw1N/iBOu42i3FQGZKRwsq6Fo7XN1DT5qfMFSXU5mHBBNgMzUjha62P7kVoCoTBuh50Upw23045NhFONfiobWnDabWS4HWR5rbp0O+xUNLRQ2dBCeoqDQZluvC4HLcEQgZDB67Ljdto5WNnIjqO11DUHSHc7SUtx4HHZ8Titz2wTQQQECIYN1U1+6poD2CL173HZSXU5cDls+AIhfIEwwXCYYMhgtwkpDhsiQkNLkMYWKylwOWy4HDacdhsuu43rLh2Ay6E3Bnfk9O9Ge5pVMpo9ezZz5syhsrKSN998E4Da2loGDBiA0+lk/fr1nGvB8NraWrKzs/F6vezevZvNmzcDUFpayne+8x0OHjzYepkvJyeHKVOmsHjxYn7xi18A1mW+vu6dOmcyJSJ2YDEwBSgH3hWRlcaYnW2K3QVUG2MuEpHbgZ8Cs/si4ETldtopzkulOC+Vay/pfAFVXyDEyboWTtRbmbnDJtQ2Bzha46Om2U+G24nLYWPXsTreP1zNzqN1uBw2Mj1OvlZ6ASOHZOAPhqlsaKGywU9Vo5/a5gDBUBhfIMTbByo5/oGPtpO7Z7gd5KdbiYs/ZP1jGwgZfIEQDS3BPquX7rAJnO+UXzaBnNQUKht6d1m2VJedRn+oV48Za7Y98L81mepEnU+XklHJa9SoUdTX1zN06FAGD7auznz1q1/l5ptvZsyYMZSUlHDZZZd1eoypU6fy1FNPMWLECC699FJKS0sByM/PZ8mSJcycOZNwOMyAAQN44403uP/++5k3bx6jR4/GbrezaNEiZs6c2aefsyvf8CuA/caYjwFEZBkwA2ibTM0AHog8Xw78SkTE6ForfcLttDMs18uwXG+fnaMlGMLnt3qwnA7B6+r4T+V0D1QgZAi06TVz2IUMtxOP005Nc4CT9T58gTBhYwiFDf5gmGDYkBvpYXLabLQEw9Q0+yk71czxOh/pKQ6yvE7S3c7W3hhHZNB+VaOfk3U+bCKkuR34g2EOn2rieG0z2V4XAzPciEBTS4iQsS6Fepx2mvwh6n1BPC4b2V4XvkCYXcfqKK9uZsTgdCZckI3HZae6MUAgFCY1xU6Kw44vEKLRH8JpF1JdDpoDIT6pauJkvY8B6W7rMmuqkwy3k6pGP+8druZQZSOXDExjTEEWXpedlkAYXzCEL9LDlpvqIi8thWDIUOcLUNMUoKbZT5M/RH5aCnlpKTS0BDlW24wvEMbttHrzmv0hmvwhCrI9jB6aSW6aiwZfkHpfEF8wRLM/RNgYwgbCkczSZhOyPE4yvU4w4IvE0tgSxB8M43Za9eu0C3abEDbW38Hpy8hpKQ7Cxkqm/cEwgcjP1E7+NhSMGpJBllfHS6nkdXog+Gl5eXls2rSp3bINDQ2f2ZeSksKrr77abvlp06Yxbdq0M/alpaXx7LPPdjPa7ulKKzgUKGuzXQ5c2VEZY0xQRGqBXKCybSERmQvMBRg2bFg3Q1b9IcVh7/I0Dk67jdy0lE7L5KS6yEl1del4gzLdXDYo45zlCnN6L5mcOrrjgY+dKb0wt939hTlexhVm9SSk85aSZj/n70H1v29+/sJoh6CU6mP92jdvjFlijCkxxpTk53d+KUsppZRSKh50JZk6AhS22S6I7Gu3jIg4gEysgehKKaWUihIdbXP+ulNnXUmm3gUuFpFiEXEBtwMrzyqzEvh65PmXgb/oeCmllFIqetxuN1VVVZpQnQdjDFVVVbjd57cM3DnHTEXGQN0DvIY1NcJSY8wOEXkQ2GKMWQn8BvitiOwHTmElXEoppZSKkoKCAsrLy6moqIh2KHHF7XZTUFBwXu/p0m04xpjVwOqz9v24zXMfcOt5nVkppZRSfcbpdLbODq76lk4Oo5RSSinVA5pMKaWUUkr1gCZTSimllFI9INEa5S8iFUDnC/KcKY+zJgGNE/EaN8Rv7PEaNyR+7BcYYxJikrnzbMMS/fcai+I1bojf2OM1buhh+xW1ZOp8icgWY0xJtOM4X/EaN8Rv7PEaN2jsiSqe6yZeY4/XuCF+Y4/XuKHnsetlPqWUUkqpHtBkSimllFKqB+IpmVoS7QC6KV7jhviNPV7jBo09UcVz3cRr7PEaN8Rv7PEaN/Qw9rgZM6WUUkopFYviqWdKKaWUUirmaDKllFJKKdUDMZ9MichUEdkjIvtFZGG04+mMiBSKyHr0y56XAAAD7klEQVQR2SkiO0RkQWR/joi8ISL7Ij+zox1re0TELiIfiMgrke1iEXknUvd/EBFXtGNsj4hkichyEdktIrtE5Kp4qHMR+V7k72S7iDwvIu5YrXMRWSoiJ0Vke5t97daxWJ6IfIaPRORz0Ys8+uKlDdP2Kzritf0CbcPaiulkSkTswGJgGjASuENERkY3qk4Fgf9njBkJlALzIvEuBNYZYy4G1kW2Y9ECYFeb7Z8CPzfGXARUA3dFJapz+yWwxhhzGTAW6zPEdJ2LyFDgu0CJMWY0YAduJ3br/L+BqWft66iOpwEXRx5zgf/spxhjTpy1Ydp+RUfctV+gbdhnGGNi9gFcBbzWZvtHwI+iHdd5xP8yMAXYAwyO7BsM7Il2bO3EWhD5Y/pfwCuAYM0G62jvdxErDyATOEjkZoo2+2O6zoGhQBmQAzgidf6lWK5zoAjYfq46Bp4G7mivXLI94rkN0/arX+KOy/YrEpe2YW0eMd0zxae/rNPKI/tinogUAeOBd4CBxphjkZeOAwOjFFZnfgH8EAhHtnOBGmNMMLIdq3VfDFQA/xXp4n9GRFKJ8To3xhwB/h34BDgG1ALvER91flpHdRy339s+EJd1oe1Xv4nL9gu0DTtbrCdTcUlE0oAXgXuNMXVtXzNWmhtT81GIyE3ASWPMe9GOpRscwOeA/zTGjAcaOatLPEbrPBuYgdWYDgFS+WwXdNyIxTpW3aPtV7+Ky/YLtA07W6wnU0eAwjbbBZF9MUtEnFgN0XPGmD9Fdp8QkcGR1wcDJ6MVXweuAaaLyCFgGVZX+S+BLBFxRMrEat2XA+XGmHci28uxGqdYr/PrgYPGmApjTAD4E9bvIR7q/LSO6jjuvrd9KK7qQtuvfhev7RdoG3aGWE+m3gUujtwd4MIa3LYyyjF1SEQE+A2wyxjzeJuXVgJfjzz/OtZYhJhhjPmRMabAGFOEVcd/McZ8FVgPfDlSLObiBjDGHAfKROTSyK4vAjuJ8TrH6hovFRFv5O/mdNwxX+dtdFTHK4F/iNwRUwrUtulKTzZx04Zp+9X/4rj9Am3DzhTtAWFdGDB2A7AXOAD8c7TjOUesk7C6CT8CtkYeN2Bdv18H7APWAjnRjrWTz3Ad8Erk+YXA34H9wB+BlGjH10HM44AtkXp/CciOhzoHfgLsBrYDvwVSYrXOgeexxkUEsP43fVdHdYw1+Hdx5Du7Detun6h/hijWXVy0Ydp+RS3muGy/IrFrGxZ56HIySimllFI9EOuX+ZRSSimlYpomU0oppZRSPaDJlFJKKaVUD2gypZRSSinVA5pMKaWUUkr1gCZTSimllFI9oMmUUkoppVQP/H9kCM+lIUDI5gAAAABJRU5ErkJggg==\n"},"metadata":{"needs_background":"light"}}]},{"cell_type":"markdown","source":["The training performance using DenseNet."],"metadata":{"id":"071QzvPlhpYD"}},{"cell_type":"code","source":["# plot\n","plt.figure(figsize=(10, 4))\n","plt.subplot(1, 2, 1)\n","plt.plot(history.history['loss'])\n","plt.plot(history.history['val_loss'])\n","plt.legend(['train loss', 'val loss'])\n","plt.title('loss')\n","plt.subplot(1, 2, 2)\n","plt.plot(history.history['accuracy'])\n","plt.plot(history.history['val_accuracy'])\n","plt.legend(['train acc', 'val acc'])\n","plt.title('accuracy')"],"metadata":{"colab":{"base_uri":"https://localhost:8080/","height":298},"id":"dzOOgmeOhoxk","executionInfo":{"status":"ok","timestamp":1657582615927,"user_tz":240,"elapsed":314,"user":{"displayName":"Yiqiao Yin","userId":"16271867367914268422"}},"outputId":"a1333a6c-37ff-4e48-dca1-87deb52bb96b"},"execution_count":null,"outputs":[{"output_type":"execute_result","data":{"text/plain":["Text(0.5, 1.0, 'accuracy')"]},"metadata":{},"execution_count":53},{"output_type":"display_data","data":{"text/plain":["
"],"image/png":"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\n"},"metadata":{"needs_background":"light"}}]},{"cell_type":"markdown","source":["### Evaluation"],"metadata":{"id":"ao1Xr68Ryhmf"}},{"cell_type":"code","source":["# quick evaluation on test set\n","this_final_loss_, this_final_acc_ = model.evaluate(x_test, test_labels_one_hot_encoded)\n","print('Test Result: Loss is '+str(this_final_loss_)+', and accuracy is '+str(this_final_acc_))"],"metadata":{"id":"d8yHo74Nyjm9","executionInfo":{"status":"ok","timestamp":1657582618101,"user_tz":240,"elapsed":2181,"user":{"displayName":"Yiqiao Yin","userId":"16271867367914268422"}},"colab":{"base_uri":"https://localhost:8080/"},"outputId":"cb0351b6-fcf8-4aa2-f9fe-109dbc021c69"},"execution_count":null,"outputs":[{"output_type":"stream","name":"stdout","text":["313/313 [==============================] - 2s 7ms/step - loss: 1.0352 - accuracy: 0.9069\n","Test Result: Loss is 1.0351861715316772, and accuracy is 0.9068999886512756\n"]}]},{"cell_type":"code","source":["# predict\n","test_labels_one_hot_encoded_predicted = model.predict(test_images)\n","test_labels_predicted = np.argmax(test_labels_one_hot_encoded_predicted, axis=1)\n","print(test_labels.shape)\n","print(test_labels_predicted.shape)"],"metadata":{"id":"1b0N7fbVyORs","executionInfo":{"status":"ok","timestamp":1657582620247,"user_tz":240,"elapsed":2147,"user":{"displayName":"Yiqiao Yin","userId":"16271867367914268422"}},"colab":{"base_uri":"https://localhost:8080/"},"outputId":"206c6439-c83f-42b9-ed89-05bc87b66d0e"},"execution_count":null,"outputs":[{"output_type":"stream","name":"stdout","text":["(10000, 1)\n","(10000,)\n"]}]},{"cell_type":"code","source":["# plot\n","cm = confusion_matrix(test_labels, test_labels_predicted, labels=np.arange(10))\n","disp = ConfusionMatrixDisplay(confusion_matrix=cm, display_labels=np.arange(10))\n","disp.plot()\n","plt.title('test acc='+str(np.round(this_final_acc_,3)))\n","plt.show()"],"metadata":{"id":"QO0svU2NyVJD","executionInfo":{"status":"ok","timestamp":1657582620874,"user_tz":240,"elapsed":628,"user":{"displayName":"Yiqiao Yin","userId":"16271867367914268422"}},"colab":{"base_uri":"https://localhost:8080/","height":295},"outputId":"3c904d51-df16-4224-8823-bbe6aa7c7b93"},"execution_count":null,"outputs":[{"output_type":"display_data","data":{"text/plain":["
"],"image/png":"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\n"},"metadata":{"needs_background":"light"}}]},{"cell_type":"markdown","source":["## Research Proposal\n","\n","Research proposal is a guideline of what you want to do with your project. You should start with a topic title and a punchline of your project.\n","\n","### Topic\n","\n","This project designs a deep Convolutional Neural Network (CNN) to classify images into different labels. The goal is to see whether advanced AI models such as deep CNN can recognize the patterns in the images.\n","\n","### Proposed Experiment\n","\n","This project starts with a baseline model. This is a simple neural network, also known as Artificial Neural Network (ANN). An ANN has dense layers and the layers are formed using a linear combination (these are the neurons in the dense layers) and an activation function.\n","\n","This project also investigates advanced models. This is a family of different Convolutional Neural Network (CNN). Models such as CNN are consist of convolutional layers. Give an example of a convolution operation.\n","\n","### Expected Results\n","\n","In a simple data such as MNIST Handwritten Digits, we expect baseline model to perform about 97% and advanced model to perform about 98%.\n","\n","For example, from the above experiments attempted, we can summarize the following table.\n","\n","| No. | Conv | Hidden | Performance |\n","| --- | --- | --- | --- | \n","| 1 | 0 | [256, 128, 64] | 98% |\n","| 2 | [32, 64] | [256, 128] | 99% |\n","| 3 | VGG16 | [512, 128] | 90% |\n","\n","Can you detect a pattern here? If yes, how would you propose the next step?\n","\n","### Future Work\n","\n","This project will implement baseline model and advanced models on Chest X-ray image dataset. The project will build deep CNN model to help doctors to make diagnosis of lung cancer. \n","\n","In addition, optional work can be to investigate the explainability of the deep CNN models. CNN models, after tuning, can have high prediction performance. However, it requires additional work to help the doctors to explain how CNN work. This is the explainability side of the project that we can do if we have more time. "],"metadata":{"id":"dIG8zolUFkRl"}}]} \ No newline at end of file