From 7d395e8e7ab19abd40dde93e6f05af71a1d5ed16 Mon Sep 17 00:00:00 2001 From: Anurag Singh <106547853+anurags04@users.noreply.github.com> Date: Fri, 24 Jun 2022 23:12:03 +0530 Subject: [PATCH 1/6] Add files via upload --- Assignment 1/A1_200171.ipynb | 1 + 1 file changed, 1 insertion(+) create mode 100644 Assignment 1/A1_200171.ipynb diff --git a/Assignment 1/A1_200171.ipynb b/Assignment 1/A1_200171.ipynb new file mode 100644 index 0000000..c3d4635 --- /dev/null +++ b/Assignment 1/A1_200171.ipynb @@ -0,0 +1 @@ +{"cells":[{"cell_type":"markdown","metadata":{"id":"RB2d1J1f1CF7"},"source":["### **Aim** \n","The motive of this assignment is to make predictions using **Linear Regression**. To make sure you truly understand how the underlying algorithm works, you are to implement it from scratch."]},{"cell_type":"markdown","metadata":{"id":"a_S80lf6H4Xv"},"source":["### Generating the dataset \n","Run the cell below to create the dataset. It further splits the available data into training and testing. Please do not edit this cell.\n"]},{"cell_type":"code","execution_count":3,"metadata":{"executionInfo":{"elapsed":1011,"status":"ok","timestamp":1655462968739,"user":{"displayName":"Anurag Singh","userId":"10745855479500948138"},"user_tz":-330},"id":"yX0zqXcHIQHP"},"outputs":[],"source":["from sklearn import datasets\n","from sklearn.model_selection import train_test_split\n","\n","# Generate the data\n","X, y = datasets.make_regression(n_samples=100, n_features=5, noise=20, random_state=4)\n","\n","# Split the data\n","X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=1234)"]},{"cell_type":"markdown","metadata":{"id":"Zj4rrRXGJBXy"},"source":["### Visualizing the data \n","Use `matplotlib` to visualize the given data."]},{"cell_type":"code","execution_count":7,"metadata":{"colab":{"base_uri":"https://localhost:8080/","height":1000},"executionInfo":{"elapsed":1694,"status":"ok","timestamp":1655463104820,"user":{"displayName":"Anurag Singh","userId":"10745855479500948138"},"user_tz":-330},"id":"zxfi8dkBJOUi","outputId":"ecad37fa-13f3-4ff7-9150-900504f8ec5b"},"outputs":[{"output_type":"display_data","data":{"text/plain":["
"],"image/png":"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\n"},"metadata":{"needs_background":"light"}},{"output_type":"display_data","data":{"text/plain":["
"],"image/png":"iVBORw0KGgoAAAANSUhEUgAAAY0AAAEGCAYAAACZ0MnKAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4yLjIsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy+WH4yJAAAdKklEQVR4nO3dfbRddX3n8feHEB4KKFIi0JAYbOO0CVXMRAyQGcXIGFhgwCrykBbRQh2girRaEKdBrVPWUPGhgDVjUVw8DVUeFRogtSKlAUKMwCUijIiEoqTawQgmJPE7f5x9w8nNuefse85+Pp/XWndx9z7n3PM9l5v93fv3/f2+WxGBmZlZGjuUHYCZmdWHk4aZmaXmpGFmZqk5aZiZWWpOGmZmltqOZQeQp7333jtmzJhRdhhmZrXywAMP/HtETOn0WKOTxowZM1i5cmXZYZiZ1YqkJ8d7zMNTZmaWmpOGmZml5qRhZmapOWmYmVlqThpmZpaak4aZmaXW6Cm3ZnlasXyEVXc/xpz5M5m3YHbZ4ZgVwlcaZn1YsXyEC8++mluuvIcLz76aFctHyg7JrBBOGmZ9WHX3Y2zcsAmAjRs2serux0qOyKwYThpmfZgzfyY77zIZgJ13mcyc+TNLjsisGK5pmPVh3oLZnPvZk1zTsKHjpGHWp3kLZjtZ2NDx8JSZmaXmpGFmZql5eMrMGstrabLnpGFmjTS6lmbjhk3c/rX7OfezJ004cTjpbM/DU2bWSIOupfECzs6cNMyskQZdS+MFnJ15eMrMGmnQtTRz5s/k9q/dz8YNm7yAs40iouwYcjN37tzwPcLNrF/DWtOQ9EBEzO30mK80zMzG4QWc23NNw8zMUnPSMDOz1Jw0zMwsNScNMzNLrbSkIWmapG9JekTSiKQPJvv3knSHpMeS/74i2S9Jn5f0uKQHJc0pK3bL1orlI1z28Ru9eMqsBsq80tgM/FlEzALmAWdKmgWcCyyPiJnA8mQb4EhgZvJ1OvCF4kO2rHnVrVm9lJY0IuKZiFiVfL8eWANMBRYBVyRPuwI4Nvl+EfDVaFkB7Clpv4LDtox51a1ZvVSipiFpBvB64F5gn4h4JnnoJ8A+yfdTgafaXrY22Wc15tumNouHGpuv9MV9knYHvg6cHRG/kLT1sYgISRNasi7pdFrDV0yfPj3LUC0Hvm1qc2TRVdaqr9SkIWkyrYRxVURcn+z+qaT9IuKZZPjp2WT/08C0tpfvn+zbRkQsBZZCq41IbsFbZrzqthk6DTX6/2vzlDl7SsDfA2si4uK2h24GTkm+PwW4qW3/HyWzqOYBz7UNY5lZyTzUOBxKa1goaT7wHeAh4NfJ7o/SqmtcB0wHngSOj4ifJ0nmEmAh8AJwakR07UbohoVmxRrWBn9N061hobvcmpnZNroljUrMnjIzs3ooffaUmQ03D2nVi680zKw07ghQP04aZlaarDsCZL240IsVt+ekYWalyXKabtZXLb4K6sxJw2zIlXk2PdoR4JjFhw68gjzrqxb3RevMScNsiFXhbHregtmcseTYgYvgWS8u9GLFzjx7ymyINan1R9Z9zNwXrTMnDbMhNmf+TG7/2v1s3LCpEWfTWfcxc1+07TlpmA0xn03bRDlpWGV50VcxfDZtE+GkYZXkezOk48RqRfPsKaukukx3LHK66tj3qsLMJxs+ThpWSXWY7ljkQbvTe9UlsVqzOGlYJWW56CsvRR60O71XHRKrNY9rGlZZVS/QFjldtdN7eeaTlcE3YTIbQJGFaBe9rSi+c5+ZbafqSajq8TWZ79xnZtuo+syrqsc3zJw0zIZQ1WdeVT2+YeakYTaEqj7zqurxDTPXNMyGVNVrBlWPr8lcCDezvvjAPZxcCDezCXMx2jpx0jCzjlyMtk6cNMwSZd4ru4pcjLZOetY0JAk4GXh1RHxC0nRg34i4r4gAB+GahqXV3op9510mV7bfVdHKrmmU/f7DqltNI03vqcuAXwNvAT4BrAe+DrwhswjNStake2Vnqcz+X76nSjWlGZ56Y0ScCWwAiIj/AHbKNSqzgtVxKKbpw2muqfQvz7+NNFcamyRNAgJA0hRaVx5mjVG3jrHDcBZeZBfhJsn7byNN0vg8cAPwSkmfAt4JfCyLN5d0OXA08GxEHJjs2wv4P8AM4EfA8RHxH0lt5XPAUcALwHsiYlUWcZhB56GYqo6pD8NwWt0SeVXk/bfRc3gqIq4CPgL8NfAMcGxE/ENG7/8VYOGYfecCyyNiJrA82QY4EpiZfJ0OfCGjGMw6qvI6hToOp/Vj3oLZnLHkWCeMCcj7b6PnlUYyW+oF4Jb2fRHx40HfPCLukjRjzO5FwJuT768A/hn4i2T/V6M13WuFpD0l7RcRzwwah1knVT6b91m4jSfvv400w1PfpFXPELALcADwKJDXX+k+bYngJ8A+yfdTgafanrc22bdN0pB0Oq0rEaZPn55TiDYMqj6mXoU7G5YxfFfVIcMqyfNvo2fSiIjfb9+WNAc4I5dotn/vkDSh5lgRsRRYCq11GrkEZkPBZ/PdlVGMH4YJAFU34RXhSfH5jTnEMuqnkvYDSP77bLL/aWBa2/P2T/aZ5cZj6uMrY0qsp+GWr2fSkHRO29efS7oa+LccY7oZOCX5/hTgprb9f6SWecBzrmeY5W+8Of9lFOPTvmfT17CUKU0bkSVtm5tpTYP9ekRsGPjNpWtoFb33Bn4KLAFuBK4DpgNP0ppy+/Nkyu0ltGZbvQCcGhFde4S4jUj9VGG8ugoxVCWOXu1VqljTcEuYwfl+GlYLVfjHXoUYqhTHZR+/kVuuvGfr9jGLD+WMJcf2fF2ZCa/fmO0lfd1PQ9Itkm4e7yu/cG1YVWG8ulcMRQ17VOF3Af0NQZW9vmVY1rCUpdvsqb8pLAqrlbzOIqswxbVbDP3M3On3d1WF3wVsP4MMWmfy3T5P2etbPOstXx6esgnJe9ikKuP4nWKY6LDHoL+rKvwuxsaT5vNUZWjN+jdQa3RJM2m1EJlFa3EfABHx6switNrI+yyyCgvWxouh11XI2AP8oL+rPH8X/SSktJ/HZ/rNlmadxpdp9XnaDBwOfBW4Ms+grLqGebx49GB4zOJDtzl7Hm8Mv6q/q35rDhP5PF7f0lxp2ojsGhHLJSkingQukPQA8Jc5x2YVNOxnkZ3O/sc7A6/K72rsVUW/V0BV+TxWrjRJY6OkHYDHJJ1FaxX27vmGZVVWhSGkfpRRwC/7d9WpeD9Ikb3sz2PlG7cQLmnfiPiJpDcAa4A9gU8CLwMuiogVxYXZHxfCbdQwFPA7+cs/vpz7v/39rdujxfus463q57f+9FsIXy3pYeAa4LGIWAucmkeAZnkbhgL+WCuWj7D6X19a37Hj5ElbryqyjNdNBIdLt0L4VOAiYD7wqKSbJJ0gaddiQjPLTpoibtP6Fa26+zE2vbhl6/brD/2dXA7mVVmIaMUYN2lExJaIWBYRp9LqLns5rRshPSHpqqICNMvCeDOfRpW9inki0ia39kQ5eadJgHL5XFWdJWb5SL24L1mvcSKwGPhlRMzJM7AsuKZhadWlX9FEazMrlo9w6zUr+O49j7N505bcFtu5ptEsffWeSl44TdKHJa0CvpE8/+11SBg2PLIYVqrL2fJEh4LmLZjNvtN+k82btqR+TT+8LmN4jFsIl3QPrbrGdcBpEfFAYVGZpZRVEbYuaxD6mS47kdekvWLwlcXw6jbl9r8C34kaN6fy8FTz1WVYKUv9HLDTvMa9pWxUX1NuI+Ku/EIyy0ZVusEWqZ/psr1es2L5CFdcvCzVtOSyu9haudKsCDerrKoMK9V5uKb9ymFUtwQ8jInaXuLW6GYDqvtwzdghvhmv2ZdTznmbaxpDbNDW6Od02P0c8EBErB40OLO6q/twzdgrh14JA6q5At6KkWZ4am7ydUuyfTTwIPB+Sf8QEf8rr+DM6qDo4Zqsz/IHHeLzVcdw6Tk8Jeku4KiI+GWyvTvwTWAhrauNWblH2ScPT1lRsjxwdvtZVRsKq1o8lo2+F/clXglsbNveBOwTEb8as99saI1d3NbvgsNe7Uyq1uepavFY/tIkjauAeyUtkbQE+Bfgakm7AY/kGp1ZDQ3Sx6rXQbhqK9erFo/lr2dNIyI+Kek24LBk1/sjYnTM5+TcIjOrqUEK473qI1WZYlzVeCx/3VaEvywifiFpr06PR8TPc40sA65pNMdo4z0QR534xkofnAYd589rxbdZWt1qGt2Sxjci4mhJTwDtTxIQEfHq7EPNlpNGM6xYPsL//MCVW+8NsePkSZz/t4srfXAs8iDuYrRlrd82Ikcn/z0gr8DM0hh7M6HNm7b0HPLpdNAu8kBe5DqGuq8TsXrp1uW2a/vziFiVfThm25szfyb/eN2921xp9OrUOrbzLdDYW5K6rYcVqVsh/NPJf3ehtbjve7SGpl4LrAQOyTc0s5Z5C2bz0c8vTl3TGG8GUlPPxl2MtiJ1G546HEDS9cCciHgo2T4QuKCQ6DqQtBD4HDAJ+FJEXFhWLFaciQz3jHfm3eSzcbf1sKKkWRE+EhGze+0rgqRJwA+AI4C1wP3AiRHRcb2IC+HDq1tNY7c9dub59RtzX72dx+vMitDX7Km2F18DPA9cmew6Gdg9Ik7MNMoUJB0CXBARb0u2zwOIiL/u9HwnDRur10yjiRzMu/2sOrUCMRtr0DYipwIjwAeTr0eSfWWYCjzVtr022beVpNMlrZS0ct26dYUGZ9XXbcX1RFdyj/ez6tYKxGwieiaNiNgQEZ+JiOOSr89ExIYigutHRCyNiLkRMXfKlCllh2MV0N4Hqlvbi4kezMf7WXVrBTKq335ZNlzS3E/jMFqF71e1P7+kxX1PA9PatvdP9pl11Gn67XgzjcYW0HfbY2cu+/iN4w5VjTdrqW6tQKDz76kKcVn1pKlpfB/4EPAAsHWFVUT8LN/QOsayI61C+AJayeJ+4KSI6Hhq5JqGjb0r3TGLD+WMJceO+/z2YvkNX7670FYgZZro78mabdCaxnMRcVtEPBsRPxv9yjjGVCJiM3AWsAxYA1w3XsIwg4kPBY22OH9+/caB6g5jW6VXXVWHzKx60ty571uSLgKup+3+GWWtCI+IW4Fby3hvq59+h4KyWmVddA+qft+rikNmVk1phqe+1WF3RMRb8gkpOx6eyl7dhl0GMehnLXJqrafxWpb6alg4anRluFmdi6X9JIBBV1kX2UjQTQutKD1rGpJeLuni0bUPkj4t6eVFBGfVUtf1BYPcSW8QRdYJXJOwoqSpaVwOPAwcn2z/IfBl4B15BWXVNOg4f1lDW2WdhRdZJ3BNwoqSpqaxOiIO6rWvilzTyN4gvZbKGnMf+97HnTo/s95TZk00UE0D+JWk+RFxd/LDDgN+lWWAVh/9jvOXOebefhbevv6ibnUZsypIs07jvwOXSvqRpCeBS4A/yTcsa5qyx9yzWn9hNuzSzJ5aDbxO0suS7V/kHpU1TlXG3H2XO7PBpKlp/CawBJgPBHA38ImyVoVPhGsa1skwrTXpZNg/v/U26P007gDuYtv7abw5It6aaZQ5cNKwItTpIOxFgJbGoL2n9ouIT0bEE8nXXwH7ZBuiWXV1axnezxqQMluQ13WtjVVHmqRxu6QTJO2QfB1Pq2GgWeNlfUOlshYajip7QkJavrdHdaVJGqcBV9NqVvgicC3wJ5LWS3JR3Bot6xsqlX2mPzoh4ZjFh1Z2aKrsxGrdpZk9tUcRgZhVUdY3VKrC7K1Be2rlzX20qi1NIfwwYHVEPC9pMTAH+GxE/LiIAAfhQnh3Ey3gtt+gaJhWVGdd6K5T4bxfg3xGF+vLN+jsqQeB1wGvBb4CfAk4PiLelHGcmXPSGN9E/2G2P3+U/0FbJ1kc9IchsVbZoLOnNkcrsywCLomISwEPWdXcRMfW258/qs6zb1xozU8WdZu63flwmKRJGuslnUeru+03Je0ATM43LMvbRAu47c8fVeXZN9240JqvuszQsv6kaVj4buAk4L0R8RNJ04GL8g3L8jbRAu7Ypn91rmkUVWgd1iGWqrSMsXz0rGkASHoVMDMi7pT0G8CkiFife3QDck3DOimi0OpirtXZQK3RJZ0GnA7sBfw2MBX4O2BBlkGaFaWIM2FPG7WmSjM8dSZwMHAvQEQ8JumVuUZllrO81ypUYT2GWR7SJI2NEfGiJAAk7Uir262ZjSOLq5lhrYlYtaVJGt+W9FFgV0lHAGcAt+QbllWJD179GeRqpr0m4jsMWpWkmXL7F8A64CFad+y7FfhYnkFZdXh6ajnK7lFlNp6uSUPSJGBNRPzviHhXRLwz+d7DU0NiGA5eVVzo57UOVlVdh6ciYoukRyVNr0OvKcte2oJuXYewqjoM5LUOVlVpahqvAEYk3Qc8P7ozIt6eW1RWGWkOXlU98KZR5amxVe9Ga8MpTdL4H7lHYZXW6+BV5QNvL54aazYxXZNGUtP4YkT8bkHxWA3V+cDrYSCziUnTGv0m4E+zrGlIehdwAfB7wMERsbLtsfOA9wFbgA9ExLJk/0Lgc8Ak4EsRcWGv93EbkeLUtaZhZtsbqI0I+dQ0HgbeAXxxTKCzgBOA2cBvAXdKek3y8KXAEcBa4H5JN0fEIwPEYBny+LvZcCilphERawBGV5m3WQRcGxEbgSckPU6rhQnA4xHxw+R11ybPddJo47N9M8tbz8V9EfFt4Pu0bry0B611G9/OKZ6pwFNt22uTfePt346k0yWtlLRy3bp1OYVZPV6EZ2ZF6Jk0JB0P3Ae8CzgeuFfSO1O87k5JD3f4WjR42OOLiKURMTci5k6ZMiXPt6qUYViEZ2blSzM8dT7whoh4FkDSFOBO4GvdXhQRb+0jnqeBaW3b+yf76LLfqPcMJjOrjzRJY4fRhJH4Gel6VvXjZuBqSRfTKoTPpHWVI2CmpANoJYsTaN1N0BJ1mzrq+otZPaVJGv8oaRlwTbL9buC2Qd5U0nHA3wJTaN13fHVEvC0iRiRdR6vAvRk4MyK2JK85C1hGa8rt5RHhQfsx6jKDqc4ryLtxIrRh0DNpRMSHJb0DmJ/sWhoRNwzypsnrO/6MiPgU8KkO+2+l1WHXaq7OK8jH09REaDbWuMNMkn5H0mEAEXF9RJwTEecA6yT9dmERWuM0sYOrJyLYsOh2pfFZ4LwO+59LHjsml4is8epWf0ljtz127rpt1hTdksY+EfHQ2J0R8ZCkGblFZJWV5Zh9XeovaT2/fmPXbbOm6DYLas8uj+2adSBWbV482F0Th9zMOumWNFZKOm3sTkl/DDyQX0hWRR6z7250yO2YxYe6CG6N1m146mzgBkkn81KSmAvsBByXd2BWLV482FvThtzMOknTGv1w4MBkcyQi/in3qDLi1ujZ8joEs+HQrTV6z6RRZ04a1ePEY1Z93ZJGXu1AzLbjYrpZ/TlpWGHGFtNvvWZFyRHla8XyES77+I1OjtYoThpWmDnzZzJ5p0lbt797z+ONPaD6qsqayknDCjNvwWwOOuSlWVebN21p7NRdT1G2pnLSsEIddeIbh2IRnBf7WVN59pQVbiIzqOo826rOsdtw85Rbq6X2duM77zLZK63NCuIpt1ZLrguYVY+ThlWW6wJm1ZPmdq9mpWjifTfM6s5XGlZp8xbM5owlxwJ4oZxZBThpWOV5oZxZdThpDMBtIorhgrhZdThp9Mlnv8VxQdysOlwI71Ons18XavPhgrhZdThp9Ml3siuW74pnVg1OGuPo1QLCZ79mNozcRqQDt68ws2HmNiIT5Nk6ZmadOWl04Nk6ZmaduabRgesVZmadlZI0JF0EHAO8CPxf4NSI+H/JY+cB7wO2AB+IiGXJ/oXA54BJwJci4sI8Y/RsHTOz7ZU1PHUHcGBEvBb4AXAegKRZwAnAbGAhcJmkSZImAZcCRwKzgBOT55qZWYFKSRoRcXtEbE42VwD7J98vAq6NiI0R8QTwOHBw8vV4RPwwIl4Erk2eaw3mNi1m1VOFQvh7gduS76cCT7U9tjbZN97+7Ug6XdJKSSvXrVuXQ7hWBLdpMaum3JKGpDslPdzha1Hbc84HNgNXZfW+EbE0IuZGxNwpU6Zk9WOtYJ72bFZNuRXCI+Kt3R6X9B7gaGBBvLTC8GlgWtvT9k/20WW/NZDbtJhVU1mzpxYCHwHeFBEvtD10M3C1pIuB3wJmAvcBAmZKOoBWsjgBOKnYqK1InvZsVk1lrdO4BNgZuEMSwIqIeH9EjEi6DniE1rDVmRGxBUDSWcAyWlNuL48ID3I3nKc9m1WPe0+Zmdk23HvKzMwy4aRhZmapOWmYmVlqThpmZpaak4aZmaXmpGFmZqn5fhpWW73u425m2fOVhtWSGxqalcNJw2rJDQ3NyuGkYbXk+7iblcM1DaslNzQ0K4eThtWWGxqaFc/DU2ZmlpqThpmZpeakYWZmqTlpmJlZai6E58grls2saXylkROvWDazJnLSyIlXLJtZEzlp5MQrls2siVzTyIlXLJtZEzlp5Mgrls2saTw8ZWZmqTlpmJlZak4aZmaWmpOGmZml5qRhZmapOWmYmVlqioiyY8iNpHXAk2XHMcbewL+XHUSB/Hmbb9g+8zB83ldFxJRODzQ6aVSRpJURMbfsOIriz9t8w/aZh+3zjuXhKTMzS81Jw8zMUnPSKN7SsgMomD9v8w3bZx62z7sN1zTMzCw1X2mYmVlqThpmZpaak0YJJF0k6fuSHpR0g6Q9y44pT5LeJWlE0q8lNXaqoqSFkh6V9Likc8uOJ0+SLpf0rKSHy46lCJKmSfqWpEeSv+UPlh1TWZw0ynEHcGBEvBb4AXBeyfHk7WHgHcBdZQeSF0mTgEuBI4FZwImSZpUbVa6+AiwsO4gCbQb+LCJmAfOAMxv+/3dcTholiIjbI2JzsrkC2L/MePIWEWsi4tGy48jZwcDjEfHDiHgRuBZYVHJMuYmIu4Cflx1HUSLimYhYlXy/HlgDTC03qnI4aZTvvcBtZQdhA5sKPNW2vZYhPag0naQZwOuBe8uNpBy+3WtOJN0J7NvhofMj4qbkOefTuuy9qsjY8pDm85rVnaTdga8DZ0fEL8qOpwxOGjmJiLd2e1zSe4CjgQXRgMUyvT7vEHgamNa2vX+yzxpC0mRaCeOqiLi+7HjK4uGpEkhaCHwEeHtEvFB2PJaJ+4GZkg6QtBNwAnBzyTFZRiQJ+HtgTURcXHY8ZXLSKMclwB7AHZJWS/q7sgPKk6TjJK0FDgG+KWlZ2TFlLZnYcBawjFaR9LqIGCk3qvxIugb4V+A/SVor6X1lx5Szw4A/BN6S/JtdLemosoMqg9uImJlZar7SMDOz1Jw0zMwsNScNMzNLzUnDzMxSc9IwM7PUnDTMuki6mz4haa9k+xXJ9owOz/2ApDWSJrzCX9IMSScNHrFZvpw0zLqIiKeALwAXJrsuBJZGxI86PP0M4IiIOLmPt5oBTDhpJN11zQrjpGHW22eAeZLOBuYDfzP2CckCzVcDt0n6kKTdkntO3Cfpu5IWJc+bIek7klYlX4cmP+JC4L8ki8Y+JOk9ki5p+/nfkPTm5PtfSvq0pO8Bh0hanLzPaklfdCKxPDlpmPUQEZuAD9NKHmcn22Of837g34DDI+IzwPnAP0XEwcDhwEWSdgOepXU1Mgd4N/D55EecC3wnIg5KXt/NbsC9EfE64GfJzzksIg4CtgD9XOmYpeKGhWbpHAk8AxxI6yZavfw34O2S/jzZ3gWYTiuxXCJp9AD/mj5i2UKrcR7AAuA/A/e32iOxK63EZJYLJw2zHpID/BG07th2t6RrI+KZXi8D/mDszackXQD8FHgdrSv9DeO8fjPbjgTs0vb9hojY0vY+V0RE0+/+aBXh4SmzLpLupl+gNSz1Y+AiOtQ0OlgG/GnyeiS9Ptn/cuCZiPg1rQZ4o/WH9bSaWI76EXCQpB0kTaN1Z8BOlgPvlPTK5H32kvSqtJ/PbKKcNMy6Ow34cUSMDkldBvyepDf1eN0ngcnAg5JGku3R15+SFLF/F3g+2f8gsEXS9yR9CPgX4AngEVp1j1Wd3iQiHgE+Btwu6UFaQ2f7TfxjmqXjLrdmZpaarzTMzCw1Jw0zM0vNScPMzFJz0jAzs9ScNMzMLDUnDTMzS81Jw8zMUvv/F/69u3+tq68AAAAASUVORK5CYII=\n"},"metadata":{"needs_background":"light"}},{"output_type":"display_data","data":{"text/plain":["
"],"image/png":"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\n"},"metadata":{"needs_background":"light"}},{"output_type":"display_data","data":{"text/plain":["
"],"image/png":"iVBORw0KGgoAAAANSUhEUgAAAY0AAAEGCAYAAACZ0MnKAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4yLjIsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy+WH4yJAAAdR0lEQVR4nO3df7TcdX3n8eeLBERARZaIGBIu0HRryBLBFLBhUYysoXJMcQ0FKUXahapQRVssFPfg8ceWs6nYuig1tVS0/DiwQIEiGyFlDbBLIIEQkgASJJhghFT2AIoh3PDeP+Z7YXKZO/d7Z76/5/U4557c+c7MnfdMZub9/b7fn8/nq4jAzMwsjZ3KDsDMzOrDScPMzFJz0jAzs9ScNMzMLDUnDTMzS21y2QHkae+9946hoaGywzAzq5WVK1f+W0RM6XRdo5PG0NAQK1asKDsMM7NakfTkWNe5PGVmZqk5aZiZWWpOGmZmlpqThpmZpeakYWZmqTlpmJlZao0ecms2CJY98DjL12zgiFlDHH3oQWWHYw3nIw2zGlv2wON84dJbuHbpg3zh0ltY9sDjZYdkDeekYVZjy9dsYOu2YQC2bhtm+ZoN5QZkjeekYVZjR8waYtddWlXmXXeZzBGzhsoNyBrPPQ2zGjv60IP4yic/5J6GFcZJw6zmjj70ICcLK4zLU2ZmlpqThpmZpebylJnZODwX5jVOGtZ4/sBbP0bmwmzdNszNd67lK5/80EC/j1yeskbz5Dfrl+fC7MhJwxrNH3jrl+fC7MjlKWu0I2YNcfOda9m6bdgfeOuJ58LsSBFRdgy5mTNnTvgc4eaehtnESFoZEXM6XecjDWs8T34zy457GmZmlpqThpmZpeakYWZmqTlpmJlZaqUlDUnTJN0haZ2ktZI+k2zfS9Jtkh5L/n1rsl2SviFpvaTVkg4rK3azbpY98DiLvr/UEwmtkco80hgG/iwiZgJHAmdJmgmcByyNiBnA0uQywHHAjOTnTODS4kM2684z0K3pSksaEbE5Iu5Pfn8BeBiYCiwALk9udjnwe8nvC4DvRcs9wJ6S9i04bLOuPAPdmq4SPQ1JQ8ChwHJgn4jYnFz1c2Cf5PepwMa2u21KtplVRlWXnHDJzLJS+uQ+SXsA1wHnRMTzkl69LiJC0oSmrEs6k1b5iunTp2cZqtm4qrjkhFdptSyVmjQk7UwrYVwREdcnm5+WtG9EbE7KT88k258CprXdfb9k2w4iYjGwGFrLiOQWvNkYqjYDvVPJrErxWb2UOXpKwD8AD0fExW1X3QSclvx+GnBj2/Y/TEZRHQk811bGMrMxVLVkZvVU2oKFko4C7gQeAl5JNv8lrb7GNcB04EngxIh4NkkylwDzgReB0yOi62qEXrDQrMWLNtpEdFuw0KvcmpnZDroljUqMnjIzs3ooffSUmVmvXHYrno80zKyWPPu+HE4aZiXqd9LdIE/a8+z7cjhpmJWk3z3lQd/T9lDicjhpmJWk3z3lQd/THpl9v3De7EbPcq/a0aSThllJ+t1T9p52K3Gce+q8RieMqh1NevSUWUn6XaeqiutcWbaquASMk4ZZifpdp6pq61xZto6YNcTNd65l67bhyhxNOmmYmVVUFY8mnTTMasyT25qvakeTThpmNZXneTKcjGwsHj1lViGdhleONeQyryG3VRyxY9XhpGFWEZ2+rLt9gec15HbQ539Ydy5PmVXEWF/WYw25zKtJWsURO1YdThpmFTHWl3W3L/A8mqRVHLFj1eGTMJlVSKcGtJvSVjSfuc8arw5frHWI0Qx85j5ruDqM9qlDjGZpOGlY7dVhtE8dYjRLw0nDaq8Oq73WIUazNNzTsEaoQ7+gDjGagRvhZYdhBfOXs1l/3Ai3geGGs1m+nDSsUdxwNsuXk4Y1ihvOVidVO/93GuP2NCQJOAU4MCK+JGk68PaIuLeIAPvhnsZgKrOn4X6KpdW+tP2uu0zOdGn7fnXraaRZe+pbwCvA+4EvAS8A1wG/nVmEZhkq66Q1eZ7fwpqniuf/TiNNeeqIiDgL2AoQEf8P2CXXqMxq6IY7HnQ/ZQx1LMPkra6l1DRHGi9LmgQEgKQptI48zCyx7IHHuXfdxlcv7zx5p9p8CeTNR2Cd1XU14TRHGt8AbgDeJumrwF3Af8viwSVdJukZSWvatu0l6TZJjyX/vjXZLknfkLRe0mpJh2URg1knE90zXr5mAy8Pb3/18uEz96/Nl0DePKJtbEcfehDnnjqvVu+VcZNGRFwBfB74K2Az8HsRcW1Gj/9dYP6obecBSyNiBrA0uQxwHDAj+TkTuDSjGMx20Mtcj9GlhhOOOSTvMGujrmUY62zc8lQyWupF4Ob2bRHx034fPCKWSRoatXkB8L7k98uB/w38RbL9e9Ea7nWPpD0l7RsRm/uNw6xdLw3KupYaiuDXplnS9DRuodXPELArcADwKHBwTjHt05YIfg7sk/w+FdjYdrtNybYdkoakM2kdiTB9+vScQrQ06jr8tNfTnWY9aquur18nZY1os+yNmzQi4j+0X056CZ/KLaIdHzskTWhxrIhYDCyG1jyNXAKzcdW5+VmFPeM6v37WbBOeER4R9wNH5BDLiKcl7QuQ/PtMsv0pYFrb7fZLtlkF1b35WXaDsu6vnzXXuElD0ufafv5c0pXAz3KM6SbgtOT304Ab27b/YTKK6kjgOfczqqspzc+y5hc05fWrK88rGVuaZUQubLs4DGwArouIrX0/uHQVrab33sDTwIXAPwPXANOBJ4ETI+LZZDmTS2iNtnoROD0iuq4R4mVEylVkTT6Px+plmYcs4/ByKOWo8vIeRfH5NBpgkD/E48nrQ77o+0u5dumDr15eOG825546r/A4itaU59Grif6/N1FP59OQdLOkm8b6yS9cG83niOgur/r/REtEde9DjJRkBn05FJcGu+s2euqvC4vCuqrrwmbjyeroqdMQ2Sz+9kRHUfU6VLcK2o8udp48iZ0n78TLw6/U7nlkoSqj56paWXB5qgaaWC7I+jm1f8iA0l6vKn/Yuxldkpl7yAG8Y8qba/c8mqAKn/e+lkaXNIPWEiIzaU3uAyAiDswsQuuqCns+WRurlNPpOab5Im6fPLbo+0tLOzKr6yS20UdJJxxzSC2fRxNUvbKQZp7GP9Ja52kYOAb4HvBPeQZlr1f2vIGsja4b77HbGzr2bbJYB2rQyiu9GNkxWThvdiOOZOus6u/fNENuV0bEuyU9NDI7fGRbIRH2oSnlqaZqP4JYvmZDxxErvY5kqWuZKG9+Xeqh7P+nfs/c95KknYDHJJ1Naxb2HlkGaINpdCmnUxO5KutANUETlyYp+8s1L1V+/46ZNCS9PSJ+DnwG2A34NPBlWiWq08a6n9mIiXygx+rbNLGfU5aq18onqj0J/vOPHuLwmfu7F1OAbkcaq5KTI10FPBYRm4DTiwnL6q6Xvdqx9q6qvNdVJ3UeEtxJexJ8efgV7l79BCsf2diII6gq69YInwosAo4CHpV0o6STJL2xmNCszuo60a3Jaw41rdnd3jAeUaf3Wl2NmTQiYntELImI02mtLnsZrRMhPSHpiqICtHrqdwRIGV/eWc+8r2ICatIovJEkOPeQIXaePAmo5mijpknTCCcitklaBzwMvBt4Z65RWe3104soq2GbZc2/iU3nKhopXTa1IV5FXZOGpGnAScDJwO60+hsfjohHCojNaq7XXkSaL+88viSyrPk3relcde57Fafb6Kn/Q6uvcQ1wRkSsLCwqG2jjfXn3uhc/XqLJcqRW05rOWfORQX2NOblP0tHAnVHjxak8ua++un2p9DLhr4z1fPzF2FkV1lay7nqa3BcRy/ILyZoiry/GbuWGXvbiyygXuWTSmUt39Tbhc4SbjSjrPB+9DB3Nej2fKo6Mqouqr61k3XlpdOtZ3c5wltVRkcsr/XPprtr6XRr9cx02PwesjIhV/QZn9VW3Zm9W5SKXV/rn0l19pZmnMSf5uTm5fDywGviEpGsj4r/nFZxV26CuC5Vnshy9B+49cquaNEujLwN+NyJ+mVzeA7gFmE/raGNm7lH2yOUpy0vaL/OJfOmPLnud/MHDuGrJ/S6DWeH6XRr9bcBLbZdfBvaJiF9LemmM+1gPvFdZH2nKKxOdTzK67LXs/sddBrPKSTN66gpguaQLJV0I3A1cKWl3YF2u0Q2QskYiWX4mumjj6FFFRx92kEcZWeWMe6QREV+WdCswN9n0iYgYqfmckltkA8bN1eaZaO+jU4/o4AP39dGnVUq3GeFvjojnJe3V6fqIeDbXyDJQp55GUcM4XQIrVh6vd97/h36PWLeeRrek8S8RcbykJ4D2GwmIiDgw+1CzVaekAcV8GXh+Qb3l/X/o94hB78uIHJ/8e0BegdmO8h67PlaN3XuV3VVpzzvvMqbLpDaeMRvhkg7r9lNkkJaN0Y3WPXZ7g5vv46jaAIW8l+DwEh82nm6N8K8l/+5Ka3Lfg7RKU4cAK4D35BuaZW10o9V7leOr2muU94TKQZ2wael1K08dAyDpeuCwiHgouTwL+GIh0XUgaT7wt8Ak4DsRcVFZsdTR6BJYnZYBKUMVl0rJu4zpJT6smzQzwtdGxMHjbSuCpEnAj4FjgU3AfcDJEdFxvkjdGuFlqFK9vqrKeI16ecxB/78c9OefpZ5GT7Xd+SrgV8A/JZtOAfaIiJMzjTIFSe8BvhgRH0wunw8QEX/V6fZOGuXxB7h3vYxgGvRRT3V//lX7vHRLGmlmhJ8OrAU+k/ysS7aVYSqwse3ypmTbqySdKWmFpBVbtmwpNDhrqVrzuG4mOpO81/s0SZ2ff90+L+MmjYjYGhFfj4gTkp+vR8TWIoLrRUQsjog5ETFnypQpZYczkOr8Aa6CXkYwtd9n58mT+NmW57j0ursG5kRRdR71VbfPS5rzacyl1fjev/32JU3uewqY1nZ5v2SbVUgVm8d1MpERTO1lja988kPccMdq7l33JHev3sDdqzcApFosse7qPOqrbp+XND2NR4DPAiuB7SPbI+IX+YbWMZbJtBrh82gli/uAj0XE2k63d0+jPFWr0TZRpzr+8jUbdjib4oiqn1Vx0FXt89Lv0ujPRcStGcfUk4gYlnQ2sITWkNvLxkoYVi4P28xfp7JG+17riDrsvQ66On1e0iSNOyQtAq6n7bwaEXF/blF1ERE/AH6Q9+NULfNb/WX9nupU1mgv0+yx2xv45Ysv+T1smUpTnrqjw+aIiPfnE1J2ei1P1X34nlVPXu+ponZuvBM1WPoqT43MDB8kVVs6wuovr/dUEWWNiZ6BcBANUlIdd8itpLdIunhk7oOkr0l6SxHBlaXOw/esmur8nqrbkNCi1W2eRb/S9DQuA9YAJyaXTwX+EfhIXkGVrc7D9+z1qrAXWOf3VN2GhBZt0CoTaXoaqyLiXeNtqyIPuTX3p7KRZeKtQhLPUhPfY/0Ouf21pKMi4q7kj80Ffp1lgGZ5GbS9wLxk1TtpYn+kzkeRvUiTND4JXJ70MQQ8C5yWa1RmGXFppVqamsTrNM+iX2lGT60CZkt6c3L5+dyjMsvIoO0FVp2TeP2l6Wn8O+BC4CgggLuAL5WxjMhEuadh1lKlPkKVYrHO+j2fxm3AMnY8n8b7IuIDmUaZAycNq5s8vlCb2Ki1fPV7Po19I+LLEfFE8vMVYJ9sQzSzvMb7ZzXPYtkDj5e61HrZj28taZLGDyWdJGmn5OdEWgsGmlVK3b9U8ppEl8XEwrInsJX9+PaaNEnjDOBKWosVbgOuBv5E0guS3BS3SmjCl0pes8ZHBgMsnDe759JU2bPCy358e02a0VNvKiIQs340YShnniO9+h0SWvaop7If316TphE+F1gVEb+S9AfAYcDfRMRPiwiwH26EV1NVmr2d4vDInrFN9LXJ+rX0/01x+h09tRqYDRwCfBf4DnBiRLw34zgz56RRPXmO5JnIl0qnOACPMsqIR2zVW7+jp4ajlVkWAJdExDcBl6ysJ3nVpie6F9opDtfNs+PXsrnSJI0XJJ1Pa3XbWyTtBOycb1jWVHk0e3tpgneKo87Ll1eNX8vmSlOeejvwMeC+iLhT0nRak/u+V0SA/XB5qpqyrk0v+v5Srl364KuXF86bzbmnzuspDtfNszPyWvq0s/XTV08j+QP7AzMi4nZJuwGTIuKFjOPMnJPGYHD9vLr8f1NPfS2NLukM4ExgL+AgYCrwd8D4u3JmBfCihNXVhKHQtqM0S6OfBRwOLAeIiMckvS3XqMwmaJCWpq4Tz69onjRJ46WI2CYJAEmTaa12a1Y69yCqzUeBzZMmafxI0l8Cb5R0LPAp4OZ8wzIbXxPPAtdEdT8K9I7JjtIMuf0LYAvwEPAnwA+AL+QZlFkangtgeWvCmmZZ65o0JE0CHo6Iv4+IhRHx0eR3l6esdE2eC1D3FXubwjsmr9e1PBUR2yU9Kml6HdaassHS1Hq5y27dFVkuciP/9dL0NN4KrJV0L/CrkY0R8eHcojJLqe718k48THVsRSfUpu6Y9CNN0vivuUdhZq/y3u3YykioTdwx6UfXpJH0NL4dEb9VUDxmA897t2NzQi1fmrWnbgT+NMuehqSFwBeBdwKHR8SKtuvOB/4Y2A58OiKWJNvnA38LTAK+ExEXjfc4XkbErHk8BDZ/fS0jQj49jTXAR4Bvjwp0JnAScDDwDuB2Sb+ZXP1N4FhgE3CfpJsiYl0fMZhZDblcVK5SehoR8TDAyCzzNguAqyPiJeAJSetpLWECsD4ifpLc7+rktk4a1gjee7a6GHdyX0T8CHiE1omX3kRr3saPcopnKrCx7fKmZNtY219H0pmSVkhasWXLlpzCNMuOJ5BZnYybNCSdCNwLLAROBJZL+miK+90uaU2HnwX9hz22iFgcEXMiYs6UKVPyfCizTHgCmdVJmvLUBcBvR8QzAJKmALcD/7PbnSLiAz3E8xQwre3yfsk2umw3qzWPCLI6SZM0dhpJGIlfkG7Nql7cBFwp6WJajfAZtI5yBMyQdACtZHESrbMJWkW4Jt87D7G1OkmTNP6XpCXAVcnl3wdu7edBJZ0A/A9gCq3zjq+KiA9GxFpJ19BqcA8DZ0XE9uQ+ZwNLaA25vSwi1vYTg2Wn11m6TjSv8Yggq4txk0ZEnCvpI8BRyabFEXFDPw+a3L/j34iIrwJf7bD9B7RW2LWK6WWWrtdXMqunMctMkn5D0lyAiLg+Ij4XEZ8Dtkjyp9te1ctqs27+Fsur5lpWuvUm/gZ4vsP255LrzIDXavIL581OfcTQ5GXNq8ZDei1L3cpT+0TEQ6M3RsRDkoZyi8hqaaI1+UFu/hbdy/GquZalbkljzy7XvTHrQGzwDGLzt4xejof0Wpa6ladWSDpj9EZJ/wVYmV9IZs1VRi+nl/Kh2Vi6HWmcA9wg6RReSxJzgF2AE/IOzKyJytrrH8SjOsvHmEkjIp4GfkfSMcCsZPMtEfGvhURm1kCD3MuxZhj3fBp15vNpNJsnB5rlo9v5NPJaDsQsVx5GalYOJw2rJU8OfE2vE/c84c964aRhteTJgS29HnH5SM165aRhteRhpC29HnH5SM165aRhtXX0oQdx7qnzBjZhQO9HXD5Ss1559JRZBsocydXrY3v0mY2l2+gpJw2zPrUvDbLrLpMHulxmzeAht2Y5cn/ABomThlmf3B+wQZLmdK9m1oWXBrFB4qRhlgEvCOjG+qBwecrM+ubJgoPDScPM+ubBANWS5xIxThpm1jcPBqiOvI/63NMws755MEB15H1OeCcNM8uEBwNUQ95nh3TSMBsgHuHUfHkf9XkZEbMB4eVOLC0vI2JmHuFkmXDSMBsQHuFkWXBPw2xAeISTZaGUIw1JiyQ9Imm1pBsk7dl23fmS1kt6VNIH27bPT7atl3ReGXGb1Z1PXGX9Kqs8dRswKyIOAX4MnA8gaSZwEnAwMB/4lqRJkiYB3wSOA2YCJye3NTOzApWSNCLihxExnFy8B9gv+X0BcHVEvBQRTwDrgcOTn/UR8ZOI2AZcndzWrNHyXA7CrBdVaIT/EXBr8vtUYGPbdZuSbWNtfx1JZ0paIWnFli1bcgjXrBheBNCqKLekIel2SWs6/Cxou80FwDBwRVaPGxGLI2JORMyZMmVKVn/WrHAeImtVlNvoqYj4QLfrJX0cOB6YF6/NMHwKmNZ2s/2SbXTZbtZIeS8HYdaLUobcSpoPfB54b0S82HbVTcCVki4G3gHMAO4FBMyQdACtZHES8LFiozYrlofIWhWVNU/jEuANwG2SAO6JiE9ExFpJ1wDraJWtzoqI7QCSzgaWAJOAyyJibTmhmxXHiwBa1XjtKTMz24HXnjIzs0w4aZiZWWpOGmZmlpqThpmZpeakYWZmqTlpmJlZaj6fhjWWz4dtlj0faVgjebE/s3w4aVgjebE/s3w4aVgj+XzYZvlwT8MayYv9meXDScMay4v9mWXP5SkzM0vNScPMzFJz0jAzs9ScNMzMLDU3ws0M8Ax6S8dHGmbmGfSWmpOGmXkGvaXmpGFmnkFvqbmnYWaeQW+pOWmYGeAZ9JaOy1NmZpaak4aZmaXmpGFmZqk5aZiZWWpOGmZmlpqThpmZpaaIKDuG3EjaAjxZdhyJvYF/KzuIEvn5D/bzB78GdXr++0fElE5XNDppVImkFRExp+w4yuLnP9jPH/waNOX5uzxlZmapOWmYmVlqThrFWVx2ACXz87dBfw0a8fzd0zAzs9R8pGFmZqk5aZiZWWpOGgWRtEjSI5JWS7pB0p5lx1Q0SQslrZX0iqTaDz1MS9J8SY9KWi/pvLLjKZqkyyQ9I2lN2bGUQdI0SXdIWpe8/z9Tdkz9cNIozm3ArIg4BPgxcH7J8ZRhDfARYFnZgRRF0iTgm8BxwEzgZEkzy42qcN8F5pcdRImGgT+LiJnAkcBZdX4POGkUJCJ+GBHDycV7gP3KjKcMEfFwRDxadhwFOxxYHxE/iYhtwNXAgpJjKlRELAOeLTuOskTE5oi4P/n9BeBhYGq5UfXOSaMcfwTcWnYQVoipwMa2y5uo8ReG9UfSEHAosLzcSHrn071mSNLtwNs7XHVBRNyY3OYCWoerVxQZW1HSvAZmg0jSHsB1wDkR8XzZ8fTKSSNDEfGBbtdL+jhwPDAvGjpBZrzXYAA9BUxru7xfss0GiKSdaSWMKyLi+rLj6YfLUwWRNB/4PPDhiHix7HisMPcBMyQdIGkX4CTgppJjsgJJEvAPwMMRcXHZ8fTLSaM4lwBvAm6TtErS35UdUNEknSBpE/Ae4BZJS8qOKW/J4IezgSW0GqDXRMTacqMqlqSrgP8L/HtJmyT9cdkxFWwucCrw/uSzv0rS75YdVK+8jIiZmaXmIw0zM0vNScPMzFJz0jAzs9ScNMzMLDUnDTMzS81Jw6yLZIXSJyTtlVx+a3J5qMNtPy3pYUkTnu0vaUjSx/qP2CxfThpmXUTERuBS4KJk00XA4ojY0OHmnwKOjYhTenioIWDCSSNZRdesME4aZuP7OnCkpHOAo4C/Hn2DZLLmgcCtkj4raffkPBL3SnpA0oLkdkOS7pR0f/LzO8mfuAj4j8nEr89K+rikS9r+/r9Iel/y+y8lfU3Sg8B7JP1B8jirJH3bicTy5KRhNo6IeBk4l1byOCe5PPo2nwB+BhwTEV8HLgD+NSIOB44BFknaHXiG1tHIYcDvA99I/sR5wJ0R8a7k/t3sDiyPiNnAL5K/Mzci3gVsB3o50jFLxQsWmqVzHLAZmEXrhFrj+U/AhyX9eXJ5V2A6rcRyiaSRL/jf7CGW7bQWvwOYB7wbuK+1xBFvpJWYzHLhpGE2juQL/lhaZ127S9LVEbF5vLsB/3n0SackfRF4GphN60h/6xj3H2bHSsCubb9vjYjtbY9zeUQM4pkgrQQuT5l1kaxQeimtstRPgUV06Gl0sAT40+T+SDo02f4WYHNEvEJrEbuR/sMLtBa0HLEBeJeknSRNo3UGwE6WAh+V9LbkcfaStH/a52c2UU4aZt2dAfw0IkZKUt8C3inpvePc78vAzsBqSWuTyyP3Py1pYv8W8Ktk+2pgu6QHJX0WuBt4AlhHq+9xf6cHiYh1wBeAH0paTat0tu/En6ZZOl7l1szMUvORhpmZpeakYWZmqTlpmJlZak4aZmaWmpOGmZml5qRhZmapOWmYmVlq/x8EXeP31GbMSQAAAABJRU5ErkJggg==\n"},"metadata":{"needs_background":"light"}},{"output_type":"display_data","data":{"text/plain":["
"],"image/png":"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\n"},"metadata":{"needs_background":"light"}}],"source":["import matplotlib.pyplot as plt\n","\n","plt.subplot(5, 1, 1)\n","plt.scatter(X[:, 0], y)\n","plt.subplot(5, 1, 2)\n","plt.scatter(X[:, 1], y, color = 'orange')\n","plt.subplot(5, 1, 3)\n","plt.scatter(X[:, 2], y, color = 'red')\n","plt.subplot(5, 1, 4)\n","plt.scatter(X[:, 3], y, color = 'green')\n","plt.subplot(5, 1, 5)\n","plt.scatter(X[:, 4], y, color = 'purple')\n","\n","plt.show()\n","\n","# Your code here"]},{"cell_type":"markdown","metadata":{"id":"r7vndSBAJceF"},"source":["You should be able to see the linear relations between `y` and the features in vector `X`."]},{"cell_type":"markdown","metadata":{"id":"b4I9Z3epNvBM"},"source":["### Gradient Descent Review \n","1. #### Cost function\n","Define the `cost function` to measure the difference between predictions and target outputs. Here, we are working with first degree polynomial, so derivatives are easy to calculate. ( Linear function `y = wx +b` ) \n","\n","$$Error = \\frac{1}{N}\\sum_{i=1}^N (y_i - \\overline{y}_i)^2 = \\frac{1}{N}\\sum_{i=1}^N (y_i - (x_iw+b))^2 $$ \n","\n"," where `N` is the number of samples \n"," \n","\n","\n","2. #### Compute the derivative\n","$$\\frac{\\delta Error}{\\delta w} = \\frac{2}{N}\\sum_{i=1}^N -x_i(y_i -(m x_i +b )) $$\n","$$\\frac{\\delta Error}{\\delta b} = \\frac{2}{N}\\sum_{i=1}^N -(y_i -(m x_i +b )) $$\n","3.

Update current parameters

\n","$$ w:= w- learning\\_rate \\cdot \\frac{\\delta Error}{\\delta w} $$ \n","$$ b:= b- learning\\_rate \\cdot \\frac{\\delta Error}{\\delta b} $$ \n","4.

Repeat until it fits good enough

\n"]},{"cell_type":"markdown","metadata":{"id":"kBtUcOVnJu-I"},"source":["### Model definition\n","\n","Complete the functions in the class below. Hints provided at appropriate places."]},{"cell_type":"code","execution_count":null,"metadata":{"id":"dGnFNPJx3I28"},"outputs":[],"source":["import numpy as np\n","\n","class LinearRegression:\n","\n"," # The __init__ is called when we make any object of our class. Here, you are to specify the default values for \n"," # Learning Rate, Number of is, Weights and Biases. It doesn't return anything.\n"," # Hint: Google what a `self pointer` is and figure out how it can be used here.\n"," def __init__(self, learning_rate=0.001, n_iters=1000, w=np.full(X.shape[1],0),b=0):\n"," # Your code here\n"," self.learning_rate = learning_rate\n"," self.n_iters = n_iters\n"," self.w = w\n"," self.b = b\n","\n","\n"," # The following function would be the heart of the model. This is where the training would happen. \n"," # You're supposed to iterate and keep on updating the weights and biases according to the steps of Gradient Descent.\n"," def fit(self, X, y):\n"," # Gradient Descent code goes here\n"," entries = X.shape[0]\n"," fcount = X.shape[1]\n","\n"," for i in range(self.n_iters) :\n"," # prediction\n"," pred = np.matmul(X,self.w)+self.b\n"," dw = np.full(fcount,0)\n"," for j in range(fcount) :\n"," # computing derivative\n"," dw[j] = np.sum(np.dot(X[:,j],y-pred)) * -2 / entries\n"," db = np.sum(y-pred) * -2 / entries\n"," # updating values\n"," self.w = self.w - self.learning_rate * dw\n"," self.b = self.b - self.learning_rate * db\n"," \n"," # This function will be called after our model has been trained and we are predicting on unseen data\n"," # What is our prediction? Just return that\n"," def predict(self, X):\n"," # Code goes here\n"," return np.matmul(X,self.w)+self.b"]},{"cell_type":"markdown","metadata":{"id":"EvyInkTKPn7W"},"source":["### Initializing, Training & Predictions"]},{"cell_type":"code","execution_count":null,"metadata":{"id":"nvItUpAkHTiv"},"outputs":[],"source":["# Now, we make an object of our custom class.\n","regressor = LinearRegression() # You may pass the custom parameters or let the default values take it ahead\n","\n","# Call the fit method on the object to train (pass appropriate part of dataset)\n","regressor.fit(X_train,y_train)\n","\n","# Now, let's see our what our model predicts\n","predictions = regressor.predict(X_test) # pass appropriate part of dataset"]},{"cell_type":"markdown","metadata":{"id":"tzK6cq8eRD4Q"},"source":["### Evaluate the model \n","\n","Return [Mean Squared Error](https://en.wikipedia.org/wiki/Mean_squared_error) & [R2 Score](https://www.ncl.ac.uk/webtemplate/ask-assets/external/maths-resources/statistics/regression-and-correlation/coefficient-of-determination-r-squared.html#:~:text=%C2%AFy) from the functions below."]},{"cell_type":"code","execution_count":null,"metadata":{"id":"WqkrvDzcRF5m","colab":{"base_uri":"https://localhost:8080/"},"executionInfo":{"status":"ok","timestamp":1654443031203,"user_tz":-330,"elapsed":421,"user":{"displayName":"Anurag Singh","userId":"10745855479500948138"}},"outputId":"05656d40-23de-45ca-8d46-9e80163d8333"},"outputs":[{"output_type":"stream","name":"stdout","text":["Mean Square Error is: 673.3064\n","Accuracy is: 0.9363\n"]}],"source":["def mean_squared_error(y_true, y_pred):\n"," # return the mean squared error\n"," return (float) (np.sum(np.dot(y_true-y_pred,y_true-y_pred))/y_true.shape[0])\n"," # pass # Uncomment this when you're done with this function\n","\n","\n","def r2_score(y_true, y_pred):\n"," # return the r2 score\n"," s1 = np.sum(np.dot(y_true-y_pred,y_true-y_pred))\n"," s2 = np.sum(np.dot(y_true-np.mean(y_true),y_true-np.mean(y_true)))\n"," return (float) (1 - s1/s2)\n"," # pass # Uncomment this when you're done with this function\n"," \n","\n","error = mean_squared_error(y_test,predictions) # Pass appropriate parts of dataset\n","print(\"Mean Square Error is: %.4f\" % error)\n","accuracy = r2_score(y_test,predictions) # Pass appropriate parts of dataset\n","print(\"Accuracy is: %.4f\" % accuracy)"]}],"metadata":{"colab":{"collapsed_sections":[],"name":"Assignment 1.ipynb","provenance":[{"file_id":"1lHTeY0ieI9TWcR88yhQV1EwsX7n5PSJq","timestamp":1654160954974},{"file_id":"1DG_xMAsAlibZtSw7T_p6dzV8CRejNM9o","timestamp":1653919622477}]},"kernelspec":{"display_name":"Python 3","name":"python3"},"language_info":{"name":"python"}},"nbformat":4,"nbformat_minor":0} \ No newline at end of file From 5adfaa6015f536df02ec6af17faa54b63817c410 Mon Sep 17 00:00:00 2001 From: Anurag Singh <106547853+anurags04@users.noreply.github.com> Date: Fri, 24 Jun 2022 23:13:21 +0530 Subject: [PATCH 2/6] Delete A1_200171.ipynb --- Assignment 1/A1_200171.ipynb | 1 - 1 file changed, 1 deletion(-) delete mode 100644 Assignment 1/A1_200171.ipynb diff --git a/Assignment 1/A1_200171.ipynb b/Assignment 1/A1_200171.ipynb deleted file mode 100644 index c3d4635..0000000 --- a/Assignment 1/A1_200171.ipynb +++ /dev/null @@ -1 +0,0 @@ -{"cells":[{"cell_type":"markdown","metadata":{"id":"RB2d1J1f1CF7"},"source":["### **Aim** \n","The motive of this assignment is to make predictions using **Linear Regression**. To make sure you truly understand how the underlying algorithm works, you are to implement it from scratch."]},{"cell_type":"markdown","metadata":{"id":"a_S80lf6H4Xv"},"source":["### Generating the dataset \n","Run the cell below to create the dataset. It further splits the available data into training and testing. Please do not edit this cell.\n"]},{"cell_type":"code","execution_count":3,"metadata":{"executionInfo":{"elapsed":1011,"status":"ok","timestamp":1655462968739,"user":{"displayName":"Anurag Singh","userId":"10745855479500948138"},"user_tz":-330},"id":"yX0zqXcHIQHP"},"outputs":[],"source":["from sklearn import datasets\n","from sklearn.model_selection import train_test_split\n","\n","# Generate the data\n","X, y = datasets.make_regression(n_samples=100, n_features=5, noise=20, random_state=4)\n","\n","# Split the data\n","X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=1234)"]},{"cell_type":"markdown","metadata":{"id":"Zj4rrRXGJBXy"},"source":["### Visualizing the data \n","Use `matplotlib` to visualize the given data."]},{"cell_type":"code","execution_count":7,"metadata":{"colab":{"base_uri":"https://localhost:8080/","height":1000},"executionInfo":{"elapsed":1694,"status":"ok","timestamp":1655463104820,"user":{"displayName":"Anurag Singh","userId":"10745855479500948138"},"user_tz":-330},"id":"zxfi8dkBJOUi","outputId":"ecad37fa-13f3-4ff7-9150-900504f8ec5b"},"outputs":[{"output_type":"display_data","data":{"text/plain":["
"],"image/png":"iVBORw0KGgoAAAANSUhEUgAAAY0AAAEGCAYAAACZ0MnKAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4yLjIsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy+WH4yJAAAdlklEQVR4nO3dfbRddX3n8feHhKCAVSkBaUgMdNLWSI3EhGKgowgZwsMklVGKYEUUomOCRttaEGdgiVrWUBElaE0piEseylQY0uEhBpopWAbIA48JIAyIBCOk0gI1knDxO3+cfeHk5txz9rln77Mfzue11l25Z59z7/nenXv3d+/f9/f7bkUEZmZmaexUdABmZlYdThpmZpaak4aZmaXmpGFmZqk5aZiZWWrjiw4gT3vuuWdMnTq16DDMzCpl7dq1/xIRE1s9V+ukMXXqVNasWVN0GGZmlSLpydGe8/CUmZml5qRhZmapOWmYmVlqThpmZpaak4aZmaXmpGFmZqk5aZhZT+5Yvpqlp1/CHctXFx2K9YGThpmN2R3LV/PVEy/k+otX8NUTL3TiGABOGmY2ZutW3sfWLdsA2LplG+tW3ldwRJY3Jw0zG7OZc2ewy64TANhl1wnMnDuj4Igsb7VuI2Jm+ZozfzZfuHIJ61bex8y5M5gzf3bRIVnOnDTMrCdz5s92shggHp4yM7PUnDTMzCw1Jw0bSF5bYDY2Tho2cLy2oFhO2NXmpGEDx2sLiuOEXX1OGjZwvLagOE7Y1ecptzZwvLagODPnzuDmy1axdcs2J+yKUkQUHUNuZs2aFb5HuFm53LF8tRN2yUlaGxGzWj3nKw0z6ysvBqw21zTMzCw1Jw0zM0vNScPMzFJz0jAzs9QKSxqSJktaJWmDpPWSPpNs30PSSkmPJv++OdkuSd+U9Jik+yXNLCp2M7N+KOPq+SKvNIaAP42I6cDBwCJJ04EzgFsjYhpwa/IY4ChgWvKxEPh2/0M2M+uPsq6eLyxpRMSmiFiXfP4i8BAwCVgAXJ687HLgj5LPFwDfi4Y7gTdJ2qfPYZuZ9UVZV8+XoqYhaSpwIHAXsHdEbEqe+jmwd/L5JOCppi/bmGwz60kZhwDMytrupvDFfZJ2B34ALImIFyS9+lxEhKSulqxLWkhj+IopU6ZkGarV0PAQwNYt27j5slV84colXnhmpVDWdjeFJg1JO9NIGFdExLXJ5mck7RMRm5Lhp2eT7U8Dk5u+fN9k23YiYhmwDBptRHIL3mqh1RBAWf44zcq4er7I2VMC/hZ4KCIuaHpqOXBy8vnJwPVN2z+SzKI6GHi+aRjLbEzKOgRgVlaFNSyUdChwO/AA8Otk8xdo1DWuAaYATwLHR8RzSZJZCswDtgCnRETbboRuWGhpuIGe2fbaNSx0l1szM9tOu6RRitlTZmZWDU4aZhnwtF0bFE4aZj0q68pdszw4aVjh0pyll/lMvqwrd83y4KRhhUpzll72M3lP27VB4qRhhUpzll72M/nhlbsLFh1ZmhXlZb4ys2pz0rBCpTlLr8KZ/Jz5s1l80amlSRhlvjKzaiu895QNtjT9dcrag6es3BrF8uSkYYVL01+njD14ymrm3BncfNkqtm7ZVtorM6suJw2zmvGVmeXJScOshnxlNtjy7KfmQrhZgTzLybKW90QIJw2zgvRjllOZklKZYqmzvKeoO2mYFSTvP+4yTb0tUyx1l/cUdScNs4Lk/cddpkWRZYql7vJebOpCuFlB8p7lVKapt2WKZRDkORHCN2Eyq7Ey3ZWwTLFYe75zn1kFpDmo+sBr/eA795mVXB26/dpgcNIwK4E6dPu1weCkYVYCden2a/XnmoZZSbimYWXhQriZWZ9VOcG7EG5m1kd1nrTgpGFmlrE6T1pw0jCz7bixYO/qPGmhY01DkoCTgP0j4kuSpgBviYi7+xFgL1zTqI8qjw9XyfCwynC7jzx6Fw2KKv/OtqtppOk99S3g18D7gC8BLwI/AKq1F6yymg9kN1+2ygeyHPn+4tmp642w0gxP/UFELAJeAoiIfwUm5BqVWZOsxoe7HXYZxGGaOg+rWDbSXGm8LGkcEACSJtK48jDriyw6pHZ7tTKoVze+v7h1kiZpfBO4DthL0leADwBfzOLNJV0KHAs8GxEHJNv2AP4OmAr8BDg+Iv41qa18Azga2AJ8NCLWZRGHlVsWB7Juh10GbZhm5Ph7nX9W603H4amIuAL4PPCXwCbgjyLif2b0/t8F5o3YdgZwa0RMA25NHgMcBUxLPhYC384oBquAOfNns/iiU8d8MOt22GWQhmnqvKbAstfxSiOZLbUF+IfmbRHx017fPCJukzR1xOYFwHuTzy8H/g/wF8n270Vjutedkt4kaZ+I2NRrHFZ/3V6tDNIwzaBdVVlv0gxP3UCjniHgdcB+wCPA23OKae+mRPBzYO/k80nAU02v25hs2y5pSFpI40qEKVOm5BSiVVG3wy7dvr6qUyxb1Yyq+rNY/jomjYj4/ebHkmYCn8otou3fOyR11RwrIpYBy6CxTiOXwMxGqHLhfORVFVDZn8Xy1/WK8KT4/Ac5xDLsGUn7ACT/PptsfxqY3PS6fZNtZoWretuI5ppR1X8Wy1fHpCHpc00ffybpSuBnOca0HDg5+fxk4Pqm7R9Rw8HA865nWL+NtnYj68J5kWtEBmkSgHUvTRuRs5seDtGYBvuDiHip5zeXrqJR9N4TeAY4G/hfwDXAFOBJGlNun0um3C6lMdtqC3BKRLTtEeI2IpalTi02sqoDZNHKo5tYWr22TjWNOv0s/eL7aZhlYOnpl3D9xStefbxg0ZEsvujUQt6n3YGwm6RT915Tdf/58jKm+2lI+gdJy0f7yC9cs3Lq17BNp/fptK4iTU1iePjrhmUra12/cH0me+1mT/1V36Iwq4A582dz3JJjuHP5Gg6ePyu3M9ZOa0Q6ravo1Hal+ex7513GM37CeIa2DTF+wng2PfEsdyxfXZuz8Sxa0IxmUIe9PDxlllJZhjrSxNHugDZy+Ougow8E4J5bH+DlrUO1G8bJ4+Belt+FvPTUGl3SNBotRKbTWNwHQETsn1mEZhVQlpXTaVart1uY2Hz2vfMurx0CXt46BNRvVXg3izTTJpiy/C4UIc06jcto9HkaAg4Dvgd8P8+gzMqoTFNRe+nFNZx0Djr6QCLg7hvvYd0tD7yaQIr+2YrSTQ+uMv0u9FuaNiKvj4hbJSkingTOkbQW+O85x2Y1VsXx4Dr1oxpexDe0rXF1MbRtiIOOPpB99tur8j/bWHVz9VCn34VupUkaWyXtBDwqaTGNVdi75xuW1VnVW270M9Y8k+vIIvExC+dW5v8hD90WzQe1hfyoSUPSWyLi58BngF2BTwPn0hiiOnm0r7NqKPJMf5DHg7uRd3JNc7ZcxSvCsRrkq4dutLvSuFfSg8BVwKMRsRE4pT9hWZ6KPtPPcxpknfQjubY7Wy7696QIg3r10I12hfBJwPnAocAjkq6XdIKk1/cnNMtL0Quehs/oFiw6ciAORGM1c+4Mxk9onNeNnzC+78m16N8TK6dRk0ZEvBIRKyLiFBrdZS+lcSOkJyRd0a8ALXtlmPnR6534BoW0/b+djGx02EvjwzL8nlj5pCmEExHbJG0AHgLeBbwt16gsVx67rYZ1K+97de3Ey1uHOg5PjRxOOm7JMVx74Q1jHl7y74m10jZpSJoMnAB8CNiNRn1jfkQ83IfYLEceuy2/bms/I4eT7ly+pueaiH9PRjdIkwSatZs9dQeNusY1wGkRsbZvUZm1MGh/pN2e6Y9MMgfPn8XPHn8mVdIZtH3bq0GcJDBs1N5Tkv4jcHtUuDmVe0/VR917/WRl5ME/TTLwvu1ev9rkF2VMvaci4rb8QrJB0+uZrNd2pDNyOCnN8JL3bfcGedp41/cIN+tWNz19RjPaTJ4ib4taF54l1b1Bnjbu1uiWu6wu5VsNvXhYJRuuaVizXlujf67F5ueBtRFxb6/BWf1ldSk/cqjFwyrZ8SwpSyvN8NQs4JM0ZlJNAj4BzAP+RtLnc4zNaiKLS/lWw1Bph1U8hGWWnY7DU5JuA46OiH9PHu8O3EAjcayNiOm5RzlGHp6qh3bDUJ2GVYoawvJwj1VZu+GpNFcaewFbmx6/DOwdEb8asd0sF+16IHVqR1JE/6QsCv/95Csx60aapHEFcJeksyWdDfwzcKWk3YANuUZnRm+ze4qYGVSlRn9VS3BWvI6F8Ig4V9JNwCHJpk9GxPCYz0m5RWaW6KUHUhH9k6o0h9+TCaxb7VaE/0ZEvCBpj1bPR8RzuUaWAdc0rCh3LF/N98/9e57f/AKHf/gP+diXT8zlPXpNhp62bK2MdcrtlcCxwFqgObMoebx/ZhGa1czDdz/Ko2sfB+Cqr14HkGniyKr3kTvZWrfa3U/j2OTf/SJi/6aP/SLCCSNnLk6WW6f/nzuXr2n7uFdZ1k18bxPrxqhJQ9LMdh/9DHLQuDhZbmn+fw6eP6vt41659YcVpd3w1NeSf19HY4HffTSGpt4BrAHenW9og8vFyXJL8/8zPBR15/I1HDx/VuY1DQ8rWVHaDU8dFhGHAZuAmRExKyLeBRwIPN2vAEeSNE/SI5Iek3RGUXHkyWeR5Zb2/+djXz6RZfdfkEsRHDysZMVIc7vX342IB4YfRMSDkgq53aukccDFwFxgI7Ba0vKIqNV6EZ9Fltuc+bM5bskxr15FZP3/M5ZZUV6Bbv2Spo3IVcAvge8nm04Cdo+ID+UcW6tY3g2cExFHJo/PBIiIv2z1ek+5tTw0z1waP2E8M4/4fY5ZODeTg3WnKbCtkoOnzVrWem0jcgqwHvhM8rEh2VaEScBTTY83JtteJWmhpDWS1mzevLmvwdlgaK5pDG0b4u4b78lswkK7WVGjFeCrtALdqq9j0oiIlyLi6xHx/uTj6xHxUj+CG4uIWJbUX2ZNnDix6HCshpprGsOyOli3q5eMlhyKroF5enhrdd0vae6ncQhwDvDW5tcXtFbjaWBy0+N9KbAoP2g8bt4wXHO6YdlK7rn1AV7eOpTZwbpdPWu09iRF1sCyWmRYN3XeL2lqGg8Dn6WxMvyV4e0R8Yt8Q2sZy3jgx8DhNJLFauDEiFjf6vWuaWTH4+at9TuRli1xZ3VXxrqp+n7p6c59wPMRcVPGMY1JRAxJWgysAMYBl46WMCxbXjvSWr/veFe2O+xVqTljP9V5v6RJGqsknQ9cS9P9MyJiXW5RtRERNwI3FvHeg6xKfwRpbsxUprP1KvP08NbqvF/SDE+tarE5IuJ9+YSUHQ9PZauMB9uRMaWZsuphNrP2ehqeSlaFm5VuaKRVsbHTMFrew2xlTKxmWeo45VbSGyVdMLz2QdLXJL2xH8GZtdMqAXSafprn9FQ3mrRBkGZx36XAi8DxyccLwGV5BmWWRqsEMDyWvGDRkS2Hnjo934t+L7Kr6zoAK7c0NY17I+KdnbaVkWsa9Vem4aB29ZKs43RtxvLU65TbX0k6NCJ+lHyzQ4BfZRmg2ViVqc4y2oyZPBZ6eQq0FSVN0vivwOVJHUPAc8DJuUZlVlGtklgeB/gqTYG2ekkze+peYIak30gev5B7VGY1kscBvs7rAKzc0tQ0fhM4GzgUCOBHwJeKaCPSLdc0LC/d1ijKVHsx66RdTSNN0lgJ3Mb299N4b0QckWmUOXDSMHAR2qxbvd5PY5+IODcinkg+vgzsnW2IVmb9mNqZ13vksXbC96+wQZYmafxQ0gmSdko+jqfRMNAGQD8WrGX5HiOTTx4H+KLvX2FWpDRJ4zTgShrNCrcBVwOfkPSiJBfFa64fZ9VZvUer5JPHAT7PBYJmZZdm9tQb+hGIlVM/pnZm9R6tks/ii07NZZZRmdaHmPVTmkL4IcC9EfFLSR8GZgIXRsRP+xFgL6pWCC/rDJt+xJXFe7QqUAOpv29Z939VeP/VR6+zp+4HZgDvAL4LXAIcHxHvyTjOzFUpaXhGTjaaD1xA6n3q/d8b77966XX21FA0MssCYGlEXAx4yCpjnpGTjTnzZ7P4olOZM392V/s07/1f9+aC/v0dHGmSxouSzgT+BLhB0k7AzvmGNXg8Iyd73exTt0zvjX9/B0ea4am3ACcCqyPidklTaCzu+14/AuxFlYanwGPC3Ui7r7rZp3nt/6WnX8L1F782S33BoiNZfNGpmX3/svDvb330VNNIvsFbgWkRcYukXYFxEfFixnFmrmpJw9Kp2vh51eI166k1uqTTgIXAHsBvA5OAvwYOzzJIs7Sq1hbczQWtTtK0Rl8EHATcBRARj0raK9eozNqoYltwr+uwukiTNLZGxDZJAEgaT6PbrfXA479j5zN3s+KkKYT/D+DfgI8ApwOfAjZExFn5h9ebstY0PMZtafjEworS6zqNvwA2Aw8AnwBuBL6YXXiDx3ParZNBmKZr1dQ2aUgaBzwUEX8TER+MiA8kn3t4qgee0z44xrqozycWVlZtk0ZEvAI8kqzNsIxUqUtq3Vcy56mXqwWfWFhZpSmEvxlYL+lu4JfDGyNifm5RDYAqzKZprr3cfNmq0ie4sullarCL/VZWaZLGf8s9Ciulqq2HKJtepwZX4cTCBk/bpJHUNL4TEb/Xp3isRKq4HqJMfLVgdZRmyu31wOlZ3j9D0geBc4C3AQdFxJqm584EPg68Anw6IlYk2+cB3wDGAZdExHmd3qesU26rxNM+zQZPT21EyKem8SBwHPCdEYFOB04A3g78FnCLpN9Jnr4YmAtsBFZLWh4RG3qIwVLwEImZNSukphERDwEMrzJvsgC4OiK2Ak9IeoxGCxOAxyLi8eTrrk5e66RhVmK+Uq2fjov7IuKfgIdp3HjpDTTWbfxTTvFMAp5qerwx2Tba9h1IWihpjaQ1mzdvzilMM+vECxTrqWPSkHQ8cDfwQeB44C5JH0jxdbdIerDFx4Lewx5dRCyLiFkRMWvixIl5vpWZteEFivWUZnjqLGB2RDwLIGkicAvw9+2+KCKOGEM8TwOTmx7vm2yjzXYzKyHPvqunNEljp+GEkfgF6XpWjcVy4EpJF9AohE+jcZUjYJqk/WgkixNo3E3QCuYxaxuNpxzXU5qkcbOkFcBVyeM/Bm7q5U0lvR+4CJhI477j90bEkRGxXtI1NArcQ8CipJUJkhYDK2hMub00Itb3EkPeBuFg6hXj1oln39VPx6QREX8u6Tjg0GTTsoi4rpc3Tb6+5feIiK8AX2mx/UYaHXZLb1AOpl4xbjZ4Rh1mkvQfJB0CEBHXRsTnIuJzwGZJv923CCuozAXALBsQuqme2eBpV5u4EHihxfbnk+dsFGU9mGY9BbJK3XrNLBvthqf2jogHRm6MiAckTc0tohooawGw2+GkNHUZj1mbDZZ2SeNNbZ57fdaB1E0ZD6bdTIEclLqMmXWn3fDUGkmnjdwo6VRgbX4hWV66GU4qc13GzIrT7kpjCXCdpJN4LUnMAiYA7887MMtH2isgL8wys1bStEY/DDggebg+Iv4x96gy4tbovRmEtSZmtqOeWqNHxCpgVeZRWak5YZhZK3m1A7EKc3dSMxtNmjYiNiCGry42PfGsV3p3yVdmNiicNAzYfortzruMZ/yE8QxtG3IRPAVPT7ZB4qRhwPZTbF/eOsRBRx/IPvvt5TPnFNyDywaJaxoG7Nj65JiFc1l80ak++KVQ1rYxZnnoOOW2yjzltjselx+7sew7728rq3ZTbp00zArQXAfZZdcJroNYqbRLGh6eMiuA27RYVTlpmBXAdRCrKs+eMitAWdvnm3XipGGVVfVCchnb55t14uEpqyS3OjErhpOGVVKeheQs76NuVjdOGlZJeRWSfQVj1p5rGlZJeRWS3RLErD0nDausPArJvmOhWXtOGlaIss588lRYs/bcRsT6zi00zMrNbUSsVNxCw6y6nDSs79xCw6y6XNOwvnPdwKy6Ckkaks4H/jOwDfh/wCkR8W/Jc2cCHwdeAT4dESuS7fOAbwDjgEsi4rwiYrdsuIWGWTUVNTy1EjggIt4B/Bg4E0DSdOAE4O3APOBbksZJGgdcDBwFTAc+lLzWzMz6qJCkERE/jIih5OGdwL7J5wuAqyNia0Q8ATwGHJR8PBYRj0fENuDq5LW5cSsJM7MdlaEQ/jHgpuTzScBTTc9tTLaNtn0HkhZKWiNpzebNm8cUkFtJmJm1llvSkHSLpAdbfCxoes1ZwBBwRVbvGxHLImJWRMyaOHHimL6Hp4SambWWWyE8Io5o97ykjwLHAofHaysMnwYmN71s32QbbbZnzq0kzMxaK2r21Dzg88B7ImJL01PLgSslXQD8FjANuBsQME3SfjSSxQnAiXnF5ymhZmatFbVOYymwC7BSEsCdEfHJiFgv6RpgA41hq0UR8QqApMXAChpTbi+NiPV5BugpoWZmO3LvKTMz2457T5mZWSacNMzMLDUnDTMzS81Jw8zMUnPSMDOz1Jw0zMwsNSeNAeamjGbWLSeNAeWmjGY2Fk4aA8pNGc1sLJw0BpTv021mY+F7hA8oN2U0s7Fw0hhgbspoZt3y8JSZmaXmpGFmZqk5aZiZWWpOGmZmlpqTRoa8wtrM6s5JIyNeYW1mg8BJIyNeYW1mg8BJIyNeYW1mg8CL+zLiFdZmNgicNDLkFdZmVncenjIzs9ScNMzMLDUnDTMzS81Jw8zMUnPSMDOz1Jw0zMwsNUVE0THkRtJm4MmUL98T+Jccw6ki75MdeZ/syPtkR1XfJ2+NiImtnqh10uiGpDURMavoOMrE+2RH3ic78j7ZUZ33iYenzMwsNScNMzNLzUnjNcuKDqCEvE925H2yI++THdV2n7imYWZmqflKw8zMUnPSMDOz1Jw0mkg6X9LDku6XdJ2kNxUdU9EkfVDSekm/llTLKYRpSJon6RFJj0k6o+h4ykDSpZKelfRg0bGUhaTJklZJ2pD83Xym6Jiy5qSxvZXAARHxDuDHwJkFx1MGDwLHAbcVHUhRJI0DLgaOAqYDH5I0vdioSuG7wLyigyiZIeBPI2I6cDCwqG6/K04aTSLihxExlDy8E9i3yHjKICIeiohHio6jYAcBj0XE4xGxDbgaWFBwTIWLiNuA54qOo0wiYlNErEs+fxF4CJhUbFTZctIY3ceAm4oOwkphEvBU0+ON1OxAYNmTNBU4ELir2EiyNXC3e5V0C/CWFk+dFRHXJ685i8Zl5hX9jK0oafaJmaUnaXfgB8CSiHih6HiyNHBJIyKOaPe8pI8CxwKHx4AsYum0T4yngclNj/dNtpntQNLONBLGFRFxbdHxZM3DU00kzQM+D8yPiC1Fx2OlsRqYJmk/SROAE4DlBcdkJSRJwN8CD0XEBUXHkwcnje0tBd4ArJR0r6S/Ljqgokl6v6SNwLuBGyStKDqmfksmRywGVtAobF4TEeuLjap4kq4C/i/wu5I2Svp40TGVwCHAnwDvS44h90o6uuigsuQ2ImZmlpqvNMzMLDUnDTMzS81Jw8zMUnPSMDOz1Jw0zMwsNScNszaSrqVPSNojefzm5PHUFq/9tKSHJHXdSUDSVEkn9h6xWb6cNMzaiIingG8D5yWbzgOWRcRPWrz8U8DciDhpDG81Feg6aSQdeM36xknDrLOvAwdLWgIcCvzVyBckC0H3B26S9FlJuyX3m7hb0j2SFiSvmyrpdknrko85ybc4D/jDZDHYZyV9VNLSpu//vyW9N/n83yV9TdJ9wLslfTh5n3slfceJxPLkpGHWQUS8DPw5jeSxJHk88jWfBH4GHBYRXwfOAv4xIg4CDgPOl7Qb8CyNq5GZwB8D30y+xRnA7RHxzuTr29kNuCsiZgC/SL7PIRHxTuAVYCxXOmapDFzDQrMxOgrYBBxA42ZdnfwnYL6kP0sevw6YQiOxLJU0fID/nTHE8gqNhngAhwPvAlY32h7xehqJySwXThpmHSQH+Lk07sT2I0lXR8SmTl8G/JeRN7CSdA7wDDCDxpX+S6N8/RDbjwS8runzlyLilab3uTwifJdJ6wsPT5m1kXQt/TaNYamfAufToqbRwgrg9OTrkXRgsv2NwKaI+DWNxnbD9YcXaTTLHPYT4J2SdpI0mcbdA1u5FfiApL2S99lD0lvT/nxm3XLSMGvvNOCnETE8JPUt4G2S3tPh684Fdgbul7Q+eTz89ScnRezfA36ZbL8feEXSfZI+C/wz8ASwgUbdY12rN4mIDcAXgR9Kup/G0Nk+3f+YZum4y62ZmaXmKw0zM0vNScPMzFJz0jAzs9ScNMzMLDUnDTMzS81Jw8zMUnPSMDOz1P4/3uerYcKCSF0AAAAASUVORK5CYII=\n"},"metadata":{"needs_background":"light"}},{"output_type":"display_data","data":{"text/plain":["
"],"image/png":"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\n"},"metadata":{"needs_background":"light"}},{"output_type":"display_data","data":{"text/plain":["
"],"image/png":"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\n"},"metadata":{"needs_background":"light"}},{"output_type":"display_data","data":{"text/plain":["
"],"image/png":"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\n"},"metadata":{"needs_background":"light"}},{"output_type":"display_data","data":{"text/plain":["
"],"image/png":"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\n"},"metadata":{"needs_background":"light"}}],"source":["import matplotlib.pyplot as plt\n","\n","plt.subplot(5, 1, 1)\n","plt.scatter(X[:, 0], y)\n","plt.subplot(5, 1, 2)\n","plt.scatter(X[:, 1], y, color = 'orange')\n","plt.subplot(5, 1, 3)\n","plt.scatter(X[:, 2], y, color = 'red')\n","plt.subplot(5, 1, 4)\n","plt.scatter(X[:, 3], y, color = 'green')\n","plt.subplot(5, 1, 5)\n","plt.scatter(X[:, 4], y, color = 'purple')\n","\n","plt.show()\n","\n","# Your code here"]},{"cell_type":"markdown","metadata":{"id":"r7vndSBAJceF"},"source":["You should be able to see the linear relations between `y` and the features in vector `X`."]},{"cell_type":"markdown","metadata":{"id":"b4I9Z3epNvBM"},"source":["### Gradient Descent Review \n","1. #### Cost function\n","Define the `cost function` to measure the difference between predictions and target outputs. Here, we are working with first degree polynomial, so derivatives are easy to calculate. ( Linear function `y = wx +b` ) \n","\n","$$Error = \\frac{1}{N}\\sum_{i=1}^N (y_i - \\overline{y}_i)^2 = \\frac{1}{N}\\sum_{i=1}^N (y_i - (x_iw+b))^2 $$ \n","\n"," where `N` is the number of samples \n"," \n","\n","\n","2. #### Compute the derivative\n","$$\\frac{\\delta Error}{\\delta w} = \\frac{2}{N}\\sum_{i=1}^N -x_i(y_i -(m x_i +b )) $$\n","$$\\frac{\\delta Error}{\\delta b} = \\frac{2}{N}\\sum_{i=1}^N -(y_i -(m x_i +b )) $$\n","3.

Update current parameters

\n","$$ w:= w- learning\\_rate \\cdot \\frac{\\delta Error}{\\delta w} $$ \n","$$ b:= b- learning\\_rate \\cdot \\frac{\\delta Error}{\\delta b} $$ \n","4.

Repeat until it fits good enough

\n"]},{"cell_type":"markdown","metadata":{"id":"kBtUcOVnJu-I"},"source":["### Model definition\n","\n","Complete the functions in the class below. Hints provided at appropriate places."]},{"cell_type":"code","execution_count":null,"metadata":{"id":"dGnFNPJx3I28"},"outputs":[],"source":["import numpy as np\n","\n","class LinearRegression:\n","\n"," # The __init__ is called when we make any object of our class. Here, you are to specify the default values for \n"," # Learning Rate, Number of is, Weights and Biases. It doesn't return anything.\n"," # Hint: Google what a `self pointer` is and figure out how it can be used here.\n"," def __init__(self, learning_rate=0.001, n_iters=1000, w=np.full(X.shape[1],0),b=0):\n"," # Your code here\n"," self.learning_rate = learning_rate\n"," self.n_iters = n_iters\n"," self.w = w\n"," self.b = b\n","\n","\n"," # The following function would be the heart of the model. This is where the training would happen. \n"," # You're supposed to iterate and keep on updating the weights and biases according to the steps of Gradient Descent.\n"," def fit(self, X, y):\n"," # Gradient Descent code goes here\n"," entries = X.shape[0]\n"," fcount = X.shape[1]\n","\n"," for i in range(self.n_iters) :\n"," # prediction\n"," pred = np.matmul(X,self.w)+self.b\n"," dw = np.full(fcount,0)\n"," for j in range(fcount) :\n"," # computing derivative\n"," dw[j] = np.sum(np.dot(X[:,j],y-pred)) * -2 / entries\n"," db = np.sum(y-pred) * -2 / entries\n"," # updating values\n"," self.w = self.w - self.learning_rate * dw\n"," self.b = self.b - self.learning_rate * db\n"," \n"," # This function will be called after our model has been trained and we are predicting on unseen data\n"," # What is our prediction? Just return that\n"," def predict(self, X):\n"," # Code goes here\n"," return np.matmul(X,self.w)+self.b"]},{"cell_type":"markdown","metadata":{"id":"EvyInkTKPn7W"},"source":["### Initializing, Training & Predictions"]},{"cell_type":"code","execution_count":null,"metadata":{"id":"nvItUpAkHTiv"},"outputs":[],"source":["# Now, we make an object of our custom class.\n","regressor = LinearRegression() # You may pass the custom parameters or let the default values take it ahead\n","\n","# Call the fit method on the object to train (pass appropriate part of dataset)\n","regressor.fit(X_train,y_train)\n","\n","# Now, let's see our what our model predicts\n","predictions = regressor.predict(X_test) # pass appropriate part of dataset"]},{"cell_type":"markdown","metadata":{"id":"tzK6cq8eRD4Q"},"source":["### Evaluate the model \n","\n","Return [Mean Squared Error](https://en.wikipedia.org/wiki/Mean_squared_error) & [R2 Score](https://www.ncl.ac.uk/webtemplate/ask-assets/external/maths-resources/statistics/regression-and-correlation/coefficient-of-determination-r-squared.html#:~:text=%C2%AFy) from the functions below."]},{"cell_type":"code","execution_count":null,"metadata":{"id":"WqkrvDzcRF5m","colab":{"base_uri":"https://localhost:8080/"},"executionInfo":{"status":"ok","timestamp":1654443031203,"user_tz":-330,"elapsed":421,"user":{"displayName":"Anurag Singh","userId":"10745855479500948138"}},"outputId":"05656d40-23de-45ca-8d46-9e80163d8333"},"outputs":[{"output_type":"stream","name":"stdout","text":["Mean Square Error is: 673.3064\n","Accuracy is: 0.9363\n"]}],"source":["def mean_squared_error(y_true, y_pred):\n"," # return the mean squared error\n"," return (float) (np.sum(np.dot(y_true-y_pred,y_true-y_pred))/y_true.shape[0])\n"," # pass # Uncomment this when you're done with this function\n","\n","\n","def r2_score(y_true, y_pred):\n"," # return the r2 score\n"," s1 = np.sum(np.dot(y_true-y_pred,y_true-y_pred))\n"," s2 = np.sum(np.dot(y_true-np.mean(y_true),y_true-np.mean(y_true)))\n"," return (float) (1 - s1/s2)\n"," # pass # Uncomment this when you're done with this function\n"," \n","\n","error = mean_squared_error(y_test,predictions) # Pass appropriate parts of dataset\n","print(\"Mean Square Error is: %.4f\" % error)\n","accuracy = r2_score(y_test,predictions) # Pass appropriate parts of dataset\n","print(\"Accuracy is: %.4f\" % accuracy)"]}],"metadata":{"colab":{"collapsed_sections":[],"name":"Assignment 1.ipynb","provenance":[{"file_id":"1lHTeY0ieI9TWcR88yhQV1EwsX7n5PSJq","timestamp":1654160954974},{"file_id":"1DG_xMAsAlibZtSw7T_p6dzV8CRejNM9o","timestamp":1653919622477}]},"kernelspec":{"display_name":"Python 3","name":"python3"},"language_info":{"name":"python"}},"nbformat":4,"nbformat_minor":0} \ No newline at end of file From 023f6188673beb1a74257bb000fa75f1686e784c Mon Sep 17 00:00:00 2001 From: Anurag Singh <106547853+anurags04@users.noreply.github.com> Date: Fri, 24 Jun 2022 23:14:39 +0530 Subject: [PATCH 3/6] 200171 --- Assignment 1/A1_200171.ipynb | 1 + 1 file changed, 1 insertion(+) create mode 100644 Assignment 1/A1_200171.ipynb diff --git a/Assignment 1/A1_200171.ipynb b/Assignment 1/A1_200171.ipynb new file mode 100644 index 0000000..c3d4635 --- /dev/null +++ b/Assignment 1/A1_200171.ipynb @@ -0,0 +1 @@ +{"cells":[{"cell_type":"markdown","metadata":{"id":"RB2d1J1f1CF7"},"source":["### **Aim** \n","The motive of this assignment is to make predictions using **Linear Regression**. To make sure you truly understand how the underlying algorithm works, you are to implement it from scratch."]},{"cell_type":"markdown","metadata":{"id":"a_S80lf6H4Xv"},"source":["### Generating the dataset \n","Run the cell below to create the dataset. It further splits the available data into training and testing. Please do not edit this cell.\n"]},{"cell_type":"code","execution_count":3,"metadata":{"executionInfo":{"elapsed":1011,"status":"ok","timestamp":1655462968739,"user":{"displayName":"Anurag Singh","userId":"10745855479500948138"},"user_tz":-330},"id":"yX0zqXcHIQHP"},"outputs":[],"source":["from sklearn import datasets\n","from sklearn.model_selection import train_test_split\n","\n","# Generate the data\n","X, y = datasets.make_regression(n_samples=100, n_features=5, noise=20, random_state=4)\n","\n","# Split the data\n","X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=1234)"]},{"cell_type":"markdown","metadata":{"id":"Zj4rrRXGJBXy"},"source":["### Visualizing the data \n","Use `matplotlib` to visualize the given data."]},{"cell_type":"code","execution_count":7,"metadata":{"colab":{"base_uri":"https://localhost:8080/","height":1000},"executionInfo":{"elapsed":1694,"status":"ok","timestamp":1655463104820,"user":{"displayName":"Anurag Singh","userId":"10745855479500948138"},"user_tz":-330},"id":"zxfi8dkBJOUi","outputId":"ecad37fa-13f3-4ff7-9150-900504f8ec5b"},"outputs":[{"output_type":"display_data","data":{"text/plain":["
"],"image/png":"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\n"},"metadata":{"needs_background":"light"}},{"output_type":"display_data","data":{"text/plain":["
"],"image/png":"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\n"},"metadata":{"needs_background":"light"}},{"output_type":"display_data","data":{"text/plain":["
"],"image/png":"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\n"},"metadata":{"needs_background":"light"}},{"output_type":"display_data","data":{"text/plain":["
"],"image/png":"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\n"},"metadata":{"needs_background":"light"}},{"output_type":"display_data","data":{"text/plain":["
"],"image/png":"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\n"},"metadata":{"needs_background":"light"}}],"source":["import matplotlib.pyplot as plt\n","\n","plt.subplot(5, 1, 1)\n","plt.scatter(X[:, 0], y)\n","plt.subplot(5, 1, 2)\n","plt.scatter(X[:, 1], y, color = 'orange')\n","plt.subplot(5, 1, 3)\n","plt.scatter(X[:, 2], y, color = 'red')\n","plt.subplot(5, 1, 4)\n","plt.scatter(X[:, 3], y, color = 'green')\n","plt.subplot(5, 1, 5)\n","plt.scatter(X[:, 4], y, color = 'purple')\n","\n","plt.show()\n","\n","# Your code here"]},{"cell_type":"markdown","metadata":{"id":"r7vndSBAJceF"},"source":["You should be able to see the linear relations between `y` and the features in vector `X`."]},{"cell_type":"markdown","metadata":{"id":"b4I9Z3epNvBM"},"source":["### Gradient Descent Review \n","1. #### Cost function\n","Define the `cost function` to measure the difference between predictions and target outputs. Here, we are working with first degree polynomial, so derivatives are easy to calculate. ( Linear function `y = wx +b` ) \n","\n","$$Error = \\frac{1}{N}\\sum_{i=1}^N (y_i - \\overline{y}_i)^2 = \\frac{1}{N}\\sum_{i=1}^N (y_i - (x_iw+b))^2 $$ \n","\n"," where `N` is the number of samples \n"," \n","\n","\n","2. #### Compute the derivative\n","$$\\frac{\\delta Error}{\\delta w} = \\frac{2}{N}\\sum_{i=1}^N -x_i(y_i -(m x_i +b )) $$\n","$$\\frac{\\delta Error}{\\delta b} = \\frac{2}{N}\\sum_{i=1}^N -(y_i -(m x_i +b )) $$\n","3.

Update current parameters

\n","$$ w:= w- learning\\_rate \\cdot \\frac{\\delta Error}{\\delta w} $$ \n","$$ b:= b- learning\\_rate \\cdot \\frac{\\delta Error}{\\delta b} $$ \n","4.

Repeat until it fits good enough

\n"]},{"cell_type":"markdown","metadata":{"id":"kBtUcOVnJu-I"},"source":["### Model definition\n","\n","Complete the functions in the class below. Hints provided at appropriate places."]},{"cell_type":"code","execution_count":null,"metadata":{"id":"dGnFNPJx3I28"},"outputs":[],"source":["import numpy as np\n","\n","class LinearRegression:\n","\n"," # The __init__ is called when we make any object of our class. Here, you are to specify the default values for \n"," # Learning Rate, Number of is, Weights and Biases. It doesn't return anything.\n"," # Hint: Google what a `self pointer` is and figure out how it can be used here.\n"," def __init__(self, learning_rate=0.001, n_iters=1000, w=np.full(X.shape[1],0),b=0):\n"," # Your code here\n"," self.learning_rate = learning_rate\n"," self.n_iters = n_iters\n"," self.w = w\n"," self.b = b\n","\n","\n"," # The following function would be the heart of the model. This is where the training would happen. \n"," # You're supposed to iterate and keep on updating the weights and biases according to the steps of Gradient Descent.\n"," def fit(self, X, y):\n"," # Gradient Descent code goes here\n"," entries = X.shape[0]\n"," fcount = X.shape[1]\n","\n"," for i in range(self.n_iters) :\n"," # prediction\n"," pred = np.matmul(X,self.w)+self.b\n"," dw = np.full(fcount,0)\n"," for j in range(fcount) :\n"," # computing derivative\n"," dw[j] = np.sum(np.dot(X[:,j],y-pred)) * -2 / entries\n"," db = np.sum(y-pred) * -2 / entries\n"," # updating values\n"," self.w = self.w - self.learning_rate * dw\n"," self.b = self.b - self.learning_rate * db\n"," \n"," # This function will be called after our model has been trained and we are predicting on unseen data\n"," # What is our prediction? Just return that\n"," def predict(self, X):\n"," # Code goes here\n"," return np.matmul(X,self.w)+self.b"]},{"cell_type":"markdown","metadata":{"id":"EvyInkTKPn7W"},"source":["### Initializing, Training & Predictions"]},{"cell_type":"code","execution_count":null,"metadata":{"id":"nvItUpAkHTiv"},"outputs":[],"source":["# Now, we make an object of our custom class.\n","regressor = LinearRegression() # You may pass the custom parameters or let the default values take it ahead\n","\n","# Call the fit method on the object to train (pass appropriate part of dataset)\n","regressor.fit(X_train,y_train)\n","\n","# Now, let's see our what our model predicts\n","predictions = regressor.predict(X_test) # pass appropriate part of dataset"]},{"cell_type":"markdown","metadata":{"id":"tzK6cq8eRD4Q"},"source":["### Evaluate the model \n","\n","Return [Mean Squared Error](https://en.wikipedia.org/wiki/Mean_squared_error) & [R2 Score](https://www.ncl.ac.uk/webtemplate/ask-assets/external/maths-resources/statistics/regression-and-correlation/coefficient-of-determination-r-squared.html#:~:text=%C2%AFy) from the functions below."]},{"cell_type":"code","execution_count":null,"metadata":{"id":"WqkrvDzcRF5m","colab":{"base_uri":"https://localhost:8080/"},"executionInfo":{"status":"ok","timestamp":1654443031203,"user_tz":-330,"elapsed":421,"user":{"displayName":"Anurag Singh","userId":"10745855479500948138"}},"outputId":"05656d40-23de-45ca-8d46-9e80163d8333"},"outputs":[{"output_type":"stream","name":"stdout","text":["Mean Square Error is: 673.3064\n","Accuracy is: 0.9363\n"]}],"source":["def mean_squared_error(y_true, y_pred):\n"," # return the mean squared error\n"," return (float) (np.sum(np.dot(y_true-y_pred,y_true-y_pred))/y_true.shape[0])\n"," # pass # Uncomment this when you're done with this function\n","\n","\n","def r2_score(y_true, y_pred):\n"," # return the r2 score\n"," s1 = np.sum(np.dot(y_true-y_pred,y_true-y_pred))\n"," s2 = np.sum(np.dot(y_true-np.mean(y_true),y_true-np.mean(y_true)))\n"," return (float) (1 - s1/s2)\n"," # pass # Uncomment this when you're done with this function\n"," \n","\n","error = mean_squared_error(y_test,predictions) # Pass appropriate parts of dataset\n","print(\"Mean Square Error is: %.4f\" % error)\n","accuracy = r2_score(y_test,predictions) # Pass appropriate parts of dataset\n","print(\"Accuracy is: %.4f\" % accuracy)"]}],"metadata":{"colab":{"collapsed_sections":[],"name":"Assignment 1.ipynb","provenance":[{"file_id":"1lHTeY0ieI9TWcR88yhQV1EwsX7n5PSJq","timestamp":1654160954974},{"file_id":"1DG_xMAsAlibZtSw7T_p6dzV8CRejNM9o","timestamp":1653919622477}]},"kernelspec":{"display_name":"Python 3","name":"python3"},"language_info":{"name":"python"}},"nbformat":4,"nbformat_minor":0} \ No newline at end of file From 8e6c131ff639f3ad0def547918a66d741cd59bfd Mon Sep 17 00:00:00 2001 From: Anurag Singh <106547853+anurags04@users.noreply.github.com> Date: Fri, 24 Jun 2022 23:15:28 +0530 Subject: [PATCH 4/6] 200171 --- Assignment 2/A2_200171.ipynb | 1 + 1 file changed, 1 insertion(+) create mode 100644 Assignment 2/A2_200171.ipynb diff --git a/Assignment 2/A2_200171.ipynb b/Assignment 2/A2_200171.ipynb new file mode 100644 index 0000000..b372782 --- /dev/null +++ b/Assignment 2/A2_200171.ipynb @@ -0,0 +1 @@ +{"nbformat":4,"nbformat_minor":0,"metadata":{"colab":{"name":"200171_Assgn2.ipynb","provenance":[{"file_id":"1ptX8WQ4CFpsuB3FySAo-Ofzinil-gfw_","timestamp":1655464504664}],"collapsed_sections":[]},"kernelspec":{"name":"python3","display_name":"Python 3"},"language_info":{"name":"python"}},"cells":[{"cell_type":"markdown","source":["# Assigment 2: Deep Learning"],"metadata":{"id":"UxcaEbrCy1g_"}},{"cell_type":"markdown","source":["## Generate Dataset\n","\n","This is the same code from Assignment 1"],"metadata":{"id":"h2JON-_Oy79w"}},{"cell_type":"code","execution_count":1,"metadata":{"id":"hgpG3WDuypfa","executionInfo":{"status":"ok","timestamp":1655464671487,"user_tz":-330,"elapsed":1085,"user":{"displayName":"Anurag Singh","userId":"10745855479500948138"}}},"outputs":[],"source":["from sklearn import datasets\n","from sklearn.model_selection import train_test_split\n","\n","# Generate the data\n","X, y = datasets.make_regression(n_samples=100, n_features=5, noise=5, random_state=4)\n","\n","# Split the data\n","X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=1234)\n"]},{"cell_type":"markdown","source":["## Visualize Dataset\n","This is the same code from Assignment 1"],"metadata":{"id":"r6it-Rm7zD1Y"}},{"cell_type":"code","source":["import matplotlib.pyplot as plt\n","from matplotlib.pyplot import cm\n","import numpy as np\n","\n","color = iter(cm.rainbow(np.linspace(0, 1, 5)))\n","for i in range (5):\n"," c = next(color)\n"," plt.scatter(X[:, i], y, c=c)\n"," plt.show()\n","\n","# Your code here"],"metadata":{"id":"UautPVj1yzaQ","colab":{"base_uri":"https://localhost:8080/","height":1000},"executionInfo":{"status":"ok","timestamp":1655465210662,"user_tz":-330,"elapsed":570,"user":{"displayName":"Anurag Singh","userId":"10745855479500948138"}},"outputId":"3ff652a8-4663-4024-d075-3049472c60fd"},"execution_count":12,"outputs":[{"output_type":"stream","name":"stderr","text":["*c* argument looks like a single numeric RGB or RGBA sequence, which should be avoided as value-mapping will have precedence in case its length matches with *x* & *y*. Please use the *color* keyword-argument or provide a 2-D array with a single row if you intend to specify the same RGB or RGBA value for all points.\n"]},{"output_type":"display_data","data":{"text/plain":["
"],"image/png":"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\n"},"metadata":{"needs_background":"light"}},{"output_type":"stream","name":"stderr","text":["*c* argument looks like a single numeric RGB or RGBA sequence, which should be avoided as value-mapping will have precedence in case its length matches with *x* & *y*. Please use the *color* keyword-argument or provide a 2-D array with a single row if you intend to specify the same RGB or RGBA value for all points.\n"]},{"output_type":"display_data","data":{"text/plain":["
"],"image/png":"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\n"},"metadata":{"needs_background":"light"}},{"output_type":"stream","name":"stderr","text":["*c* argument looks like a single numeric RGB or RGBA sequence, which should be avoided as value-mapping will have precedence in case its length matches with *x* & *y*. Please use the *color* keyword-argument or provide a 2-D array with a single row if you intend to specify the same RGB or RGBA value for all points.\n"]},{"output_type":"display_data","data":{"text/plain":["
"],"image/png":"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\n"},"metadata":{"needs_background":"light"}},{"output_type":"stream","name":"stderr","text":["*c* argument looks like a single numeric RGB or RGBA sequence, which should be avoided as value-mapping will have precedence in case its length matches with *x* & *y*. Please use the *color* keyword-argument or provide a 2-D array with a single row if you intend to specify the same RGB or RGBA value for all points.\n"]},{"output_type":"display_data","data":{"text/plain":["
"],"image/png":"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\n"},"metadata":{"needs_background":"light"}},{"output_type":"stream","name":"stderr","text":["*c* argument looks like a single numeric RGB or RGBA sequence, which should be avoided as value-mapping will have precedence in case its length matches with *x* & *y*. Please use the *color* keyword-argument or provide a 2-D array with a single row if you intend to specify the same RGB or RGBA value for all points.\n"]},{"output_type":"display_data","data":{"text/plain":["
"],"image/png":"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\n"},"metadata":{"needs_background":"light"}}]},{"cell_type":"markdown","source":["## Model Definition\n","\n","Using TensorFlow, build a model with the following definition:\n","> Input of shape 5 \\\\\n","> Dense of shape 5 \\\\\n","> Dense of shape 5 \\\\\n","> Dense of shape 1 \\\\\n","\n","Use Mean Square Error Loss and Stochaistic Gradient Descent (SGD) Optimizer\n","\n","Use Gradient Decay with appropriate parameters"],"metadata":{"id":"XMXb9lTyzGHE"}},{"cell_type":"code","source":["import tensorflow as tf\n","from tensorflow import keras\n","\n","model = keras.Sequential\n","([\n"," keras.layers.Dense(5,input_dim=5,activation='relu'),\n"," keras.layers.Dense(5,activation='relu'),\n"," keras.layers.Dense(1)\n","])\n","\n","model.compile(loss='mean_squared_error',optimizer = tf.keras.optimizers.SGD(0.001))\n","history =model.fit(X_train,y_train,epochs=50,validation_split = 0.2,verbose=2)\n","predictions = model.predict(X_test)\n","\n","# Your code here"],"metadata":{"id":"r32N1xK2ziOs","colab":{"base_uri":"https://localhost:8080/"},"executionInfo":{"status":"ok","timestamp":1655465291948,"user_tz":-330,"elapsed":6908,"user":{"displayName":"Anurag Singh","userId":"10745855479500948138"}},"outputId":"3c92ebfd-20dd-4dcf-c6e6-8719ad9242f1"},"execution_count":13,"outputs":[{"output_type":"stream","name":"stdout","text":["Epoch 1/50\n","2/2 - 1s - loss: 12571.1875 - val_loss: 7129.7085 - 789ms/epoch - 394ms/step\n","Epoch 2/50\n","2/2 - 0s - loss: 12496.2139 - val_loss: 7049.2002 - 33ms/epoch - 17ms/step\n","Epoch 3/50\n","2/2 - 0s - loss: 12375.6641 - val_loss: 6867.0645 - 31ms/epoch - 16ms/step\n","Epoch 4/50\n","2/2 - 0s - loss: 12113.3945 - val_loss: 6326.2017 - 30ms/epoch - 15ms/step\n","Epoch 5/50\n","2/2 - 0s - loss: 11325.4414 - val_loss: 4394.9336 - 37ms/epoch - 18ms/step\n","Epoch 6/50\n","2/2 - 0s - loss: 8199.1475 - val_loss: 1677.2324 - 31ms/epoch - 15ms/step\n","Epoch 7/50\n","2/2 - 0s - loss: 4377.1079 - val_loss: 505.3948 - 28ms/epoch - 14ms/step\n","Epoch 8/50\n","2/2 - 0s - loss: 1101.1558 - val_loss: 712.5617 - 33ms/epoch - 17ms/step\n","Epoch 9/50\n","2/2 - 0s - loss: 1523.3835 - val_loss: 749.2360 - 34ms/epoch - 17ms/step\n","Epoch 10/50\n","2/2 - 0s - loss: 1584.0647 - val_loss: 643.6066 - 31ms/epoch - 16ms/step\n","Epoch 11/50\n","2/2 - 0s - loss: 728.8868 - val_loss: 1669.6443 - 31ms/epoch - 15ms/step\n","Epoch 12/50\n","2/2 - 0s - loss: 1791.9958 - val_loss: 598.3815 - 29ms/epoch - 15ms/step\n","Epoch 13/50\n","2/2 - 0s - loss: 346.0421 - val_loss: 169.7264 - 34ms/epoch - 17ms/step\n","Epoch 14/50\n","2/2 - 0s - loss: 210.1525 - val_loss: 104.7498 - 40ms/epoch - 20ms/step\n","Epoch 15/50\n","2/2 - 0s - loss: 207.7090 - val_loss: 80.8680 - 36ms/epoch - 18ms/step\n","Epoch 16/50\n","2/2 - 0s - loss: 132.6408 - val_loss: 181.2822 - 37ms/epoch - 18ms/step\n","Epoch 17/50\n","2/2 - 0s - loss: 145.0695 - val_loss: 105.7047 - 35ms/epoch - 18ms/step\n","Epoch 18/50\n","2/2 - 0s - loss: 134.5298 - val_loss: 118.7442 - 36ms/epoch - 18ms/step\n","Epoch 19/50\n","2/2 - 0s - loss: 106.6155 - val_loss: 73.9608 - 34ms/epoch - 17ms/step\n","Epoch 20/50\n","2/2 - 0s - loss: 75.5803 - val_loss: 187.0749 - 35ms/epoch - 17ms/step\n","Epoch 21/50\n","2/2 - 0s - loss: 158.6006 - val_loss: 265.2912 - 31ms/epoch - 15ms/step\n","Epoch 22/50\n","2/2 - 0s - loss: 223.1525 - val_loss: 467.9523 - 37ms/epoch - 19ms/step\n","Epoch 23/50\n","2/2 - 0s - loss: 457.9778 - val_loss: 443.5191 - 28ms/epoch - 14ms/step\n","Epoch 24/50\n","2/2 - 0s - loss: 193.6060 - val_loss: 159.5966 - 30ms/epoch - 15ms/step\n","Epoch 25/50\n","2/2 - 0s - loss: 115.8183 - val_loss: 138.5821 - 33ms/epoch - 17ms/step\n","Epoch 26/50\n","2/2 - 0s - loss: 85.1698 - val_loss: 147.6904 - 40ms/epoch - 20ms/step\n","Epoch 27/50\n","2/2 - 0s - loss: 92.5099 - val_loss: 158.8256 - 37ms/epoch - 18ms/step\n","Epoch 28/50\n","2/2 - 0s - loss: 63.2335 - val_loss: 127.1065 - 35ms/epoch - 18ms/step\n","Epoch 29/50\n","2/2 - 0s - loss: 81.3979 - val_loss: 134.5626 - 30ms/epoch - 15ms/step\n","Epoch 30/50\n","2/2 - 0s - loss: 90.9914 - val_loss: 101.8017 - 37ms/epoch - 19ms/step\n","Epoch 31/50\n","2/2 - 0s - loss: 50.1973 - val_loss: 86.0154 - 31ms/epoch - 16ms/step\n","Epoch 32/50\n","2/2 - 0s - loss: 60.7954 - val_loss: 79.2144 - 39ms/epoch - 19ms/step\n","Epoch 33/50\n","2/2 - 0s - loss: 63.6865 - val_loss: 41.5513 - 31ms/epoch - 15ms/step\n","Epoch 34/50\n","2/2 - 0s - loss: 25.7162 - val_loss: 39.0340 - 34ms/epoch - 17ms/step\n","Epoch 35/50\n","2/2 - 0s - loss: 26.9080 - val_loss: 43.4235 - 37ms/epoch - 18ms/step\n","Epoch 36/50\n","2/2 - 0s - loss: 20.0984 - val_loss: 36.6535 - 32ms/epoch - 16ms/step\n","Epoch 37/50\n","2/2 - 0s - loss: 20.1993 - val_loss: 44.8635 - 35ms/epoch - 17ms/step\n","Epoch 38/50\n","2/2 - 0s - loss: 39.0405 - val_loss: 63.5409 - 30ms/epoch - 15ms/step\n","Epoch 39/50\n","2/2 - 0s - loss: 46.8739 - val_loss: 49.5526 - 30ms/epoch - 15ms/step\n","Epoch 40/50\n","2/2 - 0s - loss: 23.2586 - val_loss: 41.4384 - 31ms/epoch - 15ms/step\n","Epoch 41/50\n","2/2 - 0s - loss: 19.7721 - val_loss: 43.4757 - 28ms/epoch - 14ms/step\n","Epoch 42/50\n","2/2 - 0s - loss: 20.3897 - val_loss: 51.8159 - 34ms/epoch - 17ms/step\n","Epoch 43/50\n","2/2 - 0s - loss: 25.7211 - val_loss: 43.0336 - 29ms/epoch - 15ms/step\n","Epoch 44/50\n","2/2 - 0s - loss: 20.4406 - val_loss: 46.8883 - 32ms/epoch - 16ms/step\n","Epoch 45/50\n","2/2 - 0s - loss: 19.6630 - val_loss: 39.6647 - 29ms/epoch - 15ms/step\n","Epoch 46/50\n","2/2 - 0s - loss: 56.0538 - val_loss: 55.8026 - 33ms/epoch - 17ms/step\n","Epoch 47/50\n","2/2 - 0s - loss: 42.7105 - val_loss: 42.8702 - 32ms/epoch - 16ms/step\n","Epoch 48/50\n","2/2 - 0s - loss: 69.4790 - val_loss: 46.0566 - 33ms/epoch - 17ms/step\n","Epoch 49/50\n","2/2 - 0s - loss: 31.0399 - val_loss: 44.7458 - 34ms/epoch - 17ms/step\n","Epoch 50/50\n","2/2 - 0s - loss: 24.3382 - val_loss: 38.2838 - 38ms/epoch - 19ms/step\n"]}]},{"cell_type":"markdown","source":["## Plot Loss\n","\n","Using matplotlib visualise how the loss (both validation and training) is changing, use this information to retrain the model with appropriate parameters.
We ideally want the loss to be constant over the last few iterations."],"metadata":{"id":"jmeP6vt3z0oA"}},{"cell_type":"code","source":["# Your code here\n","\n","plt.plot(history.history['loss'], label = 'Loss')\n","plt.plot(history.history['val_loss'], label = 'Value Loss')"],"metadata":{"id":"RQTNqPHm0mOi","colab":{"base_uri":"https://localhost:8080/","height":282},"executionInfo":{"status":"ok","timestamp":1655465387460,"user_tz":-330,"elapsed":992,"user":{"displayName":"Anurag Singh","userId":"10745855479500948138"}},"outputId":"301452f9-d312-4659-c00d-18698f384d50"},"execution_count":14,"outputs":[{"output_type":"execute_result","data":{"text/plain":["[]"]},"metadata":{},"execution_count":14},{"output_type":"display_data","data":{"text/plain":["
"],"image/png":"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\n"},"metadata":{"needs_background":"light"}}]},{"cell_type":"markdown","source":["## Evaluation Metrics\n","Use the R2 Score function implemented in the first assignment to evaluate the performance of the model."],"metadata":{"id":"IVrR_vXA7kOt"}},{"cell_type":"code","source":["# Insert the function for R2 Score\n","\n","def r2_score(y_true, y_pred):\n"," # return the r2 score\n"," y_mean = y_true.mean()\n"," return (float) (1-(((y_true - y_pred)**2).mean())/(((y_true - y_mean)**2).mean()))\n","\n","a = r2_score(y_test, predictions.flatten()) # Pass appropriate parts of dataset\n","print(\"Accuracy is %.6f\" %a)"],"metadata":{"id":"-lOHpD8-7ggm","colab":{"base_uri":"https://localhost:8080/"},"executionInfo":{"status":"ok","timestamp":1655465492190,"user_tz":-330,"elapsed":6,"user":{"displayName":"Anurag Singh","userId":"10745855479500948138"}},"outputId":"1f79a2c1-e4da-47d7-f560-7146e172d6a8"},"execution_count":17,"outputs":[{"output_type":"stream","name":"stdout","text":["Accuracy is 0.996855\n"]}]},{"cell_type":"markdown","source":["## Your own custom model\n","Build a custom model of your own choice.
\n","Describe it in detail in Markdown/Latex in the cell below.
\n","Visualise the loss, as before."],"metadata":{"id":"CHqzF1OU0pBg"}},{"cell_type":"markdown","source":["Your text here"],"metadata":{"id":"jF8oTUqq0y0g"}},{"cell_type":"code","source":["#Your code here\n","\n","model_custom = keras.Sequential([\n"," keras.layers.Dense(64,input_dim=5,activation='relu'),\n"," keras.layers.Dense(15,activation='relu'),\n"," keras.layers.Dense(10,activation='relu'),\n"," keras.layers.Dense(1)\n","])\n","model_custom.compile(\n"," optimizer=tf.optimizers.Adam(learning_rate=0.01),\n"," loss='mean_absolute_error')\n","\n","history_custom =model_custom.fit(\n"," X_train,y_train,\n"," validation_split=0.2,\n"," verbose=2, epochs=50)"],"metadata":{"id":"1XOk5hJu0oSQ","colab":{"base_uri":"https://localhost:8080/"},"executionInfo":{"status":"ok","timestamp":1655466605090,"user_tz":-330,"elapsed":2772,"user":{"displayName":"Anurag Singh","userId":"10745855479500948138"}},"outputId":"f42a15f7-af55-40fb-c72a-0a3ebdd250c9"},"execution_count":40,"outputs":[{"output_type":"stream","name":"stdout","text":["Epoch 1/50\n","2/2 - 1s - loss: 89.0628 - val_loss: 72.3636 - 588ms/epoch - 294ms/step\n","Epoch 2/50\n","2/2 - 0s - loss: 88.8654 - val_loss: 72.2139 - 33ms/epoch - 16ms/step\n","Epoch 3/50\n","2/2 - 0s - loss: 88.6023 - val_loss: 72.0200 - 32ms/epoch - 16ms/step\n","Epoch 4/50\n","2/2 - 0s - loss: 88.2408 - val_loss: 71.7296 - 31ms/epoch - 16ms/step\n","Epoch 5/50\n","2/2 - 0s - loss: 87.7338 - val_loss: 71.2658 - 35ms/epoch - 17ms/step\n","Epoch 6/50\n","2/2 - 0s - loss: 86.9496 - val_loss: 70.5785 - 29ms/epoch - 15ms/step\n","Epoch 7/50\n","2/2 - 0s - loss: 85.8741 - val_loss: 69.5940 - 46ms/epoch - 23ms/step\n","Epoch 8/50\n","2/2 - 0s - loss: 84.6013 - val_loss: 68.2235 - 45ms/epoch - 23ms/step\n","Epoch 9/50\n","2/2 - 0s - loss: 82.9271 - val_loss: 66.6335 - 50ms/epoch - 25ms/step\n","Epoch 10/50\n","2/2 - 0s - loss: 80.1586 - val_loss: 64.6243 - 39ms/epoch - 20ms/step\n","Epoch 11/50\n","2/2 - 0s - loss: 76.9905 - val_loss: 62.0099 - 42ms/epoch - 21ms/step\n","Epoch 12/50\n","2/2 - 0s - loss: 73.3769 - val_loss: 59.4114 - 53ms/epoch - 26ms/step\n","Epoch 13/50\n","2/2 - 0s - loss: 67.3792 - val_loss: 56.0319 - 45ms/epoch - 23ms/step\n","Epoch 14/50\n","2/2 - 0s - loss: 62.1901 - val_loss: 53.0435 - 32ms/epoch - 16ms/step\n","Epoch 15/50\n","2/2 - 0s - loss: 57.2723 - val_loss: 52.8490 - 38ms/epoch - 19ms/step\n","Epoch 16/50\n","2/2 - 0s - loss: 52.5026 - val_loss: 53.1498 - 38ms/epoch - 19ms/step\n","Epoch 17/50\n","2/2 - 0s - loss: 49.0865 - val_loss: 49.6287 - 37ms/epoch - 18ms/step\n","Epoch 18/50\n","2/2 - 0s - loss: 46.3213 - val_loss: 47.5773 - 37ms/epoch - 19ms/step\n","Epoch 19/50\n","2/2 - 0s - loss: 43.4879 - val_loss: 44.9667 - 41ms/epoch - 20ms/step\n","Epoch 20/50\n","2/2 - 0s - loss: 42.9988 - val_loss: 41.9352 - 35ms/epoch - 18ms/step\n","Epoch 21/50\n","2/2 - 0s - loss: 40.0011 - val_loss: 38.6266 - 40ms/epoch - 20ms/step\n","Epoch 22/50\n","2/2 - 0s - loss: 37.0620 - val_loss: 33.9961 - 37ms/epoch - 18ms/step\n","Epoch 23/50\n","2/2 - 0s - loss: 33.8080 - val_loss: 27.7031 - 39ms/epoch - 20ms/step\n","Epoch 24/50\n","2/2 - 0s - loss: 29.2837 - val_loss: 21.1020 - 38ms/epoch - 19ms/step\n","Epoch 25/50\n","2/2 - 0s - loss: 25.6882 - val_loss: 15.2167 - 43ms/epoch - 22ms/step\n","Epoch 26/50\n","2/2 - 0s - loss: 21.2897 - val_loss: 14.2414 - 32ms/epoch - 16ms/step\n","Epoch 27/50\n","2/2 - 0s - loss: 18.8622 - val_loss: 12.0345 - 37ms/epoch - 18ms/step\n","Epoch 28/50\n","2/2 - 0s - loss: 16.8748 - val_loss: 13.7153 - 33ms/epoch - 17ms/step\n","Epoch 29/50\n","2/2 - 0s - loss: 15.7881 - val_loss: 14.0560 - 36ms/epoch - 18ms/step\n","Epoch 30/50\n","2/2 - 0s - loss: 13.3920 - val_loss: 16.0689 - 34ms/epoch - 17ms/step\n","Epoch 31/50\n","2/2 - 0s - loss: 14.6819 - val_loss: 14.6203 - 35ms/epoch - 17ms/step\n","Epoch 32/50\n","2/2 - 0s - loss: 12.6342 - val_loss: 12.2780 - 36ms/epoch - 18ms/step\n","Epoch 33/50\n","2/2 - 0s - loss: 12.5174 - val_loss: 12.2983 - 32ms/epoch - 16ms/step\n","Epoch 34/50\n","2/2 - 0s - loss: 11.5559 - val_loss: 8.9856 - 33ms/epoch - 16ms/step\n","Epoch 35/50\n","2/2 - 0s - loss: 10.0819 - val_loss: 8.6677 - 33ms/epoch - 17ms/step\n","Epoch 36/50\n","2/2 - 0s - loss: 10.0854 - val_loss: 9.6684 - 36ms/epoch - 18ms/step\n","Epoch 37/50\n","2/2 - 0s - loss: 9.4756 - val_loss: 11.0051 - 38ms/epoch - 19ms/step\n","Epoch 38/50\n","2/2 - 0s - loss: 8.8457 - val_loss: 9.3883 - 49ms/epoch - 25ms/step\n","Epoch 39/50\n","2/2 - 0s - loss: 7.5584 - val_loss: 7.1456 - 31ms/epoch - 15ms/step\n","Epoch 40/50\n","2/2 - 0s - loss: 8.5364 - val_loss: 6.3658 - 34ms/epoch - 17ms/step\n","Epoch 41/50\n","2/2 - 0s - loss: 7.3113 - val_loss: 7.4882 - 36ms/epoch - 18ms/step\n","Epoch 42/50\n","2/2 - 0s - loss: 6.8390 - val_loss: 9.6282 - 40ms/epoch - 20ms/step\n","Epoch 43/50\n","2/2 - 0s - loss: 6.8150 - val_loss: 7.8309 - 38ms/epoch - 19ms/step\n","Epoch 44/50\n","2/2 - 0s - loss: 5.9344 - val_loss: 6.0203 - 33ms/epoch - 17ms/step\n","Epoch 45/50\n","2/2 - 0s - loss: 6.1809 - val_loss: 5.3798 - 34ms/epoch - 17ms/step\n","Epoch 46/50\n","2/2 - 0s - loss: 5.5780 - val_loss: 6.4669 - 35ms/epoch - 17ms/step\n","Epoch 47/50\n","2/2 - 0s - loss: 5.6535 - val_loss: 7.3037 - 34ms/epoch - 17ms/step\n","Epoch 48/50\n","2/2 - 0s - loss: 6.5228 - val_loss: 5.7414 - 37ms/epoch - 18ms/step\n","Epoch 49/50\n","2/2 - 0s - loss: 4.7300 - val_loss: 7.3487 - 33ms/epoch - 16ms/step\n","Epoch 50/50\n","2/2 - 0s - loss: 5.3309 - val_loss: 6.5498 - 34ms/epoch - 17ms/step\n"]}]},{"cell_type":"code","source":["plt.plot(history.history['loss'], label='loss')\n","plt.plot(history.history['val_loss'], label='val_loss')"],"metadata":{"id":"aS0ROZa402Lo","colab":{"base_uri":"https://localhost:8080/","height":282},"executionInfo":{"status":"ok","timestamp":1655466613110,"user_tz":-330,"elapsed":527,"user":{"displayName":"Anurag Singh","userId":"10745855479500948138"}},"outputId":"4730aaf4-8c47-45e0-fbd1-271965f01cc1"},"execution_count":41,"outputs":[{"output_type":"execute_result","data":{"text/plain":["[]"]},"metadata":{},"execution_count":41},{"output_type":"display_data","data":{"text/plain":["
"],"image/png":"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\n"},"metadata":{"needs_background":"light"}}]},{"cell_type":"code","source":["prediction_custom = model_custom.predict(X_test)\n","r2_score(y_test,prediction_custom.flatten())"],"metadata":{"colab":{"base_uri":"https://localhost:8080/"},"id":"mPcf5iNheHuF","executionInfo":{"status":"ok","timestamp":1655466616651,"user_tz":-330,"elapsed":418,"user":{"displayName":"Anurag Singh","userId":"10745855479500948138"}},"outputId":"2beb358f-6cd1-4fea-add1-0457e9c19d51"},"execution_count":42,"outputs":[{"output_type":"execute_result","data":{"text/plain":["0.9883281351121341"]},"metadata":{},"execution_count":42}]}]} \ No newline at end of file From d42e128b64509158a25ff8899d65e24f78c05d10 Mon Sep 17 00:00:00 2001 From: Anurag Singh <106547853+anurags04@users.noreply.github.com> Date: Thu, 7 Jul 2022 16:16:24 +0530 Subject: [PATCH 5/6] Add files via upload A3_200171 --- Assignment 3/A3_200171.ipynb | 492 +++++++++++++++++++++++++++++++++++ 1 file changed, 492 insertions(+) create mode 100644 Assignment 3/A3_200171.ipynb diff --git a/Assignment 3/A3_200171.ipynb b/Assignment 3/A3_200171.ipynb new file mode 100644 index 0000000..240d20d --- /dev/null +++ b/Assignment 3/A3_200171.ipynb @@ -0,0 +1,492 @@ +{ + "nbformat": 4, + "nbformat_minor": 0, + "metadata": { + "colab": { + "name": "Assignment-3.ipynb", + "provenance": [] + }, + "kernelspec": { + "name": "python3", + "display_name": "Python 3" + }, + "language_info": { + "name": "python" + }, + "accelerator": "GPU", + "gpuClass": "standard" + }, + "cells": [ + { + "cell_type": "markdown", + "source": [ + "# Assignment 3\n", + "\n", + " In this Assignment, we will use CNN to classify digits. \n", + "The `MNIST` database is a large database of handwritten digits that is commonly used for training various image processing systems.\n", + "\n" + ], + "metadata": { + "id": "VGHh_5UYzKpV" + } + }, + { + "cell_type": "markdown", + "source": [ + "## Importing TensorFlow" + ], + "metadata": { + "id": "JnsMbCPNzPAr" + } + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": { + "id": "HRLTw3cMwvi7" + }, + "outputs": [], + "source": [ + "import tensorflow as tf" + ] + }, + { + "cell_type": "markdown", + "source": [ + "## Get the dataset" + ], + "metadata": { + "id": "6Ji7HGpgzSPi" + } + }, + { + "cell_type": "code", + "source": [ + "# Import the dataset\n", + "\n", + "(x_train, y_train), (x_test, y_test) = tf.keras.datasets.mnist.load_data()" + ], + "metadata": { + "id": "oEW3KDEvzIHL", + "colab": { + "base_uri": "https://localhost:8080/" + }, + "outputId": "e5702edb-8891-452a-8951-973b02682fa5" + }, + "execution_count": 6, + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + "Downloading data from https://storage.googleapis.com/tensorflow/tf-keras-datasets/mnist.npz\n", + "11493376/11490434 [==============================] - 0s 0us/step\n", + "11501568/11490434 [==============================] - 0s 0us/step\n" + ] + } + ] + }, + { + "cell_type": "code", + "source": [ + "# Split the dataset\n", + "\n", + "from sklearn.model_selection import train_test_split\n", + "X_train,X_test,Y_train,Y_test=train_test_split(x_test,y_test,test_size=0.2)" + ], + "metadata": { + "id": "F_sRU9dx_mYQ" + }, + "execution_count": 7, + "outputs": [] + }, + { + "cell_type": "code", + "source": [ + "# Pre processing \n", + "print(X_train.shape, Y_train.shape, X_test.shape, Y_test.shape)\n", + "print(x_train.shape, y_train.shape, x_test.shape, y_test.shape)" + ], + "metadata": { + "id": "rbt0WbW6sDVs", + "colab": { + "base_uri": "https://localhost:8080/" + }, + "outputId": "db1f5057-655c-4530-e7e7-8f83b1904ba4" + }, + "execution_count": 8, + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + "(8000, 28, 28) (8000,) (2000, 28, 28) (2000,)\n", + "(60000, 28, 28) (60000,) (10000, 28, 28) (10000,)\n" + ] + } + ] + }, + { + "cell_type": "markdown", + "source": [ + "## Visualize the dataset\n", + "Print some images with labels." + ], + "metadata": { + "id": "EVpQheoVqoEG" + } + }, + { + "cell_type": "code", + "source": [ + "import matplotlib.pyplot as plt\n", + "\n", + "plt.figure(figsize=(16,16))\n", + "for i in range (16):\n", + " plt.subplot(5,4,i+1)\n", + " plt.xticks([])\n", + " plt.yticks([])\n", + " plt.grid(False)\n", + " plt.imshow(X_train[i])\n", + " plt.title(Y_train[i])\n", + "\n", + "\n", + "# Your code" + ], + "metadata": { + "id": "yF1Nj63Bz9m7", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 740 + }, + "outputId": "501b67e9-4d0a-4e0e-ba35-68e0704108f7" + }, + "execution_count": 9, + "outputs": [ + { + "output_type": "display_data", + "data": { + "text/plain": [ + "
" + ], + "image/png": "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\n" + }, + "metadata": {} + } + ] + }, + { + "cell_type": "markdown", + "source": [ + "Plot statistics of the training and testing dataset \n", + "(`x axis`: digits, `y axis`: number of samples corresponding to the digits)" + ], + "metadata": { + "id": "Rx8muKSIrKhe" + } + }, + { + "cell_type": "code", + "source": [ + "import numpy as np\n", + "\n", + "x, y = np.unique(Y_train, return_counts=True)\n", + "plt.bar(x,y,label='training data')\n", + "plt.legend()\n", + "plt.show()\n", + "x, y = np.unique(Y_test, return_counts=True)\n", + "plt.bar(x,y,label='testing data', color='red')\n", + "plt.legend()\n", + "plt.show()\n", + "# Your code" + ], + "metadata": { + "id": "37kehTG_6Pi4", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 513 + }, + "outputId": "22bb02b2-9b5b-405b-f9e6-f1bcd45b46da" + }, + "execution_count": 10, + "outputs": [ + { + "output_type": "display_data", + "data": { + "text/plain": [ + "
" + ], + "image/png": "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\n" + }, + "metadata": { + "needs_background": "light" + } + }, + { + "output_type": "display_data", + "data": { + "text/plain": [ + "
" + ], + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAXcAAAD4CAYAAAAXUaZHAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4yLjIsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy+WH4yJAAAQx0lEQVR4nO3dfYzU9Z3A8fdH4IoUUlrgrAjtEmOsdLXoLVXrxWvV+EAvtSb1AVsrphGJctZL4wnN9TSk5ki566nNicdVD221YGhNjWd6a4TEa2vVBbkWRCJtsSygrFpaELgq/dwfO9A93HUfZ2f3O+9XstmZ3/xmfp/h4Z3Z787+NjITSVJZjqr1AJKkgWfcJalAxl2SCmTcJalAxl2SCjSy1gMATJw4MRsaGmo9hiQNK2vXrn0tMyd1dtuQiHtDQwMtLS21HkOShpWIeLmr21yWkaQCGXdJKpBxl6QCDYk198689dZbtLa2cuDAgVqPUpdGjx7NlClTGDVqVK1HkdQHQzbura2tjBs3joaGBiKi1uPUlczk9ddfp7W1lWnTptV6HEl9MGSXZQ4cOMCECRMMew1EBBMmTPCrJmkYG7JxBwx7DflnLw1vQzrukqS+GT5xjxjYj27s3r2bu+++u8/j3nHHHezbt+/w9VmzZrF79+4+P15X5syZw6pVq951n+XLl7Njx44BP7akoWvIfkO11g7F/frrr+96p3f5qdo7vvENvtDYyJjx4wF4fNEi2LKl94M0NfX+PkdYvnw5jY2NTJ48ud+PJWl4GD6v3AfZggUL+OUvf8mMGTO4+eabAViyZAkzZ87klFNO4dZbbwXgzf37+fRNN/GxK6+k8fLLWdnczF0rVrCjrY1PzZvHp+bNA6DhM5/htd272bpjByddeinXfv3rfPSyyzh//nz2V75x+dzGjZwyezYzrrySm++8k8bLL3/HXJnJ/PnzOfHEEznvvPPYtWvX4dsWLVrEzJkzaWxsZO7cuWQmq1atoqWlhc9//vPMmDGD/fv3d7qfpLIY9y4sXryY448/nvXr17NkyRKam5t56aWXePbZZ1m/fj1r167lqXXr+NHTTzN54kT+56GH2LByJRd+4hPceMUVTJ40iTX33MOae+55x2O/tG0bN1x6KRsffpjx48bx/dWrAbhm0SL+beFC1j/0ECOO6vyv5pFHHmHz5s288MILPPDAA/z0pz89fNv8+fN57rnn2LBhA/v37+exxx7jc5/7HE1NTTz44IOsX7+eo48+utP9JJXFuPdQc3Mzzc3NnHrqqZx22mm8+OKLvLRtGycffzxPPPsst3zrW/z388/zvrFju32saZMnM+PEEwH4i498hK07d7J7zx727NvHmaecAsCVF17Y6X2feuopZs+ezYgRI5g8eTLnnHPO4dvWrFnD6aefzsknn8zq1avZuHFjp4/R0/0kDV+uufdQZrJw4UKuu+66P22srLmv+853ePwnP+Hvly7l3Jkz+Ydrr33Xx3pPh5/6HHHUUew/eLDf8x04cIDrr7+elpYWpk6dym233dbp+9R7up+k4c1X7l0YN24ce/bsOXz9ggsu4L777mPv3r0AbN++nV1vvMGOtjbGjB7NF2bN4uarrmLd5s3t9x8zhj1vvtnj440fN45xY8bwzIYNAKxobu50v7PPPpuVK1dy8OBBdu7cyZo1awAOB3rixIns3bv3/72DpuNzebf9JJVj+LxyH+Rv+k2YMIGzzjqLxsZGLrroIpYsWcKmTZs488wzARg7dizfveUWtmzbxs133cVREYwaOZKlCxYAMPeSS7jwxhsPr733xL1f+xrX3n47R0XwV6ed1ukSzyWXXMLq1auZPn06H/rQhw7PM378eK699loaGxv54Ac/yMyZMw/fZ86cOcybN4+jjz6ap59+usv9JJUjhsI7JZqamvLIX9axadMmTjrppBpN1EMD/AtG9u7bx9gxYwBYvHw5O197jTtXrBjQY/TGsPg7kOpYRKzNzE7fLz18XrnXgf/88Y/5x+XLefvgQT587LEsr7zdUpJ6y7gPIZeffz6Xn39+rcfomWqfe2YIfEWpDgbjXENd/Z3X8tjD2JD+hupQWDKqV/7ZS8PbkI376NGjef31141MDRw6n/vo0aNrPYqkPup2WSYipgIPAMcACSzLzDsj4gPASqAB2Apclpm/jfZzxd4JzAL2AXMyc11vB5syZQqtra20tbX19q6D57XXqn+MTZuqf4xOHPpNTJKGp56sub8NfCUz10XEOGBtRDwBzAGezMzFEbEAWADcAlwEnFD5OB1YWvncK6NGjRr6vwVo+vTqH+PdvnJx3VuqrmG83t/tskxm7jz0yjsz9wCbgOOAi4H7K7vdD3y2cvli4IFs9zNgfEQcO+CTS5K61Ks194hoAE4FngGOycydlZteoX3ZBtrDv63D3Vor2458rLkR0RIRLUN66UWShqEexz0ixgLfB27KzN93vC3bv+vZq68tMnNZZjZlZtOkSZN6c9cjB6v+hyQNMz2Ke0SMoj3sD2bmDyqbXz203FL5fOjE4tuBqR3uPqWyTZI0SLqNe+XdL/cCmzLzmx1uehS4unL5auCHHbZ/MdqdAfyuw/KNJGkQ9OTdMmcBVwG/iIj1lW1fBRYDD0fEl4CXgcsqtz1O+9sgt9D+VshrBnRiyXcJSd3qNu6Z+WOgq/9N53ayfwI39HMuSVI/DNmfUJUk9Z1xl6QCeVZIabgYxj8tqcHnK3dJKpBxl6QCGXdJKpBxl6QCGXdJKpBxl6QCGXdJKpBxl6QCGXdJKpBxl6QCGXdJKpBxl6QCGXdJKpBxl6QCGXdJKpDnc5d6w3Oqa5jwlbskFci4S1KBjLskFci4S1KBjLskFci4S1KBjLskFci4S1KBjLskFci4S1KBjLskFci4S1KBjLskFci4S1KBjLskFci4S1KBjLskFci4S1KBjLskFci4S1KBuo17RNwXEbsiYkOHbbdFxPaIWF/5mNXhtoURsSUiNkfEBdUaXJLUtZ68cl8OXNjJ9n/JzBmVj8cBImI6cAXw0cp97o6IEQM1rCSpZ7qNe2Y+BbzRw8e7GFiRmf+bmb8GtgAf78d8kqQ+6M+a+/yI+Hll2eb9lW3HAds67NNa2fYOETE3IloioqWtra0fY0iSjtTXuC8FjgdmADuBf+7tA2TmssxsysymSZMm9XEMSVJn+hT3zHw1Mw9m5h+Bf+dPSy/bgakddp1S2SZJGkR9intEHNvh6iXAoXfSPApcERHviYhpwAnAs/0bUZLUWyO72yEivgd8EpgYEa3ArcAnI2IGkMBW4DqAzNwYEQ8DLwBvAzdk5sHqjC5J6kq3cc/M2Z1svvdd9r8duL0/Q0mS+sefUJWkAhl3SSqQcZekAhl3SSqQcZekAhl3SSqQcZekAhl3SSqQcZekAhl3SSqQcZekAhl3SSqQcZekAhl3SSqQcZekAhl3SSqQcZekAhl3SSqQcZekAhl3SSqQcZekAhl3SSqQcZekAhl3SSqQcZekAhl3SSqQcZekAhl3SSqQcZekAhl3SSqQcZekAhl3SSqQcZekAhl3SSqQcZekAhl3SSqQcZekAhl3SSqQcZekAnUb94i4LyJ2RcSGDts+EBFPRMRLlc/vr2yPiLgrIrZExM8j4rRqDi9J6lxPXrkvBy48YtsC4MnMPAF4snId4CLghMrHXGDpwIwpSeqNbuOemU8Bbxyx+WLg/srl+4HPdtj+QLb7GTA+Io4dqGElST3T1zX3YzJzZ+XyK8AxlcvHAds67Nda2fYOETE3IloioqWtra2PY0iSOtPvb6hmZgLZh/sty8ymzGyaNGlSf8eQJHXQ17i/emi5pfJ5V2X7dmBqh/2mVLZJkgZRX+P+KHB15fLVwA87bP9i5V0zZwC/67B8I0kaJCO72yEivgd8EpgYEa3ArcBi4OGI+BLwMnBZZffHgVnAFmAfcE0VZpYkdaPbuGfm7C5uOreTfRO4ob9DSZL6x59QlaQCGXdJKpBxl6QCGXdJKpBxl6QCGXdJKpBxl6QCGXdJKpBxl6QCGXdJKpBxl6QCGXdJKpBxl6QCGXdJKpBxl6QCGXdJKpBxl6QCGXdJKpBxl6QCGXdJKpBxl6QCGXdJKpBxl6QCGXdJKpBxl6QCGXdJKpBxl6QCGXdJKpBxl6QCGXdJKpBxl6QCGXdJKpBxl6QCGXdJKpBxl6QCGXdJKpBxl6QCGXdJKpBxl6QCjezPnSNiK7AHOAi8nZlNEfEBYCXQAGwFLsvM3/ZvTElSbwzEK/dPZeaMzGyqXF8APJmZJwBPVq5LkgZRNZZlLgbur1y+H/hsFY4hSXoX/Y17As0RsTYi5la2HZOZOyuXXwGO6eyOETE3IloioqWtra2fY0iSOurXmjvwl5m5PSL+HHgiIl7seGNmZkRkZ3fMzGXAMoCmpqZO95Ek9U2/Xrln5vbK513AI8DHgVcj4liAyudd/R1SktQ7fY57RLw3IsYdugycD2wAHgWurux2NfDD/g4pSeqd/izLHAM8EhGHHuehzPxRRDwHPBwRXwJeBi7r/5iSpN7oc9wz81fAxzrZ/jpwbn+GkiT1jz+hKkkFMu6SVCDjLkkFMu6SVCDjLkkFMu6SVCDjLkkFMu6SVCDjLkkFMu6SVCDjLkkFMu6SVCDjLkkFMu6SVCDjLkkFMu6SVCDjLkkFMu6SVCDjLkkFMu6SVCDjLkkFMu6SVCDjLkkFMu6SVCDjLkkFMu6SVCDjLkkFMu6SVCDjLkkFMu6SVCDjLkkFMu6SVCDjLkkFMu6SVCDjLkkFMu6SVCDjLkkFMu6SVCDjLkkFqlrcI+LCiNgcEVsiYkG1jiNJeqeqxD0iRgD/ClwETAdmR8T0ahxLkvRO1Xrl/nFgS2b+KjP/AKwALq7SsSRJRxhZpcc9DtjW4XorcHrHHSJiLjC3cnVvRGyu0iydmQi81uO9I6o3yeAe2+c9+MfuvYE7fu+e98Aeu/d83n3x4a5uqFbcu5WZy4BltTh2RLRkZlMtjl1LPu/64vOub9ValtkOTO1wfUplmyRpEFQr7s8BJ0TEtIj4M+AK4NEqHUuSdISqLMtk5tsRMR/4L2AEcF9mbqzGsfqoJstBQ4DPu774vOtYZGatZ5AkDTB/QlWSCmTcJalAdRX3ej0lQkRMjYg1EfFCRGyMiC/XeqbBEhEjIuL5iHis1rMMpogYHxGrIuLFiNgUEWfWeqbBEBF/W/k3viEivhcRo2s9U63UTdzr/JQIbwNfyczpwBnADXX03L8MbKr1EDVwJ/CjzPwI8DHq4M8gIo4DbgSaMrOR9jdzXFHbqWqnbuJOHZ8SITN3Zua6yuU9tP9HP662U1VfREwBPg18u9azDKaIeB9wNnAvQGb+ITN313aqQTMSODoiRgJjgB01nqdm6inunZ0SofjAHSkiGoBTgWdqO8mguAP4O+CPtR5kkE0D2oD/qCxJfTsi3lvroaotM7cD/wT8BtgJ/C4zm2s7Ve3UU9zrXkSMBb4P3JSZv6/1PNUUEX8N7MrMtbWepQZGAqcBSzPzVOBNoPjvMUXE+2n/anwaMBl4b0R8obZT1U49xb2uT4kQEaNoD/uDmfmDWs8zCM4CPhMRW2lfgjsnIr5b25EGTSvQmpmHvjpbRXvsS3ce8OvMbMvMt4AfAJ+o8Uw1U09xr9tTIkRE0L7+uikzv1nreQZDZi7MzCmZ2UD73/XqzKyLV3GZ+QqwLSJOrGw6F3ihhiMNlt8AZ0TEmMq/+XOpg28kd6VmZ4UcbMPglAjVdBZwFfCLiFhf2fbVzHy8hjOpuv4GeLDyQuZXwDU1nqfqMvOZiFgFrKP9HWLPU8enIvD0A5JUoHpalpGkumHcJalAxl2SCmTcJalAxl2SCmTcJalAxl2SCvR/ywqSgXdZtPIAAAAASUVORK5CYII=\n" + }, + "metadata": { + "needs_background": "light" + } + } + ] + }, + { + "cell_type": "markdown", + "source": [ + "## Model" + ], + "metadata": { + "id": "kWlpCWdAr8d3" + } + }, + { + "cell_type": "code", + "source": [ + "# model building\n", + "\n", + "import keras\n", + "from keras.models import Sequential\n", + "from keras import layers\n", + "\n", + "model=keras.models.Sequential()\n", + "model.add(layers.Conv2D(32, (3, 3), activation='relu', input_shape=(28,28,1)))\n", + "model.add(layers.Conv2D(64, (3, 3), activation='relu'))\n", + "model.add(layers.MaxPooling2D((2, 2)))\n", + "model.add(layers.Dropout(0.25))\n", + "model.add(layers.Flatten())\n", + "model.add(layers.Dense(128, activation='relu'))\n", + "model.add(layers.Dropout(0.5))\n", + "model.add(layers.Dense(10, activation='softmax'))\n", + "model.summary()\n", + "# You are supposed to look at some CNN architectures and add convolutional layers along with MaxPooling, specifying the kernel size, pooling size, activation \n" + ], + "metadata": { + "id": "1L07EyQ0Yion", + "colab": { + "base_uri": "https://localhost:8080/" + }, + "outputId": "5e8e9c6f-2f0d-40eb-bc94-6f5eae25b69d" + }, + "execution_count": 11, + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + "Model: \"sequential_1\"\n", + "_________________________________________________________________\n", + " Layer (type) Output Shape Param # \n", + "=================================================================\n", + " conv2d_2 (Conv2D) (None, 26, 26, 32) 320 \n", + " \n", + " conv2d_3 (Conv2D) (None, 24, 24, 64) 18496 \n", + " \n", + " max_pooling2d_1 (MaxPooling (None, 12, 12, 64) 0 \n", + " 2D) \n", + " \n", + " dropout_2 (Dropout) (None, 12, 12, 64) 0 \n", + " \n", + " flatten_1 (Flatten) (None, 9216) 0 \n", + " \n", + " dense_2 (Dense) (None, 128) 1179776 \n", + " \n", + " dropout_3 (Dropout) (None, 128) 0 \n", + " \n", + " dense_3 (Dense) (None, 10) 1290 \n", + " \n", + "=================================================================\n", + "Total params: 1,199,882\n", + "Trainable params: 1,199,882\n", + "Non-trainable params: 0\n", + "_________________________________________________________________\n" + ] + } + ] + }, + { + "cell_type": "code", + "source": [ + "# Compile the model (add optimizers and metrics)\n", + "\n", + "model.compile(optimizer='adam', loss=tf.keras.losses.SparseCategoricalCrossentropy(from_logits=True),metrics=['accuracy'])\n", + "\n", + "# Fit the model on the training data (specify validation_split, read about validation if new to you)\n", + "\n", + "history = model.fit(X_train, Y_train, epochs=45, validation_split=0.2)" + ], + "metadata": { + "id": "nKEZ8cbO9JVV", + "colab": { + "base_uri": "https://localhost:8080/" + }, + "outputId": "c49f8885-d5c8-4dba-9901-6f5017a75990" + }, + "execution_count": 12, + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + "Epoch 1/45\n" + ] + }, + { + "output_type": "stream", + "name": "stderr", + "text": [ + "/usr/local/lib/python3.7/dist-packages/tensorflow/python/util/dispatch.py:1082: UserWarning: \"`sparse_categorical_crossentropy` received `from_logits=True`, but the `output` argument was produced by a sigmoid or softmax activation and thus does not represent logits. Was this intended?\"\n", + " return dispatch_target(*args, **kwargs)\n" + ] + }, + { + "output_type": "stream", + "name": "stdout", + "text": [ + "200/200 [==============================] - 12s 5ms/step - loss: 1.5824 - accuracy: 0.7589 - val_loss: 0.1389 - val_accuracy: 0.9563\n", + "Epoch 2/45\n", + "200/200 [==============================] - 1s 4ms/step - loss: 0.2867 - accuracy: 0.9131 - val_loss: 0.0871 - val_accuracy: 0.9737\n", + "Epoch 3/45\n", + "200/200 [==============================] - 1s 4ms/step - loss: 0.1879 - accuracy: 0.9402 - val_loss: 0.0739 - val_accuracy: 0.9762\n", + "Epoch 4/45\n", + "200/200 [==============================] - 1s 4ms/step - loss: 0.1549 - accuracy: 0.9516 - val_loss: 0.0781 - val_accuracy: 0.9756\n", + "Epoch 5/45\n", + "200/200 [==============================] - 1s 4ms/step - loss: 0.1305 - accuracy: 0.9602 - val_loss: 0.0604 - val_accuracy: 0.9850\n", + "Epoch 6/45\n", + "200/200 [==============================] - 1s 4ms/step - loss: 0.1103 - accuracy: 0.9638 - val_loss: 0.0562 - val_accuracy: 0.9844\n", + "Epoch 7/45\n", + "200/200 [==============================] - 1s 4ms/step - loss: 0.0983 - accuracy: 0.9691 - val_loss: 0.0658 - val_accuracy: 0.9812\n", + "Epoch 8/45\n", + "200/200 [==============================] - 1s 4ms/step - loss: 0.0887 - accuracy: 0.9736 - val_loss: 0.0608 - val_accuracy: 0.9825\n", + "Epoch 9/45\n", + "200/200 [==============================] - 1s 4ms/step - loss: 0.0779 - accuracy: 0.9739 - val_loss: 0.0834 - val_accuracy: 0.9781\n", + "Epoch 10/45\n", + "200/200 [==============================] - 1s 4ms/step - loss: 0.0841 - accuracy: 0.9758 - val_loss: 0.0675 - val_accuracy: 0.9775\n", + "Epoch 11/45\n", + "200/200 [==============================] - 1s 4ms/step - loss: 0.0625 - accuracy: 0.9780 - val_loss: 0.0664 - val_accuracy: 0.9831\n", + "Epoch 12/45\n", + "200/200 [==============================] - 1s 4ms/step - loss: 0.0518 - accuracy: 0.9819 - val_loss: 0.0837 - val_accuracy: 0.9812\n", + "Epoch 13/45\n", + "200/200 [==============================] - 1s 4ms/step - loss: 0.0614 - accuracy: 0.9819 - val_loss: 0.0644 - val_accuracy: 0.9844\n", + "Epoch 14/45\n", + "200/200 [==============================] - 1s 4ms/step - loss: 0.0554 - accuracy: 0.9819 - val_loss: 0.0775 - val_accuracy: 0.9812\n", + "Epoch 15/45\n", + "200/200 [==============================] - 1s 4ms/step - loss: 0.0579 - accuracy: 0.9798 - val_loss: 0.0921 - val_accuracy: 0.9794\n", + "Epoch 16/45\n", + "200/200 [==============================] - 1s 4ms/step - loss: 0.0704 - accuracy: 0.9781 - val_loss: 0.0805 - val_accuracy: 0.9769\n", + "Epoch 17/45\n", + "200/200 [==============================] - 1s 4ms/step - loss: 0.0545 - accuracy: 0.9834 - val_loss: 0.0523 - val_accuracy: 0.9862\n", + "Epoch 18/45\n", + "200/200 [==============================] - 1s 4ms/step - loss: 0.0671 - accuracy: 0.9817 - val_loss: 0.0761 - val_accuracy: 0.9819\n", + "Epoch 19/45\n", + "200/200 [==============================] - 1s 4ms/step - loss: 0.0566 - accuracy: 0.9820 - val_loss: 0.0725 - val_accuracy: 0.9831\n", + "Epoch 20/45\n", + "200/200 [==============================] - 1s 4ms/step - loss: 0.0536 - accuracy: 0.9836 - val_loss: 0.0846 - val_accuracy: 0.9806\n", + "Epoch 21/45\n", + "200/200 [==============================] - 1s 4ms/step - loss: 0.0419 - accuracy: 0.9861 - val_loss: 0.0807 - val_accuracy: 0.9819\n", + "Epoch 22/45\n", + "200/200 [==============================] - 1s 4ms/step - loss: 0.0479 - accuracy: 0.9833 - val_loss: 0.0825 - val_accuracy: 0.9806\n", + "Epoch 23/45\n", + "200/200 [==============================] - 1s 4ms/step - loss: 0.0503 - accuracy: 0.9855 - val_loss: 0.0717 - val_accuracy: 0.9844\n", + "Epoch 24/45\n", + "200/200 [==============================] - 1s 4ms/step - loss: 0.0425 - accuracy: 0.9870 - val_loss: 0.0787 - val_accuracy: 0.9819\n", + "Epoch 25/45\n", + "200/200 [==============================] - 1s 4ms/step - loss: 0.0415 - accuracy: 0.9858 - val_loss: 0.0776 - val_accuracy: 0.9837\n", + "Epoch 26/45\n", + "200/200 [==============================] - 1s 4ms/step - loss: 0.0369 - accuracy: 0.9892 - val_loss: 0.0714 - val_accuracy: 0.9825\n", + "Epoch 27/45\n", + "200/200 [==============================] - 1s 4ms/step - loss: 0.0355 - accuracy: 0.9880 - val_loss: 0.0832 - val_accuracy: 0.9844\n", + "Epoch 28/45\n", + "200/200 [==============================] - 1s 4ms/step - loss: 0.0545 - accuracy: 0.9853 - val_loss: 0.1024 - val_accuracy: 0.9800\n", + "Epoch 29/45\n", + "200/200 [==============================] - 1s 4ms/step - loss: 0.0569 - accuracy: 0.9837 - val_loss: 0.0945 - val_accuracy: 0.9856\n", + "Epoch 30/45\n", + "200/200 [==============================] - 1s 4ms/step - loss: 0.0558 - accuracy: 0.9831 - val_loss: 0.0912 - val_accuracy: 0.9869\n", + "Epoch 31/45\n", + "200/200 [==============================] - 1s 4ms/step - loss: 0.0490 - accuracy: 0.9861 - val_loss: 0.0953 - val_accuracy: 0.9806\n", + "Epoch 32/45\n", + "200/200 [==============================] - 1s 4ms/step - loss: 0.0309 - accuracy: 0.9909 - val_loss: 0.0851 - val_accuracy: 0.9862\n", + "Epoch 33/45\n", + "200/200 [==============================] - 1s 4ms/step - loss: 0.0311 - accuracy: 0.9914 - val_loss: 0.0767 - val_accuracy: 0.9837\n", + "Epoch 34/45\n", + "200/200 [==============================] - 1s 4ms/step - loss: 0.0517 - accuracy: 0.9842 - val_loss: 0.0812 - val_accuracy: 0.9844\n", + "Epoch 35/45\n", + "200/200 [==============================] - 1s 4ms/step - loss: 0.0447 - accuracy: 0.9869 - val_loss: 0.0645 - val_accuracy: 0.9887\n", + "Epoch 36/45\n", + "200/200 [==============================] - 1s 4ms/step - loss: 0.0415 - accuracy: 0.9873 - val_loss: 0.0875 - val_accuracy: 0.9812\n", + "Epoch 37/45\n", + "200/200 [==============================] - 1s 4ms/step - loss: 0.0211 - accuracy: 0.9923 - val_loss: 0.0771 - val_accuracy: 0.9869\n", + "Epoch 38/45\n", + "200/200 [==============================] - 1s 4ms/step - loss: 0.0390 - accuracy: 0.9870 - val_loss: 0.0878 - val_accuracy: 0.9812\n", + "Epoch 39/45\n", + "200/200 [==============================] - 1s 4ms/step - loss: 0.0426 - accuracy: 0.9887 - val_loss: 0.1170 - val_accuracy: 0.9775\n", + "Epoch 40/45\n", + "200/200 [==============================] - 1s 4ms/step - loss: 0.0316 - accuracy: 0.9898 - val_loss: 0.0849 - val_accuracy: 0.9850\n", + "Epoch 41/45\n", + "200/200 [==============================] - 1s 4ms/step - loss: 0.0321 - accuracy: 0.9914 - val_loss: 0.1172 - val_accuracy: 0.9812\n", + "Epoch 42/45\n", + "200/200 [==============================] - 1s 4ms/step - loss: 0.0503 - accuracy: 0.9856 - val_loss: 0.1074 - val_accuracy: 0.9831\n", + "Epoch 43/45\n", + "200/200 [==============================] - 1s 4ms/step - loss: 0.0305 - accuracy: 0.9925 - val_loss: 0.0868 - val_accuracy: 0.9862\n", + "Epoch 44/45\n", + "200/200 [==============================] - 1s 4ms/step - loss: 0.0256 - accuracy: 0.9919 - val_loss: 0.0781 - val_accuracy: 0.9875\n", + "Epoch 45/45\n", + "200/200 [==============================] - 1s 4ms/step - loss: 0.0241 - accuracy: 0.9928 - val_loss: 0.0824 - val_accuracy: 0.9869\n" + ] + } + ] + }, + { + "cell_type": "markdown", + "source": [ + "## Predict some images\n", + "Print the image along with its label (true value) and predicted value." + ], + "metadata": { + "id": "ml1Kna_DuJrL" + } + }, + { + "cell_type": "code", + "source": [ + "# Your code\n", + "\n", + "pred=np.argmax(model.predict(X_test),axis=1)\n", + "plt.figure(figsize=(16,16))\n", + "for i in range(16):\n", + " plt.subplot(5,4,i+1)\n", + " plt.grid(False)\n", + " plt.xticks([])\n", + " plt.yticks([])\n", + " plt.imshow(X_test[i])\n", + " plt.xlabel(\"Prediction:{}, Actual:{}\".format(pred[i],Y_test[i]))" + ], + "metadata": { + "id": "qioZul7_uiYq", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 735 + }, + "outputId": "4bf03180-0abc-4307-9686-a5e8a1032340" + }, + "execution_count": 19, + "outputs": [ + { + "output_type": "display_data", + "data": { + "text/plain": [ + "
" + ], + "image/png": "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\n" + }, + "metadata": {} + } + ] + } + ] +} \ No newline at end of file From 1ec6791cd240438767be249616b0c70dcad198f0 Mon Sep 17 00:00:00 2001 From: Anurag Singh <106547853+anurags04@users.noreply.github.com> Date: Sat, 16 Jul 2022 03:38:29 +0530 Subject: [PATCH 6/6] 200171 --- Final Task/200171_Final_Task.ipynb | 1592 ++++++++++++++++++++++++++++ 1 file changed, 1592 insertions(+) create mode 100644 Final Task/200171_Final_Task.ipynb diff --git a/Final Task/200171_Final_Task.ipynb b/Final Task/200171_Final_Task.ipynb new file mode 100644 index 0000000..b84cdb3 --- /dev/null +++ b/Final Task/200171_Final_Task.ipynb @@ -0,0 +1,1592 @@ +{ + "nbformat": 4, + "nbformat_minor": 0, + "metadata": { + "colab": { + "name": "200171_Final_Task.ipynb", + "provenance": [], + "collapsed_sections": [] + }, + "kernelspec": { + "name": "python3", + "display_name": "Python 3" + }, + "language_info": { + "name": "python" + }, + "accelerator": "GPU", + "gpuClass": "standard" + }, + "cells": [ + { + "cell_type": "markdown", + "source": [ + "## Final Task:\n", + "This is your final evaluation for the project. As decided, we will be predicting images of people into three classes: `without_mask`, `mask_weared_incorrect` and `with_mask`. " + ], + "metadata": { + "id": "rtI19Rt-H7Uc" + } + }, + { + "cell_type": "code", + "source": [ + "import tensorflow as tf" + ], + "metadata": { + "id": "c2CiXcHQTbX8" + }, + "execution_count": 1, + "outputs": [] + }, + { + "cell_type": "markdown", + "source": [ + "### Loading the dataset\n", + "Make a copy of the dataset given to you in your Google Drive (keep it outside, don't put it in any folder to avoid inconvenience). Ensure it is named as `Mask_Dataset` or change the path (the variable `data_dir`) accordingly." + ], + "metadata": { + "id": "QKDPyiZTIm1c" + } + }, + { + "cell_type": "code", + "source": [ + "# Mount Google Drive\n", + "from google.colab import drive\n", + "drive.mount('/content/drive')" + ], + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "hNEMe7XsIjrK", + "outputId": "0a5fe144-3cb2-46f2-ba4f-02ecdef0c515" + }, + "execution_count": 2, + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + "Drive already mounted at /content/drive; to attempt to forcibly remount, call drive.mount(\"/content/drive\", force_remount=True).\n" + ] + } + ] + }, + { + "cell_type": "code", + "source": [ + "import pathlib\n", + "\n", + "path='/content/drive/MyDrive/Mask_Dataset/'\n", + "data_dir = pathlib.Path(path)" + ], + "metadata": { + "id": "8CXzo4MOJOl8" + }, + "execution_count": 3, + "outputs": [] + }, + { + "cell_type": "markdown", + "source": [ + "### Know the Dataset\n", + "Most of the code is written for you as you aren't used to these libraries. You are to go through the documentation for your benefit." + ], + "metadata": { + "id": "YHPHkGyDKscK" + } + }, + { + "cell_type": "code", + "source": [ + "# Print image count\n", + "image_count = len(list(data_dir.glob('*/*.png')))\n", + "print(image_count)" + ], + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "PzbSy-vXKjD-", + "outputId": "3fe3505e-126a-4c80-d463-5259ec4fcd60" + }, + "execution_count": 4, + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + "8982\n" + ] + } + ] + }, + { + "cell_type": "code", + "source": [ + "# Print Output Labels\n", + "import os\n", + "output_classes = os.listdir(data_dir)\n", + "print(output_classes)" + ], + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "rFHWFYj5NCVm", + "outputId": "efe81f50-6085-4e56-8312-c9258fd3ade1" + }, + "execution_count": 5, + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + "['without_mask', 'mask_weared_incorrect', 'with_mask']\n" + ] + } + ] + }, + { + "cell_type": "code", + "source": [ + "# Plot count of each ouput label\n", + "import matplotlib.pyplot as plt\n", + "\n", + "count=[]\n", + "for label in output_classes:\n", + " this_path=path+label\n", + " dir=pathlib.Path(this_path)\n", + " im_count=os.listdir(dir)\n", + " count.append(len(im_count))\n", + "\n", + "print(count)\n", + "\n", + "plt.bar(output_classes,count)\n", + "plt.title(\"Statistics\")\n", + "plt.show()" + ], + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 299 + }, + "id": "fESyMw90KaxN", + "outputId": "7a7b662e-12d1-4311-a9df-499a8b901d04" + }, + "execution_count": 6, + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + "[2994, 2994, 2994]\n" + ] + }, + { + "output_type": "display_data", + "data": { + "text/plain": [ + "
" + ], + "image/png": "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\n" + }, + "metadata": { + "needs_background": "light" + } + } + ] + }, + { + "cell_type": "code", + "source": [ + "# Check some sample images (Use of cv2)\n", + "\n", + "import cv2\n", + "from google.colab.patches import cv2_imshow\n", + "for label in output_classes:\n", + " this_path=path+label\n", + " dir=pathlib.Path(this_path)\n", + " im_count=os.listdir(dir)\n", + " img_show = this_path + '/' + im_count[0]\n", + " img = cv2.imread(img_show)\n", + " cv2_imshow(img)\n", + "\n", + "# Your code" + ], + "metadata": { + "id": "HDSJ2Zk5a14s", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 401 + }, + "outputId": "b90d23eb-274a-4b3f-dfec-cfff9ee66b38" + }, + "execution_count": 7, + "outputs": [ + { + "output_type": "display_data", + "data": { + "text/plain": [ + "" + ], + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAIAAAACACAIAAABMXPacAABg/klEQVR4nG39Z5MlSZYliF2mamaPuHt4kCRFmndPz6BldrBMIPiGHw8RiGA/YEQwuzONZkWyKlkQ90fMVC/Bh6vPI7p3vEQqM4M+N1O95Jxzz8Xj/oBEVWSudZnm4+FwPByOx8Nh2c1SRAQRAYBFkBABCAkA3MPDARABPNzMzDwgAJGQEDAiIsDdwx0BAMDdAQIACJEQEdEjwh0iEBGZ3N3UzCEAADzCIwIAACDCAQCZGREBIQIcSLjUWkt1661t4T5NlZlVNSCYSEgQ8eHu8M3bNw+P9xRB4W/fvZ6naqrqtj/ugenTh6ftsoW7MCMgM4oQVZZSt+bff/9TBB52ixAihXbV1g+H5c3b+1f3hyIEAF37pv2f/+V3/9//+ve/+/6H02Wbd/v7V/dqsDW18D9+/8Nvf//dp+czQjAhIgAiIhGhAEBhXuZ5tyzH3f7+eNztd4f9fpnmAvmgEImIiRAgPCIighDyZyLADRCQCT0gECEAIBARERDJIiIi/0ZAJARCKkUConVFZCImIkZUMwclDzcHIGYEQICIcABn4VJKRFjv1pWYRLgUKYUVQthREADMHTBfPzJRrXLYzbtlmljADNx1awrBwsu0TLt52s2Hu+P1+fT0/tN6XSFwmpZlN22tuwYG1Cpt7a463e2nSVRtu27TVIUZIBAjIAKgkjwc7x4f7r/78cdtu1oEE+/vjg/3R3eH8AjdffiIYEjoDhGxtt7UZJqmZZ7vDofdNO+XZVnmeZ6naaq1UoyHxkREGOHhgBgAEAARgIjhQYhAFAEIEYGAiACRDw8AmMIDABAxIoioFkEEcxNhBKp1mqYqJJfLxc5nonBAJGIWJIyIcEOMWqWWor03DwJEBBZhYmYKJyMCQKRAwMCgoCIyTbUwE6CbuVthQhRt7byt8zK/ene8u7+v+0mbCgZoJ4zr82pbi0mYyMzBdD9PhIgIhLHbT0S0ijAFYxAEITkEogHicb979+bNm+9//vjpdLqctauI7JfFmaYqh2UJ6+t29XBiAo8i1NVlXuZ5mud5nmud5lprnUSEmRCZCAmJiBARMCKDQz5pAI8MKAyI6B4YEJBnHSDcM3wwc1CeEkREYRYhc0PAwoWI7u+Ox8PhfD5fLk6EhJxvi0QCwt2BuAjPUy3Ma0SYE5GH5yULDwQkIneHACIkIkRapvmwX9CBkMwNIAgRCQEBEBCCzNic1KN1Ml+mSgG29m29Qvi0m8PMW6si88ORhcitCk2lcrfoG7shITASojirqwgf97vHh/vdDz9+Op03X8+X8/H+bn/cEwkxz/v55w/vT6eTmY+XCiEiRYoUkTqVWqdaayky4hQ4IiEGII4ofIssABDoPiJzICK4Z2zCQIgAIojbwXePfPqSf7RHIDARUq1lqoUQe988rBRh4pc37u5BzCy7ZV7miRD3++V0vpyezxGBlFkJ846GOwEI519C81SrVFertRwO+92yAzNTm6ZpqjKJEEB09UbRe7TO6hNTrXw5a1s3d0VE7Sph+7v9/u6gfatFCiPtqnVkIWTOtw2M4cFi8zw93B8Pu7l8IGS+Xq+n8/lwvDscdyhiEKfL+Xy+dDcmaGZb61JEqpRaa5FaRJgIxlc4AOZBJgAAzLgPMMIQ5UkfvxohH/jIm5ksMRAAgIgCx5VC8LwMAIBAiNu6rte1qwoLExAgiSCiaSckEi6l7pfdfr+IMCJE4PW8IiECAgATBoYbIAARFZFSihAJMQIgxm63vH7zuNTp/Hzqm1ei/TzPu7nulrKbEQPU/LrZthkGBYT79XpBjFIlIra+bVPd7eb9bleYmGje7SIMMAiJs6BgjBAHmKbp4e5w3O2EqHtcr+vz0/P+cJzd1svl+vy8XVc3ze/dPbqazLWWUpAoANzdzRzR2DLv5mHHCLxd4EzCkWkAICDCzczzOkAQEiLlX5H1S1D+N8ColSD/GEfHtjXrBojuAJ4vFlzVA9SNEQk9tLe+zV4LyPV8Xs8XDGSigAgPhAh3hJBCBEQBAlikLLt5t0yV6c3rV8f9HjEgPNSimwTMtdZ5JiK9Xv3pbOdL783ACZCJwMHNItA91vOqXSli+vpNPe5LnbgUZIDw8PEAIIBFxKOy7Jdlt8wIdL2cHXHZtut6AcTz+fx0em6tASARYoBbmLkQEQS4eZRwCPOIgPBwd4Sgl4AQEBH5UDOd+iiIIrMxIkUEIhHSrQrNLAzw8sIiwgPxJZNHALTetSsA5GGi/P7DPQyRnCSIIux8Pp2enrSrqnFhKSzMEGHaEVHqVEoBACSqtd7dHR4f7u4Ou9083d0fprm254s4zLUKF7Tw54v37ky9bW29aO/auoHzPO33s5lRYQ+31kFDrV2fT+t+N4swMiJSIBMSMyC6R0SnCGaZpvlw2N8/3O2Pu0+X8+V6xU8f6zJP867UYuZb75sqExUmADALQWIipPyWI0aRDhDh7uiANn4kExgCgkdABCMCoCMEj0pxlECU5aOPnJ3xKUaYyuAOAICBgL13UzOzcECE8b4BI9zBAhEJyKhtTVsHQAJiZip02O2kFNXeV9KuVWS/203zDBDm+ubx7utvvzrs9q6NCEOtrWt4zNO87BcmbNdLu3R3D0RgpFpEGEyRZZmZuASDu7XrhriGKgT01tu2kVCECxOyADNCEGFlNmJCU7Wpzrtp3tUiwkjUmn769ETM0zQtu8MPP3/88ceP5kFIvevWuoSrO3hIPiYz64jExNkEEBICwaiBAhwIxjlFDIcIB3fPZgoz6oybiRHu4RYQ8JI+AgIiEIMJiQjMNcIj0MNH8YoBbm5mRkTEHB4WZgB5cxBhKjJPtYg0CBAj90JUhJYqtQgzfvvV69ev7sNh3a7b+bRG9K2DG0b4tlnlQDAN7R0AS6kyUZ1LpQWLBNJi3l0BAgG8u20dzJCwtYYQhqtPVUoBQowgQhJBEWGe56mb3t0d97tFVbetWeDpdGbm+4f7Zbd8/e4tIj6fThFg7nt3IQACICJiivCuLcC5sIRABGSMydona1BARAwAN3fPVjej0S13wwhKERB+C0KQYT8CAjGQgoLCwRwsInMPAApiYESEmamaCAJgIHazUMuPysKm2LYt1LS1vm26bTgJ0YRkIryb62G3TMzX66Wv2+V0Nm0ABOoYsF3RlSLczQIcEK33Ei7GPMm0X3iaPcLDEYGJmRgCXHuohhu4WTi0pqqQJQMAMZIUrhMxz/P06uH+/u4OAHvrAeTzVGoFgNPTc2tbEdrvZhgPDIWIssPX3sEdRIjIzFyVWYDyHAQSZWeV7XA+e4t89uAeDvi5UhrVYQAFxUsi96yMEIOFidjdHdEc1Ex7ZyQmNogIVzVVJSJAQiIwc3fwcAwPg3DwYGIwd1dwwyCCKISCCO7r6cIebV3Xy+VyufTWIsC3RqbX61wIw83cAh2ZkTl6x/Cyqw/v3h4fHrhUEiEmzNvPxMQhGEGuYM3NOmgAEAIiBGIUUlGnqYrQ8bC/O95VKe7W+qY6L/O82+3Ol/O6rlvbIvEYQACQ7KhMNQKwSGFCiDALNxQmzJQdkSEoAgMjwDP3D6ggAJFGbELCjFgR4fkmaKAYjgyIgYjzPCPx1jYPcDNwD/bsMAIhXgpKqUKMHq5qvTtEfnQ3610JkRGnwqVwkYKOGECAYXA9na1tqna9nq+Xy3pdzWw9nfrlUkQKI0Kom7kBI7FcL9ettzrXNz98/803X90/PLAIEiGNZ5AxWAozYVggAzFBnj83BCBQ2VrZpC7zrtbHh/vDfoeE122rl+v1uu4O+3lZ+PmUT28kxggx1XAP98rZegZ4YGR7iYg3bMzhpeABQAACJIRsvCKzRSI9NyjGIyB7VAyEcDdHBGJEBB9x3ZhgnmsR0VIAg4XzCjFiYZZSIqKvW7uuvW1ZeASiKkR0QqjCGAUru5t1XS9XhNjt9o7QTLe2NdVuum3Xvm7PT0/n52cMA4hsI8xdISLwtLXT1oLg+MOPX//04c3rRxYSQEZgxgxESLxMdb/M8zRPy1SWCZmsq7llvDU1Djzsdvvj8fXD3ds3j9Nvf/d8vrTWfvjhRzVjYTMfBfqtRJHeOyGCOVYQ4YjIij6bdrB8G3iL8QPHQ0IEjkDDQIZERgklU6iHjSIVwruaeu9dtRFTKYwI7983NRXBIpWIAbBMUmuRIswkxFV4qRKAz6fzem1IXiojhIdpV1cHIiIBDwwPJzAD1e0qve2y6JUqFo6MtUorcno+XbZ109Z7z6LBwTW8uan6ZnHa2mVbPeL/84+/Z5ZlN706LoepgDkELMv86tX9w3H/6rg/7veHZTcvsxTxACQqlWstFnG+Xp+v59emlfkXX729vzt+//MHVX0+PTtGLcUhRER7v+VLEFNFFpQBk2Q8d/AMBVm8QwQGAOKAR4kQOYAsLDCIRLAisnumT8sU2rX3bdu23rbNtJk5CRGDqbq7mbobAJZal3ma5jpNUy1TEd7NM3rRzXvfPn56+vDxk0cwURZp7k6Q3R52ZlMxkfUSP2tnwMPh8OrVw+Pjw+G4Z6YwRYB5metcPfyybZYJxlzdm+mm2tW7+mp2VT1d12vvAZBNLwMKgwjvl+XVcf/u1cNXjw/3x93j/d1xtytFpmkqtchGpZZa6zzP63b98PzJAr959/juzeO//P77LKzBo6t6hFo4jFIdAQWySQoPG4gVM9BoXW8FUCZfwFtFGgEGkGW7IHG49761tp0u5+v1qqbgrmZN1dW27dp6T8gmwnvv4ebZawIIc611qlxrKVJqKULoZqZep+LuH5+etk0DggjBHQEKc2GpIoVIG10AMIIQmEURu8f5fF6WqVRB8CJMRObd3C7X1cK7uZqbWTNdVZv6tbVz17Xb2nszy2oYIRiRhZjodG3ny/r0dP75p/d3y3R/2L95fPX46m6/2y3zNC/T/njIFpdLwQCyuNvv3r26vz8s53Xt2ltX73Rdr6fLpTVFJGFiRkkczd0cGAFlwClCTG4eA83J8gbQxw0AIAQiRLPe1uu2rufL+XK9XrdNtb9gHdp7a23dVjUlzg48urn2bqoebu4JkSIBE0kimYgRoOrZ5rtbmBMiMzOBEFcptciuVqwVIA9LEKAhRm8asfZ1XkspQozLVKbC7mYQCnHdmrkDQjNr2pvq2u3c2nlrm5p5ACIzUmAhqsKFEy6TpchEhGbb2p4DIWDb2lKnV/f3r98+znPATAkLmxoiztP853/yqz/89P5///t/UrXrujWLTXXtsXUzU0AgBDFzFCIiYS7CVUqVWpiZMAKzxoHMBwmIZrcKYNava79eL9d1vVzW63rt1sw9sj0LcHdV7b2rqbt39Ze+TXtXU/PQjMfJlBExUgIeCfMljCzMhMGIwlKEi5QIMDchqnVCRIhwCwAXpMhHnTgcYgEMEBAGgzLVukyX1tR8/PHhWe8X4sM0HReEQEJiJkKsIlVECItk+QNVqDILExH1bqfTpXNHByYm8Fq53t8JorO6OSK9fXz4xVdv/+U3320eVIqhWTMH4jplYR0RAhEIyMxTrfM0TXWqpTARvnRQ44s88ptkAGh9u16vp/P1fL60trXWVRXAPDKLewCoqqr6+CHr2i0bt/xHdmXhgzrIXwSYLzDLLARIIsgHOpJ8A3i4G6h5096dEsASYixUWEhKMAEzFzkeloeHu2k3uZoBPJ3Pl+u1WXMPxGy0hRAqVybirLozwRAScwJhwlm7AREKoyAgYXIVCno+n9Fd21WE52lZ9gvvZzfr2h8O+6/ePD4+3H04X7FOdZG1fbys2Qck/hNSkgwoZZmmZRpPn4BgYMvxEvozOBBi27bn5+fT6XTZtta69j7asohs2zLUEAJCXiJ3MwwQJOBwxADOltleiiUPD7csghO3eOmtR0VMOOoAQAhENNN1u0IgIImUIsJSa6m11MK0m8vDYff1V29fv30stZj2AP/08eP5fG2t9dBAMgqJ7F0QiUZBneEVAUfjTuaOiW/fviW8QYvq3lSv6+ruVaQi3b96df/u9bxbuPOO999+/e7rr98+/dNvt9aX456Fw711w/FHgMy1ztN0t+x2dS4syZfHyNEQNxgNEZP02C6XD09PH58+bW1zcw8fWHS2YziAYvURVQgify8FvLBr2SZEeHiYmbol32mW3bX7DdCg8XQw2yFABwgmRkYHVw1CLlXqVMtUi4iwLEUOu+ntq7t3bx/fvnt9d3ckRAsLa5fnp7a13ra4XnvPcs0I0bOlCRqqA8oDRAP1JYwAdUcbJ0EgmIxImFCFLWKzHj+oa+vbVqZSplrmSUQe7u9+8e1X//S7P77/+Qm4tNa7uZkFDHxHDvO8zPN+WeZakngfbPvt+OHIu9y1n0+np+fn8+XcWlNTACRAIXKADDtE6AmzuBMEM1EhYUHEhI0GcOpu7uZgoQRQiN0xMFjIP4shkmyGWwoCxCAmJiZkRiQkYmKRUkphFiIiLES7Un/57u2f/9kv3n71+nA8lCru5u5z4TBdL+vz6el8vfTMTx4QGJgZiBkpKLqFj8AIRIgADgON/1KTAAGIUYmWKrulPh52gEZo++N0uN8vy+tpv3v1xn79y1/c/Ze//8fffHfZ+qn1bWtbawBABIgo8zzNtVRhGW0QpfDkc+2DBIBmdjqdPz09hRsTFmHhwRy6ubl5MCCCO1CgECLTSKXhHqbqWd4RCjJMgkTobom7dVXVMPMIM8vnNQh+oCHNGP8IBHSIjGJ4w2rzNDHCcTf96ts3f/NXv/rlL7+e53m520st3tXVdqWa6unp6fsfv//9H7e166qmiW9EMLEwultT62YQgYScmHJCvwBAyETCFEiAgGEOfnVfr9tp65+er0/P5/VyXsSPC+8O07Lcv5bXv/zF+et3b5Z//M3z1sODmaXICLAIMtdpqmWqVURuKqAXjmXgat36+Xy+XC4RjhCFmOVGjYUTo0i56VGSlMTERyMCI5iA5zJQP6LMv2ZuqpBsgKqP1OwBnk/dHbOv8wxBQJSFGyMBWQA4gDuSpywpSuxK+cWbx7/+i19/++71YZqklEmmOk0h1rdNAF4dD+8eH6Za161v3Vo3G5eNu7ltFw8wBwAgQgLKioARmXlcSSQfCEuCjAzmEG5IG8DP53Vdr+v13FrbtvOv+vXw9S+++frtX//1n//Db7/7h9/88dIaEk7TND5zhOzmpRYppSQ1luKqFwQZANX6ul639QpmE1GiRBkb3S0iaQPwhKYcwLN/A8BgZBIBJA8wd/NwU/Mwd9N89mZq7mbuAR6Zlt0gIoBS2OIRaOE+6BkkyqLIANCD1A3dPdBjP9U3D8c3D8elCEMUJDYng8DC0AnpuCy/+Pqrx4eHANy6bd0yyZhaN/fwwSghIVMSpRYmABphCYcNNVkSSoFIQiiETIwQAnbBIIBSvl9b6x3+LGR+fP2rd6//7Ffffnxer/29rp0oew0CD5mnSYSYOV7i/g3oxAB3ba2pat6OMIcUrbkjBTkO1RuEu2ZtOUI2EkY4QoZSMzdztayUwB3MXyomBnQiCAMHR8BANA9zzUM3UNIAhJS+oEf26miB7mAWbo7q+3m+vzvu5kmECJ3AwTTMsRaRKTzmWt++fv3rX3779vWrn09/3FSLiDuoh/kobzAswMNgVNS3YBDug9mLyDtKCAjEhCIoxJJMY61aysdN8ccn4t+6l9e/+GoG//bN47/c/9Q0fn46XdY1xRxAIKUKEyXy+ZlRgcj/ylhMxELiZI4aEGAWMe5jRFiWk1nMp3ZuKIfAHc0twrKWYi6Y/IY7Z69m3pUAEayr91ttQIExXnNWUIloD04MPLJDT04U3SEsEGA3T4fdnLViZEcqQQhCQHN1MO48lfKn337913/263/548/X3oFIu3V3G3Cvv1QfEYE3kQEhjvRPiARVZCojCYa7gxPgbqm7ZSrMAf5p7e4Qf/gRWJzw8Ve/+Ort6+NSL4dl7V17t4DUy0kpMuruG6eYNNhg0vNtIw5hFVH2mcTggW5uI14MGNuS6XBERGJhEmKMgEQVmCUAu6qGuRsEmKmamVuEq5u6R0AyPYSITB6h7ujOxMJsHuCDcmaKQAIIwEBCEWGivm5P7z/GYbdbdjSXmEYNgMLAFEzR8Ou3b//9X/3Zf/2n3/j3sGoEgPd8juGAiCGphmEqTAWlMEthKcxIjIAIpUgpZcTejK3g+92yW2Zzu17WptaCGwjWeb6/f/31198Av31198efPvRtq1IMwcLdTZj4pdkdnSdgeFi4mW6tmRkhIjMAuo0zngSFRYxHFqgOvbu5B4AwlTIhS6IMCfdZROtta+va2nW9qnUA1N7dFBES0XPT0Ra9fJ7U8AK6h4NTYhUB2S2XrI+YpUgp5fn58rvf/bBdtq/eWiEudYKIwWYHgjBNld0fXz/+9Z//6X/893+4tP/y+x/f75ZpmUA11N3MEEOYCnKtUosQUCESZiFiZuGUt8Lg9gCCkURqrfM01VIC4H45Lst0f9h99frhT3759es3b3bL8vbx1V/86a9/+4efv/vhwxDUIDKxwBffaiC+RI9BBhMyMiEnfzDasYjM4ClMNbOupknqCpMIsTALAJq5uav6uq7ny/m6XS/r9dpb62rueBPAMOI0L0zsbtkhEpIkEkAp/qAkqFOqa6M/SLKfCIWIA+G0rj99epZS7u8O5qBuoupqLI4AKAWmAA0KePfmzf/yH//9Dz+9//nDM3JVNAhNVU0+WbhJmwrj0Gpmh5ynCQkDIDzBjMLMLEzIiEQsInfL/ObV8S//+k9+/etvqnAleH13+Nt/9+f/9Jvf/+4P378/Xd0skJBZMs7iUKq9yK2AECVfTwASpvAqIjIJJEcASIAOQEQgSABgbkhUau3dtm29Xq7n6+V0vV7XtbdNzXT0Y5g5YtTwIrWUu8OxltK29bqu67atWweEhGgSoxUpNzUgEGbeE0IS4pIqssJlN+/v9tOyIHFYeFOvHhNBtlmOxO4E93ePf/uX8PvvfvrjD5/+6Y8/nq9b9h2je6ebPiYiPDTbgsFzByHcxJOI7qTQAYKAkAowM+528yLgV8HnE68b3y3eLpOUX7x59e/+7Fe/+e4P19/8jpqszbpugl98jQI0ewFmAmCizAQdNCvBFLv5LUMkuzdqIwREtG5P2/Pz+fx0et62BgBJDPSMTqUQcwBqN9PONPTpAC6Ecyna25DPItyumifzAIWEOdGAIlKkEDEBCtNuWR5fPbx7fPX4+LDbz8TkHuFuqt66axAwkiADyITmNerD/av/9T/93eWy9v/n//t3P3+8dHM39a69905FKEScSicX9i8km0EQ8EXOTJh2qnWal/28TJX2k7ze77969fp4d4dEem28VClyqPJ3f/Pnv//hxz/89DNANw9QF2aGSOEDvIiiPus7Af0lzfrtwQ+sIhJ50IjWs603j7iu29P5fLpeumqRstvt5lIBt9Yb3P4KiMCwpJQxUtyI63oF9947Ik5VKnAigalBZxFhwVERsbDwQC+x1un+7u6rd2/evbp/OCxTKUw8dDBq2hqvV54nEMleNoFW4fLrX377f/uf/q717f/1n//bb77/2QE1rJupaphuTRu8kFREyCmCyJsgTJVlKnWe5sM0H+bl8f7+zav7u/vD64fju7cPb969PjzsScC0QyAYTnX+01/+4u/++i/++V9+/w/f/aFta5L+t1eLN/lCkHtkRxYEEBgKEeEWGUHy59whIDS89b713hKSVl1bM1Uh4joVKQyUUUKYh5jRNCIYsRShG35HxGa2bWsgiBABw0tHPgCgpCGAkORFQM9YpRx2y8Nh/3Dc3+3n/VzmqdZamGUkYHPvauuKxEiUmgtkBoBC9U9+9cv/B/N+2f1v//m//fDhtLlp0tiat9Zc1Ty745QHEhFWkamUuZT9vByX/cN+9/pw+MVXb37xi6/ffPX29dtXd3e7MhcH79bc1bsiipDMS/mrP/3V//x3f9P7RddLNxC6pZ2BeEFAIDPm9z+qbPAA8ggbw0huHgmodbUk4Impcq21HA47RFKPrtq7JgtQWI67g6eWOkaoZYQIZ0QmylsIlPkvmyxwMzcLNzIuArUiU2JWQkRMWKXsp/nN3fHd491xt+ymMs91nqdSbhx34sxA0S1UoVYgBpkIIKC5235//Ms/nw+7/eP9w3/+3/9/3//08fmyaoACWYQmd6qaRXNydoVpKmUu01RkKuVut3v76uHbt4+//uVXX3/77v71q3k/E0S4ZjVBKFHzPGk4vX3z+Hf//q/e//xju5xP65bgD8IL7QUYeFOex60vvlUgo8m6ST8RkZmjjMggIqUUJnL3rXVTjXC1uF7X67Zlj5zIVoSbqbllmYg3tUXcRO4WYTdtBQBC5griUmuRkgmysOzqfJznb969/tW3X++XMleppRYpREgYRIxMgeDulKGTBRjQst0mNAvrAPj119/8z3V6fP3wX/+Pf/7n3/7x6bpeu/XUqyIlIU4RSCgslYSZqpRdqYfd/O7x4duv3nz91evHh8Mylei9nQwxAD1lTvBCcSCq9lrKu7dvfvWrb//ww/f6/Q/y0gDnJRjJddy1JCRTlBaBRCyIEehIzB4IUSKs1CTvbxHMAbEWwSIAYOYYQRDCnDQkEpn6oLGYhTn/anfLLNLNWtdE6kVqtkC11Gmaq4gQDXqSy36e37y6e/f67uFux0BT5WkqtVaRHGtjYglkz3MEARhJZgMXdEG16AydILZXd3d/85d/cVj2h93+n3/3h0+X67k18yG4AURwYKJaapXCLHMt94fdV4+Pv/z2q7ev72plQoiR+gPCHCwRXEB0QKAgQmGSQrt5efv23fHu/rvvf/r8Am4NASIgOHjq/3BEPgggolKqqgkGB4DgoLoShMNAoIEjjd4nyTCfiky8w+yB3RDRhZdaLT5/JR3WVLv23g0AmUsphYUBUbjUOi2lECEjVxYWmUTud7tffvv2zau7iQmZhImRP8PXGdCYuRQkDvMw43kBrKEK4cAeQGBOEgViF/brX30tQvN+/sMPHz48nbfee7O19a4GFJV5KWWZ5qnI3XH35vXD11+9fff2fpkEzQgAINyciZHI7ca1AiACODpGdw2AAvTV6zdfvX39xz/+XsBvJHgWNrfy54ZFAAIwoZQSgGZKycxlcApyJDMTGNxjuJuDW5jeHq/11OhaeEDQCHeIRByReVtNU6fuAAhcqhAyM0kpSVLkuROmQiI8II7jbnn39uGrr97sdpNax2AhRiJkBGJAAoRQ82hOFCKQJd2mKAWoAjqEIjZMbQxOk0WIvX51T8jHu8P3P3w4PV89aGvaWg83QihS5lIPh93r1w+vX9/f3+93c5EU6GagVvVUl6AMhRVg0ukAgI7hAOCP9w9fvX7zeH8vMFDnGxCHL70Acj7jCEYGIUQyEzXPfJnFYzgQpdIRLBEwtd41BxPDLRIqSw5ATRP2xwiAzOkDcCSRKjf1CzGxsNRSplJL0ghEzMxMlbkKC9Pbx7tv373ZL1Nr/dq6cIE9TFXcBBmAwAE4ALqar9HdN6Wp0TJDrVSEBFE13IE4HB0CiUXKVMp+mX7x9Zv98fh82lxjO6/bdcuRlCz57x+ODw+H3W6qhQmBEZEpzMENHFwNAcZzCYTU/bhGQPZAgTBVOex2+91RcIxd4MsIBaTCiIYykQJFUggvxs4DLwtVcwekfBueM5M5JTmwywjNSH+Tr1uEZby63bSs8PNCBOWLT2miVKlzKcJlTOLRrStmnmrZL/PxsDDG9fncAN2cUJFoqgWDEEKMycEN2QFRkbvKRoVpqlgLVmGRBHyTdIAwQOA6cWtCMCO8e3X37qvJLfpm2tTUTBUihGWe61SZACiCYiCmQV/QljaKlBRPuJube4Q5WCALl0LLshzv7uXWAxPFTQBKSExI5O75JFNRZeYZOJLPcgeiCAck93AKJ4qcazVjCFcWIjZrHjTYMXKWzIgxet3PqFOkDjxnBavIJIn3MgCxCDMSQiJiUynHZWfdfvjx5/1UH47H3TKr2XZtJ17NvOskjtgMPJi5TlVKYTNSwO2CnO0YIWcjhJQ2ABGIKLVOu8U/fMLLs7iWeeHXByTx7qrqZgMuVg01BBr4+KCyki51CHAHRBrAZvI4FuodzSoUFlp2h7fv3knWecky58QjMyNT3DphYgIIMIcYdRKFoyMIgkcQRKoGkilhQCVECjdEYkJzzhswmOM8Izerg2zqcri3MFepk1Tk0XAhJfwnRUrC7wQgiIXIt/7xaUM0ebyfXj8ed8t1XbXb0/N53TbhFdV96+hQ5jrt52me68gtkfN9AY4ELMxUuDBzzvw4Igrx7rg7/fjj048/sJT5eD/vj4CUqHQQZegMN6QIAwsgckRwiASMkSMCgTyxzfDkoELNwDXCkLlO06tXD2IeiJbPnRFhKANf9HA5dAcQmoPwKXlD1ghw4eSqxjl2TxG9M5ta16YY7MnaOyIGvozShINnMZ5yABauwoUYkdzDku1jFuYMO4QU4YyAENq269as98f741dvX//i6ze1CnyM82U7Xa79+XbbPRhAiEstU63zTXQmBTHpV/esj6daWSjAtXcIn+f54fHx1TffAtPPv/3u9P7T7nBX56Xu9jzvghkAwTpYB2TD8GAOQoKB18AgjDIHIKABGGIQooNb9HDuGh6CRYbeGQfHPB7lDZu4UTRAxEl+pJgvIpgCi0RBAAJPmsDdXDtqBBUkBOpooUhOt6mOLAeoDIENIedDxoAUDeWFEhgnv4owMUaYaZgFgpq2dTs/PX/95vHv/vYv/4e/+6s3Xz0+n1c1fD79+HQ6X7t2tW3btnWlAEJkBIooTFOtpUitSIwp0WfEwjRXqZWRIcwI8XA4hOnbb75+9fW31/P6/d//48/f/fHu8fXucKi7PU9TmXckEu4GQAHM4JIvNLkKjwAkGvIuSH2/u9sAm93atkL4PE2ZhMPBMXHpxDwCRhMBGV0CYUxdE6GGEQIzMfBAyHloeFX7UMPdtIVGDIO5B7/9Ucw3nVXO1SAQ8mjiPOWZSUSQ5I+7gSuYWth6Wdu6MeLf/vWf/d//l/94nAojbcQzi6k9n68Xba31tm1dm5lGOHpAhCBVYWEGsICE8rkwFcJaqNYR55jo0rRKXXa75bB7/OrdT999//vf//HTtVUpu/3+cH843D1Mhz0WFigpdU2lBBBFYEAgAxdB5ICsv+FGMoaFmbu1CI9SUDIoYwSAIwlmLkpeLCJpiZtzDAJg6kcQQZhe3gvFgJIwHEUY0QOC2KiYO9wY5qGFGVLfG/Zxu6jjJwULS8LgCAFhyYAhOIT1tj09fUSP//Qf/vY//Ye//urV/Xo623lrz+dPP77/+OHD8+W0ae+tqXb1JCAsQyojdk2QIgA8CJlgEpoKdyXzaYpQJkRwt+9/RAJ/fPUwLTNUPln/+acLIC7zvHu/3N99uH/1sLs7LoeDzPMYoEtpEglAgIeCMWRxA2MOMW7YYFfMbI4gmbuTiYSX2APjRQwe6iaFdAc1DYib7UUEBH2hp8BbDeoBgcQ5iZeoUgxt7Wj78kXEy3vIX4ZCnONxHjms6AmoeETv7fl0UtNfvnvzv/6P/5c//eab88fLtm3ny/rd9z/+w29/98f3P53Xy9C7qJmnVsBHYAXwQEbi1JqOeEoxuD4AiMu69dYE4vzh09NPP725Pz6+eXM+X7bAn8+XAJy7yeX60+l0/3R6eLh/9ebN8dUrmQoSETMyEVhWSeTuEVw4cgh72AkM0Zm17oiAJCNSAQLBrf0d5DQOYAFurzDcIYUhL/cG4wai3saSMOALH53bhGveoFtfnZYo4zUgIWGAR9qdjLdh4RapEAGPgNbadds+Pj+/vr/727/5q19+/bVu+t3v/7j29ecPn377/fffvf/pab2o6807IeeP8/Hmu8e4DZskkcJDDYLM/PG8/vC7H5+fL9bawrgjfpzL+4e7r745nZp9vLRPWwOADYKZpeup9U/X9bn1h+u27JZa67SbyzThIA1QCFP3gDIEEO7ee7eIQHR3CwxCGeMNecZxZO+szG8JASBBHxuGWODhqZu6xTaASJuJ5DMjAlO4laKaTOOANwCVCDhrplR8jIxPDEOymy20paLBvJvZtrXruvbe7+/vv/7qm6en80+XH3/3+++eTqf3T5/en54ufe1mMabfIlWRZt7d1d3dEKlKmZMBwbgZIzAgfrz0v//t9//lH37jXXfM97Xe1dLvdoyEdf7U9Kfn02oaEL1FlSqcnbWee//w/HzY73e7/eHuuOx3JXNJ4RAxBMYQJByqGvQIVfUswSLUQ9wD6GVuzynlwYFDnpxtYsIFAOBgbjHo4IgxqBlx09Qk4j8qjDF1ipzRBgOAB/p98xUKGIKcoeaC0VdHGEB4eNfedVPV63W9rhuVMs1La/0ff/O7T08ff/7w4XK5rNu6We9DVGpq6ojN/Lq1a9c104E7IR2W6fFuf79MRHyzpYBL97//7Q//xz/9/vl0ud8t+2WehIUEpTjz6nFq/aLqiBCgFgCmEUzU3K6m194u27a7rqdt262Hw36/282TV/OQCMdwICmSvLpFdFM1BcdAAkKB4QQxgo8DeBjehiTjJiW/Faies7iAEa6ASKMNzOATjDiuflL1A98Ghi9cakbwCYw86gGRJVMAOKVNkFlAqHbtTbWv63q5rt1CajGzn37++XI+nS+na197WzVHfk2b6tP18v50+XTdPl3Wy7Zt2hlwx9MsIoTr9UoYi9BSsgOlddOfns///N33p8vl1XG/q2UqPAlX4WlXZb/4VKJ1IAogN02NE7s7uAVyECjGRqvqaduW9XpZr3f9uN/vamWWIq3UiaeoLGIeXbX1bmbggCJERSyCAm4+ZLdaBQOQxnHM4eEbKZOIUc4Fpb3DuBCpsodAj0T/bgwDZu05aDcA8JRMZ1AbGR9Hms7B25Rtubk2ba21tW1dzQPd7On8/IeffjDtqptq067a2/W6fjqt//Lh4++fnq6tN3dCWJh3pe7qNEkpxBHBjDeqz9zRAM7r9sPPT66+r3UuMosUwsJQF/7mV1//xV/8hSPrb7776cNzgHuweYRp6nOz2okO7lFKcSLcGsDJw7vrsixTseoWOAViCUDCxH3Th4oC1FwcHJFpTALfdHmZiIFuNX3cmLFb0XJLAS+TFIhIMGSriJRZ++ZegzlfFj4yjLm6+8sLBsw3EZAGjNrDu4er9tbapr3fitlm/ny+vK9SOcC0ba1t2+V8/fnp+Yfn0x+ezx97BwAGPNTpfl728zwnS4cgTLupPOynIqRuCGDd1qYReDwcDzurjIyAAPNu+Ys/+eX/9D/+X3/1p3/y3Xc//PDTh90yXzZ16AaqBqOjEvIADsCAMIPWEFFdLVzNtq0fDvsgDII0pZDCTCQsCg5AHgBukgn3VoDeqpXbg04Mb1QOMZw0PIIykL8c9FsmD8g7CjdqIT9dkjv+coVSgp2pYuDViOFupmbdvLupmam2pq11VUtFDJj52tp126AKubfWzufL0/P56XS9NiXEAzMiznV6PBwedvuplhy0Y4IqOBWuhKHeTAHAAK9mUZijxk0eSUQ87+/uXt0f7vfLfNjP9/eH4/HQ4WoISKiYY4cRTjxqmGCI7gatpZlNaxwIIsyFgyIQSBgoAjAAzQIwUACJ5EZIQd6BpH4Tngu01HRm/RK3gidj+NAIjUaZEm0OGGU7ppD55UrF6CPwBnDk73d3CE0hjJup9gg17ardwjWVozZsFCMAVNetPZ+vEVUg1qaXrV+6GuI8zVxqGiQs03R3OB53SxUWTDuYLKZts8DwQPDA1f1p7ae1bd1MDcHRfVfnq+OHS/t0vrwz2x133/7iq8vW47vv3z/H1oERFKCbhWphAYBAgwAM4kHtubqj2dabbJJ4Szf1ltnNPYJzHI1Y0pkFkJL9hFtv6omyjmp+/AsCpFR3BFLPd5cACKbgd4gekgh9yd3j+IdDUODnF2Iarsn3m6l7v30L5uEWZpEtawFid6ciav50uqi2QtDXdlFrACBSkSuOur6UUksFQg/XCITAwQk5AxCBQ2wWz2t7um7X1puau1OgEJHEqfc/Pn36+Xz+c8L5sHwjXzXz0+XyfL1eO1ARAYzY1DWciImR1B3QmMiCzF1NSan33nuXIuZFNSfqwtxfdJ5AKO6aljSWtThmBL8ddPBB68ALfpA/mpOmHhCRk0kpt0qzq3TeIgJAGD2gZfb93GGEuxkkczqqWRsvNaeNks0BZBGiikTmDsSm3UxP1w5uZr2rdg8bAiJGZgTsjrZtW98QRrdF4CloZEQO0PDz1p8u62lteivbkkAOwqu1n07nP/z88cPz6dWr3d397u3bV+9+fv3jp+dPl6sP4qJABwcz4CDyMHAjJ3YyNzNVJLViKc7umhrSQHQP72FlIDRiqlmLAr5E9Vt3NQYtRgcxJtVu5rkwCvlM0C8zIy8Z+2ZZE0NDFMNgEUdHHA7gSJDeeAEaYTdGHzxADSwwUJiERJCYPNjVCT1YzbbNm4UZdIfwQDQ0aAHZPbh5qsyZGSkAQBAKIXN6k9jW9dq1mRkgAlCgAZC7qq6tf4TzP/zmd9+8u/tP/8Nf390tr98c/93f/Ol1257P54+nMxCXOjHztq3djI0JwSE0PGdp3N1yFFEtv/8YJs7jEKYGx8NzfijMjZCIERHdwjytIAiGwduto3V4qTBH65YpYCiKBt2YNZVBRkbkHGMxQMwDiogQhJ5uZ24QDjc4O5s7Ne/hDkiccuuc2QL0IKdwCeil5h/fGdnBAWDt2tY1IAnBYARmzxoMEYmzCQ/K8VP1Tb17RFgO0DJiC1vKdH+33M316fL+v/7LP/7lX//qsJ/D+8PD/m//w58Y63/7+9+2boC4dQocs86p6iYPM7NgC2fXMDNz7WqlmFtoIKKHOzoAMAmWSSwcAskRGIeYBLJtjVuG9QEN+Qtz/0XJFME3LC6GuVbKHgai4Rh2G+JGHOjPMN3KqiiF3jepnSOY57kJQEKuKPWmOAIkBgpwYAT1QHYhAqLe+2baTS0MEB3GuJRCv7U2IMHiZGEEGABdtanm6BmGBwEIYThiTJO8ev2wX0qdy8cPP4v3cEDmx7v93/zFL93av/z2Rwj65Tevf/7w9ONPH7Z1Y+HCDDT6Vsdwgh7atLGJqLF5oSH1J8BEyzBCPD2Hh1z89i+Ys3Y+hPA3eGUIvAJHSh0w9SDzIrMMRE62ZhDKtgoA04JqXJ24ddlJOWRvEAOVGKNmgMhCUpkL0ksep1RHqrsDILFAmk9sm3a9ISY59x1Iw23cHQAsvCNZpG0wmocF3jRrEOHQHSmu2/bx6VmYCO50P3//xx/IdLebI4BLnYv8+hfvrtfth58+nS7XZbc8Psb795+094i4OasOt6S4jcPnUIcl3S4YaOYRqkQgXR2Zkq9KMS4OW+iguNHmeZ5vmP2XHQO8ZOYUdTrBzf4wPwEkqcA47FzHuxy5Agf4ET4qp3DLC0eISFyYKWuscSwAA1EBNAKIGNAjNLypqvYxdZq2+RAWBl8gi2Gekw1EQwMYcPsfQnKrTGTul3XrvYf7urbffvdja9ub1/fLMs/ggLiby69++Xbt/Z9/830AzXW+vzte12vbNlWt8yQikirgeBF8DvkleFiYqkakIgDE3T0VLB6QOs3xlBFzQmGk5MBwRBqPYsDMn6FURAQiRnDHF6uBGPVTngp7AYNSpzF+RQwP2kzO5mGRw1+IyEmcjdpghCFAIky8HcPc9TZ/maAJ3PwnXg5KDP3MoJXMR4AcUykB+VZIGBHS0fru7nj/cE9EP318NtMA2O02pqciddotx+Pxm6/frmv/7e9+aAFfvXucKmwrQsBcqxTGQbliBvPb3DmkiUc3IyLv0bSJDeID0ILQIWtQAEiq/sbI5DUYxs+3VJDl5Evd9NJvJRA/oOwR8CFuHn7xMuExCirPH7Nwzdn5vFTEgDf+ZqhrIIbXikGE2gC28uCnZiNxJ0/XNbrFxtuJjzFfOTDw0fB/ZuPgVqFTd2tmFHHd+m5ZTlf98PHH06dnlvL263e747Is9U//5Nsi0lo/HqbjToiOALieVzUnBmZiYgR0h64u3RL6fkHdeuubqmytE6IIBwQCM+dz+5yQb8cWPx8rTLD9SwhjfA35OgAlTRfgSfYQROR493D7vt20HOMDj9CcmI/hLEosgdhN8xAn1hwAXXvX7uFq3ru2tnXtFu4xeoqAMcI3ogshEweEm9uLvT5CwOCXmF8oU0cENXt+Pv3e+uXT03E/T0TLMv/86Xw9P19Oz73379+/f/fNu7vj0cy/+eY1ImtTxhChrhZqxYNF4oZnRkRritSQqU6VgDEn9IQnJtnWlRCLCBMwRZ7/G1jwAvYMzHk85bi5KPot+HwOW5CqarrdkxG54YZ1vKSQWxF1CxSJO7kjITGSAFJXa71nTMrrpeZpLNGt67CODVVV7R6RD5Kyn4oYOp/hDEQ3VB1v5fONDApgBLp1QmZ23cZalnVdlyrXy3WuZZpEhHd3x3meP304nZ6vrx7vX82v5ml3ej5fnj+entcARKbdbilS1q3BLf1GuGrvPYd6kIimqSKzRcj5eiXmZZ5oHNlMxwE0nhLc9Ip5CwbSOZqx8Y/POD8Mf5Oshm5v4KbBenknQ46HowzK9wpomcqJHMFMt23tvSNSIHTt27a1rh4BiKa9W7c0Rk7ECtP8I5gT08yK7DZ1BxAAOTAeERDIgCIsnAIVRwDOTIBESLUII3TtGIbm2vvlElJLnWY5t+fnk/Z++H7553/5bqp1murrx8PdcScsANx6nM+X5+dTLXW/JzdDlgB0c1VX1dYb4GFaFmaW3lpvrasyFbOA8OSHMWhw83D71BHoKc36/BBv72FI8PHlN1CS3iOQjVvwRSod0T/LoQSzc+cDYerKel97X1UtR0HBfetdWw+IIFLrbsN1Ls+JQ7jbTU4wupkX8BwJmUQIbBD9IEyFaa5lSpskiAALUwAQlolSZhVAVJjnWj0CHdbLuurJ1AHi0/ly2dpU67JMzfqn5+tc57u743rdTs9nAkIAVTXHWhFEzNJODpj5ermqeZmreLia9d6FswrACJBAHjg/RFb9+fR9lCf5E1+e6NsBf3nGgxcgR3/pmWE8qVtCjMTyHMDwFgWIgTism1vvTYjujzsH6Kd+4+iTNchOABBuFkM4NjzdLiekjW9WQQFAhFMRiMj5lklkqnWpZREuN9/s3pqbMXERYkZhnKRMpRIxqJlbU+1dzT1rmtN1m2cLKbjap9Mngo/fNK25NOawZya1UItNu4bXolJIpFBE7+rrZmYSiOreVYuJAUFQOBB4+lTditAb6ZgHLBMcfkZ+8h3kPY/PwWbEl89zBwCR9h2ZQm6+H55TNVzSODcQw8Ddl3lapjJV/HS+nq+X1ht4EHFeIh0Gs5TcAhMBQzL6t9JsBMDkVwmgCE8ih2XZz0uVMjELIUMgorspQgdI1/ZapAoVpsJCTAAQxBDBQIVYTZs5EnVVFu8an54vZjoLXy6X45vH43GHhL3nkFuEU8o0SivEnDWOmwGAkLCHb72lQrAWIbqhQ7daJmUVgBCIDmkbdksNt0yd/k+pwfsy3EMWNXFjgXPTQIKshJBLQzJ5MAUSQnTz3rW3/ub1/WE3PT19PF+ul8vaWieAUgiJR+MECGk0hpSIiKeHS/L9ER7GBMxEQJVpLmWp9ThNSymEJBCURwEBIBgRhHPMRpgqcxGmG7dBiEAMAoSo4ardHADIPK7Xtfc+T3U+HLiUukyl1vPlsq6tdwsAKRNQtN7XdU2AU1Vzo4sQsYdvWyOkZIFLLbmgh8EZhYBeupqM9Dg+MHz5NTAdHPzALaHfTj7dmLGw0UxhHl/CQHS7RbQIgNa26/XSWifEWoUoXTIoP0B6HCBAyksQ4qWqB0IhBr71GgDqQQiCVIl3te6mKsjosa2buzFCbpthTrkuZOWe6QgDw1FvRka3jg4QSEgYQUPd4rquapb2sEAUiNdtC3BV9eHeGWapzove+8CKmMhJtUlvHRGQQbWrFdWIaClIRqRQRSQC+vykESwgMTj8XM+kpCRnbeImJroVSDdIY7RVNOpWDEDOZSovsBya9XW7bus13M7ncxFkKQ6hptlepunT0G+BCzEhMCEBLvNcRAYqkfY+IQghiJXLUmrhHGwLgBwHgZdPPr6J8T1EBHS1jPYDIffoltGfFEITXaT8PMpMvbfz6Rlcw+3ubrfUIkwQ4ARmiiGlVgu3TSOCGN1du4lnFICwCE9TdwuRXHBBHkEYL3cgJzYzbsPYrncrKAeZNgj6UMsz7cMBJGWLSMAIAECDHRrNKFn08dqSBwt3iOfz2cNYimqueVC7rerwF2uoCGaeCleSw2431wrurW2q5oCqGhFMVISF+AV5S2ovWaMBGwC4RVfbem9JX3nAWBSGFqGmGg6IQhR5C4SZOCVe6d2f4xpdta0qyLXINJVAul5WH+sTQM3ato0jFyAEIMKlFhJSVfQQZiI0c0Snm5FTohk+VlFhusgMgA4B4Gb2ecNeRikCAZBDTIABPOpafGmxbz4TzlIC0dy23rZtRfDD3aRdP3x66hbXdeva0yieMM0diTwAkAkL426aDvN+N02IoKoTV0ELCCf2G9CXHgzDgiuRMYOmFqEO0Xu/bi0HIiNNAQmJ0CO2rptq5LoSJkacRe4Pu2WZkIZ9kQib2/W6YmBhmYs16hBQJyrCh8N+3dr5cgEIJpYyeYyhJelqXJJyIgfobgZBhM6DlhHKrRSJ2nFqSbNmf6mIXvoC+AywACL4QAQ+d8WjdMp3OMDoQKJCFAi2at8aAEzzVKS4RzO/XNaIYGIf9LRHICMSozDPU93VutQ61YIIySMEQIZNJKBbw+F5u/HFyDFddvSGX+SAAi9TmQvXIrtpEhF3f7pc3p+ez2279u4WRXiZikhq60a6cY9ShZku67XWeohoqslJr9tW6gxMUtObJkewh4ebrNpYeTJ3e5lYB0ZkxHALERxVmiMS88iE8IIQfdHuvCSJAGQak67+GRAFf5l+hSHUGlmCCJkDgxmLyAXism5bSwczklJUNVwHkOeOgFLrcZ72c81hYiJ0cFNNHWgCG9pdzW2sWhkegZFWySNPISGJ1CIy50SmyCQyiyzTtNRKRG52v7ve7Q+Xvp2up6ZdCi/ztEwTMSXn3c0dQpyLMBdEphxHVEPVvvUVaau7ZZorxZjVGkGDQrrpddsQsbBUqUhoYWqmOAzT1HPtCKZ/0i223HrM27hdhqmXF+EDoE7IDhDAXoDSL7q4cRkIkXDrfV03dUMid7hcL9kjZ6uorvnQhHmu5f6wv9stk1BKtRMDNHPr1ruaR+JItywKlvAKjv+l20aRUkqpIlXKLKWKECETFKRJqjAjBArjhMLySL61Y7OGDCgYCD1lwxZuHkFX6BExT1MqPEIqEIe7uV2uV1i3ZT9PpUCEmxISC5c6SXhsW3PzZZqEhanAsJCE4U/jMZw1EMwdb6hOEN44YR/TArfKJ9kbHxNhL4khYfGb29TtLWRp5B7rdX1+frpuKyCysF2z3Q01s+QUGScuS627eTou+ypsrmrmFjkQ0FTX1nuzpAdwbA4iZq5I9TaMVkQmLpVz8ixHTLEQF0JCLIhVqArybTCWKfel0izstAR5zrxvvfkWOcoCAebRTXEDnWukrsDd3Fv4qbf11Mv5fLffVWF3FaI6TaVUSURAQS8AiDjbhERVwALAA7sGAAswsZu/lJ23Z327DcN1K9fKDXIsjd5urXS8hNqBU0IW8UMs33tf13Xdttb61reu6sNUOvFpEKJZym6elmkqzObZyZubdfPWrXfdemtq6fYylalKvW2ASXFcmqUTIwmS0Gc6KT0uMZiCaqn7+bZOBREJCzvnYmTBKOjo3Rx7khRhyhHhCMycO5ByAGvLFYHmW9Prum3dwuUqG2EtzAGxbtu6rhIRSBSA2tp2q3CqcMl9MmaVSDjcEjN3HA7c8OJ19vIaRh8Fo+UdUzBDdeUjL49V2QB4g1sRAqLptq6XdV2btq01VQNIu1YnwoI0lzJNZbgLO1CqgtTcvXfdumoKcmudpNY0VUEBiFyN8EJ1UyBBELqk8SZk8Q8EAa5AFEHmtHUzIxGuhVlgt5+oMFY2hK3r2pq5oaIQzaUAULeOCIiMFN10a60wZQkuRGEOEHWeAIFL2S3Luq3aOkZIRIQZMk7zVGuJiG1rwxSAGHiMYWDqzk2JKYCJKIarP9w4FkyN9PAczxH50cL44PcBMqS4AzGziN+Q0W3b3L2U0t0RlTDDGpOTEJZ6O8+IycO4u6aUVF09iHipyzzVScqtbUaAIEAehjNIAIxIBDIGdIwGHR94s+tz8KZbXLsIT1VQqiHnRhGZpmDQcJTiCF2bKqkO1SkQa4S7lmle5vl4PBx2h8v5+XQ6I5LHcHhA4bW1tm2U5JWbYHovRpjaFi3L/iQAnUlurjVb2yAtyszdPAUOw5LAwcZUQTALesTLhrfbpQAAMwMAMzczYkbK5Z9g7q01Nze11pp2dRtdBSEgkQgXZiEOwHXdzpe1dUPiFB0wQeUyl7mWkkOQdDN/zDpLMArdDIcQiYCHrcttx2uKYsAIUIACb66MIlTEyYMRCyPn+QaKYCIpUqP4oOqMEdSsb7ZGXIgqSxp1EHPTDpCbrMXMvCsnBERUmMXcwsExGJFrnWpNl1hTVfBJGMah60RUseTAOyJKLYSUlbZrjqCAgSFhQJhb9gM5Mp8vIGW/Ikw3BD5xEg8vtdSplpY6T8pJlwDLo5x6lgDo6jnhA5G+jlxYJi6TFClciJLb4htDhIgiOZ2a9hcBYUOeBBgxtGwODg7ISK6MVKUGYRUMISAMZqMsx3Lm1ImRmXHYh6S3LhAEIE3zNE1TAFyuVwpQteu2mll3e/r0BGHLVI773TJPCKTmEkMfECQkzLUUEU6VPiN5uJpGADARcSTlnfI3ZwNHDA9IY0difknOo4KCUDURYWILTwSNmYEwkuONyDBNhLXKfr94TKfr9Xy5vjgEQiQDDYhU68RUEvwgICEW5OGqSkARhJhMCxEOGxbmtB6FnPYBsFunPtapjNoYyBkxBMDctANsEBRVSmWsNzTrRViYOpe8rERIzqUgM0/TlIa/aSoi5s01ILbWzLxWkVJLmVprrWvXkBR/lFLmaUKk3ruHYYTgzTnYLALmeSKinGmBUT+A+dh04G7pqDeKHXMISFcyeMnEEenHGQCuprkRjMdhbb1ft21rqwes67ZtLbs0CgQONSeKWniZCzPzTeBIOZhLzJQMloE7I+YiyCymA9AwVxSHhyeq0031dkcJITABT2XmAuCoQLipwda6O1Awp5MbvfAf4/9SQ4aEEMIsQm52uaxIWEtBllpLmed4Oqs5U6QLdTdf19ZVEVDc9Pb5ycx6N2w4lzItE7N4hHXNZ8dMo+iM4VzqX7If+WnSZdCdCFPwUlg+82VD2RJdu1q6eTAAmPvW9HxZz+dTa03Nh8YRESHM3QHIuQQwS6215JrVsdiKCnOhHPIZQN5YeRNjiXc+++7eTM29qzZTVQXAwizCiNhVu3UimopELcJsAd0cUKUjMRUYq8Hjti5k2DkyOaTAONxC0XIWzNyfzpdlnomQSOZpZiLwuFxX6woEu91umScxtQBY29paK0RTrfM8l2liKRHQmuZR3dpWpE5SWShVEhiDz4KB1IebhkP6bqYmh4gCUS3JTMBsacx6okwiQJjT1O4hLMs0A1D0La8aEwBAN5toWJoiwU3JMOyNSy0lb4QHokThvIYYqfBAC/XeLbyZrr03VXVXd1MFD2OuUBCxq6mGiBtZU3w+n7SX3TJZCFIq8F1EAMBzxYGpuyMzl5QTqOcWssCxqgVwXbt2I5JlWY6HY26aCIvWdGubMM4PB/EIMCdAYOJSSUo3K2atg1si1zz+4nBzxfR6RfSx9VczIt/4+9vuDEAIdEgmIZ1qkAMgomtHQJZCzL23xGfyZlgACbNldzLWzlB6RxBn1iUhQCTgXPnB6TDsifkFwSjsk7ULAoPYXMfOK+sarqkMhnB0CzRzoGxcfGteiizzLBhFGCLatoJ1gkBCdUs8o7d+bVt3y3wfAMg8vIHc1UM9wGPZLdM8QcS8VATYep9LiYrr1noDRxIuMtpUwMToVS0lrarWe6ul5kbjCIdMnjc4LY/t+N0jLYE7qJqZlpvlfwCohZkTDOg2FUceDgZm1nvfcswiNSbwWUMxNEoA7qaqlSVHqxGRKeHbGIqUG7KUgyIWkfB1AG6mq6r7MEtLVC4CGBEC1A01nRoACEHDVJt2KjzSf7hqtK0NhioCAdRdx0pit5wrv7E82m1rzdwLi7lfrte+tcu67pZlKnVadk+n00/v35v7eS7vPz1JykLAASh6V3erRbbeMEK1w8vIKWHyM+5KXIhoCBoCIMCsI6KIZJcYZo5QpCCS9qZmEFCY/OW1BQANXJOYyHP/BEf0sWjz5ipBBLlWE2+rhTC3ITPkOoUBdQ+BwHhpjuEYaqZmranezOluXg0eMaYfAELD8GYPyUwQ0DcTYi95q7LiRFVHGmLriFDz1s0HL42ZRVQtlcWljoU8GZZ2806kPF+uzfx8OV+3DQDPl5WSEE00Mdy5FOLi4Ou6QgATXreNVaVIYTYzzVoHkiM0M8/VzgkdF4ettUwAQ4gc1rVHhBD7bXxDLe0TA8dgGuT4kYUFuGo3ywGLkDE2gYW5FpEikPPJQwngiKkwgBHzXtISjaLA1Hx4n6cjSYCmSSF+vrw3ygIBRYoIA0TX3ppLlco8lSKcsTqG0vYmZ1ILgGAambl1NY86TdNUHaD1bmoiUmqdl50jffz08fn5GZCmUtTsw6fnHNAIiwCPCZGYokE4CBGjwE0RMcI6AiKZu2/b1jV/KOcp1Kyrm2papkLan7j31iPAOcw851A8wsLADRPtcdc+WNwEfyLS9MiBc2eCTNM0T3VoXfMMari7iFcpSQQm6+AQ5oZfTIkkbceYTymQkBw90hp1BC8CIvjsNwoIvfdKwVNJ1Bpzs3WqCmzI2Yk59wmxUG6ArxW31jPKAeDWuqpWwPefPtV1Q6C19W426hMkh5CumkLqAFA3aA0AWAoBWPhcKjIniUVMJIwAlrMYZuY51jUm31vvCFC5EpFHGp54z7+SuZaCRMKeuP0YkEFKOeYwpI609cLAfPgsIkXKPE9FxN1zVilHzoKIEIPdh8X4eAk3xPXzV8ImyeUQc374VJrcqIwRSCDCwtEQMYR5rlORQkifZREjB+JoBwgg4QAkLki3HS3rugGgByCxmq2nk358isA6FWLR1tRsqnUpInRDJWHsx3EMyFUeiuAIkgQpc8IJmH0+IQFt2tRcSolANVdVohwchxfZ7KZdVSVkqiWXq3ouNM4BHUYkUtLWe+sdABA5x5CYUaTk8tLU6wESFyEAb4NBFGZANHc3Q8w3AsQcQxDlL4IaIgxPxo88wkwR0XM9WYCFO7gAM7O7K+Iyy26/X5ZdSrY9Qt1Gb5Kqdws1V3MPA83FItDVxs5s0/PlWmqdpppukxkOAZgwWDh3XyarSjdcP7qZOzKieYMIwrp1xVomKYhhbqAhTEGu7sPz1hwBereuauYE2FT9tqE2Ux8iZuSJ3NgzsAeCCABraz+dz9f1am5MjDknQS/0/ahHkTj7hrjFFndXU0x9h3YIyP1+L0xFdn5E4AEvq0bd0hXtX4kNIgLT2Q4558J3y+H+/lUt8vTxo7kiUbgzMRDbrVSjsXBnGPvEKPlMRKSUWrX15u7zNLXeImC3203zAuDeVyEqpcxzldE0DXIx9WvIw0oPiBwwgLLSTkUHmnlrrbWeLqx9VbsBO27WW7MbVvryKNxsva4s2a+6emjbrKtIyT8ty8lETDOdhjtC6C2KLFKEGYDyTKsagEYitEOyYu5uRBFGxMNLeMDdmL5ZAWGmEUDIEf7CSw8BO5GwEEfWVr3biri5YwQDuIO7EQcKZ+8JgRS5/Nvihq5GgJmLyDRPLGVZlvv7+4/Pn/74/U8ff7i8e/d2v1/CpbfG+/n+fifpHTyqG0wdASWraYTM5O5mSihZeOYWh26e6pKuZqpj0IQIENU0uhNLBjZhoVvXFhDEuQPIPSIF8pvpZtqsuxneAPqcM8sWC1O6QhxIYa7atSvfpPYpQTQzV42CBugeTMCIiIwsYO5mCAwIxFxqBVBzTcP3lwIoB8fAYapTEbqu1x9/jv2yo1TNeTBLYBCzlGoWPRc8xFhM6lnAad+6AkCtXuvEBZ6u6/uny2631Dq/f//j9z/88HB/t0zlcj4fj/M0TcI89gzyrZZIr/ZEK7V74UDECNi2HlubppLFKwCqGwAAk6fHBkTu/QkPB4UAQsqdm6O1QhiWdQDjsd5eRiZPt8izRcPRkggpANNTXQpnPUZj0zK6R+sNIss4QOJSit/88IGQuLDk6CSNsT9H94juL1t58LYjCgBuTrtl29bWe6m6q3NmoankWRzoGyDmEsxxmIgQuVYpcwCEm7fWe8B5Xc/P5/P54u6BEO6tbQC2tmaByJOUwrlUivGGuoeFe/rLwlCfjQbKwXpHogCgCGemAuK95z42IFKzfFvZvyXCl/JjZMp3ZmZZHlqEaYJ3Y9AyIjK0ZodCIkw87C9NW+s01huheTRXuGmKRjim3EfOqSUIREoUBS2J0VDPUvrziCwRwctOZFS3tW0G5mZT4aw8WXiupU4y12pqz6fzdW21lsNheTpfzuereSBS7vIqpdw/3BHBjz/8rGuzbu5+Pl8AQWSAthBRa1nmOleWV3fH1vW6bq23QaYPjDXA3cnVjDTNvQIwg68PzRuim2pvCaew8DCjiDzFdHNAwJyQycW1ZgqRZgSWaTxuxKWPQg8AQsMJDIWKMCG6x7ZtTCKSfenY8MClECERMhAQG2CYm2oEkDASs5Cjqaq65jMa+SpgNGgik4ibNe3rdo0wKYf9fjeVpOUThaLevQrUKrv9xDKMxplJai2Ibr5pu67r9bqxyLxUZFymKszMORbsEFCKTLVMhd3x4W7/9btX8u7xdev9w9Pz+w8f8iJ6bpQNUM1x9RchQxBimcoI0xCbjeFcHNYcL6VyatNGu++AQ12iaqZ5NM1du+a9GkOUER7gamknQLnyK6JnT0CIjm7NnInZ/Tafhjd3dRFkGSLO1pGoFiEU4MQnQT005XFDa5GzMsxE8zwDBK6Xtm5F5G6/f/v2FRFtWxNOWtwJyEwRSYSneTqdLj/8+P66di5lmmq4d69b123dfvr5p2VZlmWeZjGzOpcsEcGjFCYCN9OuiDTNOwGE1rW3XkUSLNHRioZHFA/FfnEnwMIicy2luns3BcDc4UglJ+KH1g4CmTnfQesdI4iZaDwyJskVF26bqkJyznDrtiHS0wSJEJCYgbBpLxKEBRCTG0t8JjAAiElGzVZK5EiQRdpOI5QsH3MGIIbrFhFRJk4apRp0VWE+LAfcHyJi07a1tkxVOAA6OO2Py9u3bw/75Xw+/+H7H0+XU++6LJPDiHx1ms19XTdcZmbe7/fLbvf0/Hw6nUVEVQOw1AJgbdsyCz49n373u+8EomvfAODu/r71frlcXHtEEKAjGiKaM0AglYok7ABb6+u2IiEjMjEyR0Rk+Y9MhELUeu/uiMDEdWzkGzMtfCtdHIJS15YW/BTojje9NTF7hHdDAELu6GguNJTInogmYyBYDHoyQSTkggyIaOHazc161601z10e4EQkIkGEYyMWmfq2ptkVTrUi0I8/vReMeZLj3eHu1f2bx1e7ef744fnj8ycuhA2EeZ4ng8v5vK7rmkLXIhXIW2/vP36S53NOFWbrWiYhwipViOfJ98vy61+++5Nfv5HXj48eCEj74/HDxyf1MyL4mKMgdw8DBIRC6rFujbBvvXfr5ERAwliIM7okIps52txUs3+JGK4C0NWYaJlrT+0DYBKD7o43+4nbWG+u+kh1aErlh/WaASKiRpgaB1AtRBhIDoAkqbtvrQNGEYF0Dw3rvan2YR7xOXQRRI5gpGcq7JZlqpURd7vpq3cPb17fEdLXX707HI8fPzw5uAirIgSZ97COGIfDUkrd1g2Aa52u55MatG4fLs9udry7e3x8PJ/PrbUQ1PD9bn58df9w3D0+PCCyHI/H9x8+nU/nTfv5stkQ4UKCxj6OpFPvw6wY3M1zADz9t9Q02xmLSOA+J3pYxMyadlAlEhbuvetYDB5x89X5nGVuVWHcBg4iz3bhcO+qqU0yCIfo1gmJs53P4mr1gQxqUzUP3/A2m+OJnDtoZL+ZJWkAmluqpoiwTnWel3C/bCsLn85rYZrnerlcmAUgjnfH1vX3v/9da5rO3yxl29qnp/c5L7H1/vx82pp5RNs2HGt5ItPJer3e3e33sAtDkhrIrbkI836/n5fp0/O5qaXiaqgGIRDAzN074W2iBCnSFye5MIDWmpSSlH3u6gBAktRbgOU5Bg8bJg7X1pjQkxgYJhGDvYFED2CQMYERHr33HvEiaxCWNIWuZUrYUnOaPp16s+sYHrUdbvP5quruI2CPv4gIwcPcDBDnaT7ud11121ZT9YCt9+fny8Nhbmtblp8DcJmX8+nyfL7mMbWz12na2nZ+PpHUANjaZuGAQIB1qhHg5m1rpZTdbnc5n56fT9o1Ig53x7U5nlZR1WWZ7+7un8/XCEt4VkiComtqvdPDL8d4Igtxuy19TGwSyd0jfU0D0AOsZy4PACSCcE8eGAC7meptIS4ARDgYxzC0H3g/QBZ/HmkOj6OZQzCw1jYEVKSNkIlE2M0v16ubl1KnOhNzRFopu47VQTbeM9J4v6lhESmFEUCYzGxrzT1ExMOurXmAqgWChQHgum7r2kspobpu27a2BL7Ss1CE63w4vnr49PH5fLrslkOuRDydTq9ePR6OhzQf39ozieyPx2WZbFdFmAvxMk13x6PZp601RqrCOZaV5QMFBoaqgQeS5r4F1XTV4lxdCmOQEtM18wWJJBzOWOZOlJ1txDAP9JuMCHIWisZTxmFnjINl5JsKD2kwDYygqgHBLBGuXc/n0ygLqAlIeORUQbhBwLAuoc9QHYUHMBdObxlCdHdhjrFGwgNATZ+ufXeYXkmdpqJdLVqiRiwi1RHBLDb16NvxeNwfDg7w6eNzaz1bQBYm5m3bzM1URYqHX9frjz/9MFcEf5DDsg+H42EmegS39x8/AaLlynEIxmF/D4Du3iIoMFn0HNfKwt9c8+FaRCo+8BYK9AY3ZtAfkqZE2+Kz94q5OURKl7PP0KEmCSRIXVvGrPz2mXM7RWjotm7am3tIZcRQa8nDqHZXJQQR+SyfHwMmw5fWTM2CEPfLst/vWmvruqnlNFguh4rrtZ0vGyC4Q1O/tAaEXIpkQdja1vv12q6bPp+uTdu2bR7+fD4Vlvv7+4dXr06n8/PzKdwKEzGLYIS1VEcDYZ3r3nYQ8frVPRKdztd128xifGgEvM0WR7gqjBErjwy1ZOYRUqSU2nvvqrc5pRcF1xc5dtQ8SRGmx/6AcwGDCEsRTwYdh54ZP3PuOdANzETMOQMKt9OaS97NDBUs2etUdYjgLQ9/zjAANFxtEAnV7NPpdFnXw25XquiqDi4kVSQASqnm8fHTxdwvW1tb9zSDM9t6n6b59f746en89Onp/PzMlUuRw3E/T9Plsl6v67ysrx8fa61/+ON3Veh43D3c7x+Oxzev746HRUikQMylbmUVoXkqiMQil8t1bVtAJHk2rA9z8OElIgNgmHkgYI8+ZoBeHuhNOP0i1H3hqfxmcfzyVoaQNC2jxp+feBrkkEQ+3PyNqgRjbtLNHHLzE0IMmNYJUrdZAJxuO4kICRFy6gBHCye5LTEdWDT8+XKlsUgbDGxDD4/nEyJ4rUWEhQIxzKw1bWrn6xmQdrtjqXXezb0RBOzn3cP9Xam19x8vl6uqni+n3rfdbrk77v/kV1/96hdfPdwfJyHXLgDBxPO8AKJwASo/f/hYWWKegWlrLdGTGOTG5xGll1rFw3MvSKh/+fRfHvqXv/5W6eCX/5nvkhEZ0C23K41pMgdEd08jUiQHz9+aFSykugsguXKEbNOYBkCRYfDlIo8p2bAAACl1niZh6l19lC7k7ls3N83lfeJUE3py9/V6dzx8/e7NLwv982//8Ifv37PQ4bDfH3ZI2LatrdsQKCGq+Xa6LMtunhcz+/nn9x42L1NShbWW1w/HV3d7hBBwR8DU5O6mXQSfzte2aamlzNOnp09XVQQcFfsXIzJZqyTof3PAAnpZD/3FC/g/R6GXF/DygwkvGzgMnHgQTJR6q3A30NvQ9LhRtzcNNw08crpzjFo40Wxw0FBIjD3oRT3ctSMEAabnFgAIcs7NBAAi7Xe7ZZ4wPMK2bZ3qpOrPT2f1bmrHw15EdvvdZW3f//jT6XQWomVZENkDPp6eR0XnnvM/8zzt5ll7//nnj4+vjn/6i3ePr+6LFHmRcSMycOx3u6/evE6kQltnRGbS7toNEFgo4jbd+G+P8M3p8ovn+3LeR+FBQ3nw8txfnv54jojJysGNocvHoWbgZreh70jTt0RYb5x7EkQWhpEDthFA4WODekCAIw1bGs9KIAu5l7qohWMQERURIhDGIqTd1uvKRMu8Y6nXrb//+NHc53neLctUy8dPTx8/fjCDejzIVLetPT+ft9ZKTfE6peABiYkLA5ZS9/Py5u3jN99+XaRI2soGjB53quXrN28nKd/zTx+fnpiAic+wjlCLlEKSz6fui5Dy5an/8inHF1fn5WX8mx8Z/wk5R3N7eTFaibj1EDBugP+r13+LjPmRbv/l4R65BBHJVT0cydPHXpjH0ll3NxvK9fBQy/WWGNi7brghhIgk/rq1pqaJhhHzslueT+fzZSWSbDsu1/V0OZ8vZ7cAmqc6i7D2FgBdbd3aYb9/99U3b776Bcq+RxXZydjqFEEAhTkXp8rj63mqD0+H0+X686cnB8wyFAEhNM1i8cVU94uvL5/vv/nCLyLGl1/+4iL3JaYdGdkCIdBT6YuJ33s2t3CTrRFBUpLuOMabbyNTlNPulHi3hVMkhIjJ+aHfyOSXz5yuxhEoRTUaaWE+3B1FZL1u5/fv1VQBgdgCny/X0/l6WbXUicaGme4eSFSF98vu8fHR3X784Qdmxoi2dTyQhXz/fv34v/3T3//Lp/uHB4mb6ydGMCECmBoSLMuMTDxN196fz+dOaEiIjITY0dwhXXg94F/fgJf487lY+uJnX77+z68Hv5Ap/KufGvEtj3zQWMY0UsBNqDN+Zcpusz3O3i232of5KH0RI0BvUhG/6exe7AU9wjz9wC1CtrD9cZmX+vR8vmytta4ex+N9N3z/08fLZTWz3OUuIuaGbRvfDtH9wz1E/PTjT5Gj64yt99///vvf/P5Hdajzbl52AreiL2BcYaS0JuLCXBiXuR73OzftaoDUm31Omjf180tAeHniL+ca/nWq+PJZf/mSXt7Kl39OxBh5zYXQAUM8YEP2MujFrHLSHOvzZJo7jFXyAMkzBIS7EUAQBADa4I9y3CbI3IhS3BgQ5lwQRUphltbtfG2XS1MzDT//9GNuPM6/GIhYRFXP14upMRAAbV3/+MOPdPNQWtfVA0QmZscihRHC2vUs8GKHiyPn5eojIpTCS613y6LHHhFb7ykyRvOxj3Soyf5VhfNlwPkyG78ccHd/ybr/5unn16iIbPjefhnxMwfDS6p/cdqPMIhxGjwch5+CIA4YcaB+iIBD0Bp4KxmGe1qKVgCAmfbTAgDX3u/n/br263Z6//Hj2nr2nlvvpZTjsle3/N4goGtvvTHmVJ3a1Vtr+2W+v793Mwic53neHWSeERCQzLz1/nl8JbXXI6anrTxgETns94FgqrWxDot23Uxz+nP0YxBfzO3897++rJ38NuJqQ4ryuRDKFPplQ5cvjIYy3m2AsjezTxjSH0CEHEZ+0cWn/C7J/vyE7hqBNJxbU8+CSewAqHmOIDByGy6mbq6fTmIeQOLemzaRVAFQYCBzIt4iQl0gEAtRYKjnh1S3y+UMAVNdSp33+/3heGSpiMIiTCS3R/OvosWtPAFkmuearu9Pp+tlbQzQ23bZVhxrOF9wa4h0XMSRHr989P/dEAT/Ohy9vKS8JV/ep3y3HAA0zIfG645hfoZpOQBDXOHjJeEwTIYUFABGxOBhhnZ4nGCibOUAKQgDcGut9ebhzTsjpyOFusHADQkBTDXNsZtFuG+9A1G+Hhd3d2YChHXdhKXUUNPW2rq1GlwmqdM0T7OMB/E5DowrRYQUwg6p9L+/u0cS5isd9g7RzLbeBr7yEsoDb+ZyADfvyC8P8pfV58u/vKRlGkin/5sqdvziWw2ady0JrFspfHv0X1zCPPiD7Hqpr/LMBJiHDwFH4qBxoyccxrLM/JWRhbyqNTVAZGG/DYup2tiT5rptLcPR1rrctgPOyzxPk6ltW0+sm65XC5LSSq1b67VOCRPi+Ly5AmP8DwkEch0uGJPMdYZAEs4M+PHp+XJde1dLaTExIYQZ3mQp/+YI/3dT8S32/tvMDOPZxuf/xKHBHy3wF7kGX8qfACIQ5uyWB5b+cqHHSUP3MUbr4+iA57iLp72Fu/tcay1FDSlrI2aB0cPLCHI5UZW709ITfQyBRJFaSyllt+x2u52pEl3dYZpnlgKI7nG9XretSym5vxZgfB9jbCGHYRNGJyQDj7Q7Zo7weSpvXt3XWp7Ol6fT+XJd7Wad9WW0Gbou/Jwi4ktjrVF2ZQT4V0EpHz4ON5XwcILM+nH7dQFjzOJz1snyn4EZyXKNexKbOH42Xrrsm3ML3D6Jp5vp7ZY6BQvm5GXrnYSZhYPUDAGmWiLA3AIdAVmYmSaMWKqHQyATS5Eipff+6elTeJQ6HfeHedkDMbHkOHC4a+8Sn4MqAka6rwD4Dbv1wFxSGBhADh5BhLXIYTeRkEGsveWKGM+kBfAF9v7FDcg3CzB0J5+bg6SFR5TwGOrjL0ujAB+rFigZCMekWx0AkZEBw90wKRdKNsOSywcIC4V0U769M/eARMWZbOj+csDZbpASpjkjCtepANLWN3MlhOg+1VlIOrRwI8LjYXl8df/wsFftf/j+5x9/+vjpwzO4A8E0T/t5zyIBbtaJORAQYpomVW29//8BNnRLHfLlsbAAAAAASUVORK5CYII=\n" + }, + "metadata": {} + }, + { + "output_type": "display_data", + "data": { + "text/plain": [ + "" + ], + "image/png": "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\n" + }, + "metadata": {} + }, + { + "output_type": "display_data", + "data": { + "text/plain": [ + "" + ], + "image/png": "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\n" + }, + "metadata": {} + } + ] + }, + { + "cell_type": "code", + "source": [ + "# Check shape of the images in your dataset. This will be helpful while specifying input_shape in your Transfer Learning Model\n", + "\n", + "img.shape" + ], + "metadata": { + "id": "jWBEMC1FUfXS", + "colab": { + "base_uri": "https://localhost:8080/" + }, + "outputId": "c949a823-1869-489f-c214-dd742b342f35" + }, + "execution_count": 8, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "(128, 128, 3)" + ] + }, + "metadata": {}, + "execution_count": 8 + } + ] + }, + { + "cell_type": "code", + "source": [ + "# Check if all the images have same shape, else you need to resize them to some common size\n", + "# The code provided as it is above in the template will help \n", + "\n", + "all_shapes = set([])\n", + "for label in output_classes:\n", + " this_path=path+label\n", + " dir=pathlib.Path(this_path)\n", + " im_count = os.listdir(dir)\n", + "\n", + " for i in im_count:\n", + " img_show = this_path + '/' + i\n", + " img = cv2.imread(img_show)\n", + " all_shapes.add(img.shape)" + ], + "metadata": { + "id": "52BhBWRab5yc" + }, + "execution_count": 12, + "outputs": [] + }, + { + "cell_type": "code", + "source": [ + "# If the shape is variable, reshape to a common size \n", + "# If it is same, prove it\n", + "\n", + "print(len(all_shapes))" + ], + "metadata": { + "id": "G-Atau4Rfc-x", + "colab": { + "base_uri": "https://localhost:8080/" + }, + "outputId": "4509229c-e0fa-46c2-acd5-ad21305c9acd" + }, + "execution_count": 13, + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + "1\n" + ] + } + ] + }, + { + "cell_type": "code", + "source": [ + "# Anything else you want to plot/experiment" + ], + "metadata": { + "id": "F0XHxMo2RVQd" + }, + "execution_count": null, + "outputs": [] + }, + { + "cell_type": "markdown", + "source": [ + "### Model Definition\n", + "Choose a model for Transfer Learning (You may also experment with multiple models and keep all of them in this notebook)" + ], + "metadata": { + "id": "zSoUXS1cRbnu" + } + }, + { + "cell_type": "code", + "source": [ + "from tensorflow.keras.layers import Input, Lambda, Dense, Flatten\n", + "from tensorflow.keras.models import Model\n", + "from tensorflow.keras.preprocessing import image\n", + "from tensorflow.keras.models import Sequential" + ], + "metadata": { + "id": "QKZmIgXMTHfy" + }, + "execution_count": 14, + "outputs": [] + }, + { + "cell_type": "code", + "source": [ + "# Choose and define base model\n", + "\n", + "IMG_HEIGHT = 128\n", + "IMG_WIDTH = 128\n", + "base_model = tf.keras.applications.inception_v3.InceptionV3(input_shape=(IMG_HEIGHT,IMG_WIDTH, 3),\n", + " include_top=False,\n", + " weights=\"imagenet\")" + ], + "metadata": { + "id": "9xWLUibHRNGj", + "colab": { + "base_uri": "https://localhost:8080/" + }, + "outputId": "9425706d-eb03-4ab3-f7ed-28ac5185254f" + }, + "execution_count": 15, + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + "Downloading data from https://storage.googleapis.com/tensorflow/keras-applications/inception_v3/inception_v3_weights_tf_dim_ordering_tf_kernels_notop.h5\n", + "87916544/87910968 [==============================] - 3s 0us/step\n", + "87924736/87910968 [==============================] - 3s 0us/step\n" + ] + } + ] + }, + { + "cell_type": "code", + "source": [ + "# Print base model summary and have a look at the layers\n", + "\n", + "base_model.summary()" + ], + "metadata": { + "id": "J3TwB_GLd7BU", + "colab": { + "base_uri": "https://localhost:8080/" + }, + "outputId": "d674226a-5e01-4be0-bb86-70f17d29b33d" + }, + "execution_count": 16, + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + "Model: \"inception_v3\"\n", + "__________________________________________________________________________________________________\n", + " Layer (type) Output Shape Param # Connected to \n", + "==================================================================================================\n", + " input_1 (InputLayer) [(None, 128, 128, 3 0 [] \n", + " )] \n", + " \n", + " conv2d (Conv2D) (None, 63, 63, 32) 864 ['input_1[0][0]'] \n", + " \n", + " batch_normalization (BatchNorm (None, 63, 63, 32) 96 ['conv2d[0][0]'] \n", + " alization) \n", + " \n", + " activation (Activation) (None, 63, 63, 32) 0 ['batch_normalization[0][0]'] \n", + " \n", + " conv2d_1 (Conv2D) (None, 61, 61, 32) 9216 ['activation[0][0]'] \n", + " \n", + " batch_normalization_1 (BatchNo (None, 61, 61, 32) 96 ['conv2d_1[0][0]'] \n", + " rmalization) \n", + " \n", + " activation_1 (Activation) (None, 61, 61, 32) 0 ['batch_normalization_1[0][0]'] \n", + " \n", + " conv2d_2 (Conv2D) (None, 61, 61, 64) 18432 ['activation_1[0][0]'] \n", + " \n", + " batch_normalization_2 (BatchNo (None, 61, 61, 64) 192 ['conv2d_2[0][0]'] \n", + " rmalization) \n", + " \n", + " activation_2 (Activation) (None, 61, 61, 64) 0 ['batch_normalization_2[0][0]'] \n", + " \n", + " max_pooling2d (MaxPooling2D) (None, 30, 30, 64) 0 ['activation_2[0][0]'] \n", + " \n", + " conv2d_3 (Conv2D) (None, 30, 30, 80) 5120 ['max_pooling2d[0][0]'] \n", + " \n", + " batch_normalization_3 (BatchNo (None, 30, 30, 80) 240 ['conv2d_3[0][0]'] \n", + " rmalization) \n", + " \n", + " activation_3 (Activation) (None, 30, 30, 80) 0 ['batch_normalization_3[0][0]'] \n", + " \n", + " conv2d_4 (Conv2D) (None, 28, 28, 192) 138240 ['activation_3[0][0]'] \n", + " \n", + " batch_normalization_4 (BatchNo (None, 28, 28, 192) 576 ['conv2d_4[0][0]'] \n", + " rmalization) \n", + " \n", + " activation_4 (Activation) (None, 28, 28, 192) 0 ['batch_normalization_4[0][0]'] \n", + " \n", + " max_pooling2d_1 (MaxPooling2D) (None, 13, 13, 192) 0 ['activation_4[0][0]'] \n", + " \n", + " conv2d_8 (Conv2D) (None, 13, 13, 64) 12288 ['max_pooling2d_1[0][0]'] \n", + " \n", + " batch_normalization_8 (BatchNo (None, 13, 13, 64) 192 ['conv2d_8[0][0]'] \n", + " rmalization) \n", + " \n", + " activation_8 (Activation) (None, 13, 13, 64) 0 ['batch_normalization_8[0][0]'] \n", + " \n", + " conv2d_6 (Conv2D) (None, 13, 13, 48) 9216 ['max_pooling2d_1[0][0]'] \n", + " \n", + " conv2d_9 (Conv2D) (None, 13, 13, 96) 55296 ['activation_8[0][0]'] \n", + " \n", + " batch_normalization_6 (BatchNo (None, 13, 13, 48) 144 ['conv2d_6[0][0]'] \n", + " rmalization) \n", + " \n", + " batch_normalization_9 (BatchNo (None, 13, 13, 96) 288 ['conv2d_9[0][0]'] \n", + " rmalization) \n", + " \n", + " activation_6 (Activation) (None, 13, 13, 48) 0 ['batch_normalization_6[0][0]'] \n", + " \n", + " activation_9 (Activation) (None, 13, 13, 96) 0 ['batch_normalization_9[0][0]'] \n", + " \n", + " average_pooling2d (AveragePool (None, 13, 13, 192) 0 ['max_pooling2d_1[0][0]'] \n", + " ing2D) \n", + " \n", + " conv2d_5 (Conv2D) (None, 13, 13, 64) 12288 ['max_pooling2d_1[0][0]'] \n", + " \n", + " conv2d_7 (Conv2D) (None, 13, 13, 64) 76800 ['activation_6[0][0]'] \n", + " \n", + " conv2d_10 (Conv2D) (None, 13, 13, 96) 82944 ['activation_9[0][0]'] \n", + " \n", + " conv2d_11 (Conv2D) (None, 13, 13, 32) 6144 ['average_pooling2d[0][0]'] \n", + " \n", + " batch_normalization_5 (BatchNo (None, 13, 13, 64) 192 ['conv2d_5[0][0]'] \n", + " rmalization) \n", + " \n", + " batch_normalization_7 (BatchNo (None, 13, 13, 64) 192 ['conv2d_7[0][0]'] \n", + " rmalization) \n", + " \n", + " batch_normalization_10 (BatchN (None, 13, 13, 96) 288 ['conv2d_10[0][0]'] \n", + " ormalization) \n", + " \n", + " batch_normalization_11 (BatchN (None, 13, 13, 32) 96 ['conv2d_11[0][0]'] \n", + " ormalization) \n", + " \n", + " activation_5 (Activation) (None, 13, 13, 64) 0 ['batch_normalization_5[0][0]'] \n", + " \n", + " activation_7 (Activation) (None, 13, 13, 64) 0 ['batch_normalization_7[0][0]'] \n", + " \n", + " activation_10 (Activation) (None, 13, 13, 96) 0 ['batch_normalization_10[0][0]'] \n", + " \n", + " activation_11 (Activation) (None, 13, 13, 32) 0 ['batch_normalization_11[0][0]'] \n", + " \n", + " mixed0 (Concatenate) (None, 13, 13, 256) 0 ['activation_5[0][0]', \n", + " 'activation_7[0][0]', \n", + " 'activation_10[0][0]', \n", + " 'activation_11[0][0]'] \n", + " \n", + " conv2d_15 (Conv2D) (None, 13, 13, 64) 16384 ['mixed0[0][0]'] \n", + " \n", + " batch_normalization_15 (BatchN (None, 13, 13, 64) 192 ['conv2d_15[0][0]'] \n", + " ormalization) \n", + " \n", + " activation_15 (Activation) (None, 13, 13, 64) 0 ['batch_normalization_15[0][0]'] \n", + " \n", + " conv2d_13 (Conv2D) (None, 13, 13, 48) 12288 ['mixed0[0][0]'] \n", + " \n", + " conv2d_16 (Conv2D) (None, 13, 13, 96) 55296 ['activation_15[0][0]'] \n", + " \n", + " batch_normalization_13 (BatchN (None, 13, 13, 48) 144 ['conv2d_13[0][0]'] \n", + " ormalization) \n", + " \n", + " batch_normalization_16 (BatchN (None, 13, 13, 96) 288 ['conv2d_16[0][0]'] \n", + " ormalization) \n", + " \n", + " activation_13 (Activation) (None, 13, 13, 48) 0 ['batch_normalization_13[0][0]'] \n", + " \n", + " activation_16 (Activation) (None, 13, 13, 96) 0 ['batch_normalization_16[0][0]'] \n", + " \n", + " average_pooling2d_1 (AveragePo (None, 13, 13, 256) 0 ['mixed0[0][0]'] \n", + " oling2D) \n", + " \n", + " conv2d_12 (Conv2D) (None, 13, 13, 64) 16384 ['mixed0[0][0]'] \n", + " \n", + " conv2d_14 (Conv2D) (None, 13, 13, 64) 76800 ['activation_13[0][0]'] \n", + " \n", + " conv2d_17 (Conv2D) (None, 13, 13, 96) 82944 ['activation_16[0][0]'] \n", + " \n", + " conv2d_18 (Conv2D) (None, 13, 13, 64) 16384 ['average_pooling2d_1[0][0]'] \n", + " \n", + " batch_normalization_12 (BatchN (None, 13, 13, 64) 192 ['conv2d_12[0][0]'] \n", + " ormalization) \n", + " \n", + " batch_normalization_14 (BatchN (None, 13, 13, 64) 192 ['conv2d_14[0][0]'] \n", + " ormalization) \n", + " \n", + " batch_normalization_17 (BatchN (None, 13, 13, 96) 288 ['conv2d_17[0][0]'] \n", + " ormalization) \n", + " \n", + " batch_normalization_18 (BatchN (None, 13, 13, 64) 192 ['conv2d_18[0][0]'] \n", + " ormalization) \n", + " \n", + " activation_12 (Activation) (None, 13, 13, 64) 0 ['batch_normalization_12[0][0]'] \n", + " \n", + " activation_14 (Activation) (None, 13, 13, 64) 0 ['batch_normalization_14[0][0]'] \n", + " \n", + " activation_17 (Activation) (None, 13, 13, 96) 0 ['batch_normalization_17[0][0]'] \n", + " \n", + " activation_18 (Activation) (None, 13, 13, 64) 0 ['batch_normalization_18[0][0]'] \n", + " \n", + " mixed1 (Concatenate) (None, 13, 13, 288) 0 ['activation_12[0][0]', \n", + " 'activation_14[0][0]', \n", + " 'activation_17[0][0]', \n", + " 'activation_18[0][0]'] \n", + " \n", + " conv2d_22 (Conv2D) (None, 13, 13, 64) 18432 ['mixed1[0][0]'] \n", + " \n", + " batch_normalization_22 (BatchN (None, 13, 13, 64) 192 ['conv2d_22[0][0]'] \n", + " ormalization) \n", + " \n", + " activation_22 (Activation) (None, 13, 13, 64) 0 ['batch_normalization_22[0][0]'] \n", + " \n", + " conv2d_20 (Conv2D) (None, 13, 13, 48) 13824 ['mixed1[0][0]'] \n", + " \n", + " conv2d_23 (Conv2D) (None, 13, 13, 96) 55296 ['activation_22[0][0]'] \n", + " \n", + " batch_normalization_20 (BatchN (None, 13, 13, 48) 144 ['conv2d_20[0][0]'] \n", + " ormalization) \n", + " \n", + " batch_normalization_23 (BatchN (None, 13, 13, 96) 288 ['conv2d_23[0][0]'] \n", + " ormalization) \n", + " \n", + " activation_20 (Activation) (None, 13, 13, 48) 0 ['batch_normalization_20[0][0]'] \n", + " \n", + " activation_23 (Activation) (None, 13, 13, 96) 0 ['batch_normalization_23[0][0]'] \n", + " \n", + " average_pooling2d_2 (AveragePo (None, 13, 13, 288) 0 ['mixed1[0][0]'] \n", + " oling2D) \n", + " \n", + " conv2d_19 (Conv2D) (None, 13, 13, 64) 18432 ['mixed1[0][0]'] \n", + " \n", + " conv2d_21 (Conv2D) (None, 13, 13, 64) 76800 ['activation_20[0][0]'] \n", + " \n", + " conv2d_24 (Conv2D) (None, 13, 13, 96) 82944 ['activation_23[0][0]'] \n", + " \n", + " conv2d_25 (Conv2D) (None, 13, 13, 64) 18432 ['average_pooling2d_2[0][0]'] \n", + " \n", + " batch_normalization_19 (BatchN (None, 13, 13, 64) 192 ['conv2d_19[0][0]'] \n", + " ormalization) \n", + " \n", + " batch_normalization_21 (BatchN (None, 13, 13, 64) 192 ['conv2d_21[0][0]'] \n", + " ormalization) \n", + " \n", + " batch_normalization_24 (BatchN (None, 13, 13, 96) 288 ['conv2d_24[0][0]'] \n", + " ormalization) \n", + " \n", + " batch_normalization_25 (BatchN (None, 13, 13, 64) 192 ['conv2d_25[0][0]'] \n", + " ormalization) \n", + " \n", + " activation_19 (Activation) (None, 13, 13, 64) 0 ['batch_normalization_19[0][0]'] \n", + " \n", + " activation_21 (Activation) (None, 13, 13, 64) 0 ['batch_normalization_21[0][0]'] \n", + " \n", + " activation_24 (Activation) (None, 13, 13, 96) 0 ['batch_normalization_24[0][0]'] \n", + " \n", + " activation_25 (Activation) (None, 13, 13, 64) 0 ['batch_normalization_25[0][0]'] \n", + " \n", + " mixed2 (Concatenate) (None, 13, 13, 288) 0 ['activation_19[0][0]', \n", + " 'activation_21[0][0]', \n", + " 'activation_24[0][0]', \n", + " 'activation_25[0][0]'] \n", + " \n", + " conv2d_27 (Conv2D) (None, 13, 13, 64) 18432 ['mixed2[0][0]'] \n", + " \n", + " batch_normalization_27 (BatchN (None, 13, 13, 64) 192 ['conv2d_27[0][0]'] \n", + " ormalization) \n", + " \n", + " activation_27 (Activation) (None, 13, 13, 64) 0 ['batch_normalization_27[0][0]'] \n", + " \n", + " conv2d_28 (Conv2D) (None, 13, 13, 96) 55296 ['activation_27[0][0]'] \n", + " \n", + " batch_normalization_28 (BatchN (None, 13, 13, 96) 288 ['conv2d_28[0][0]'] \n", + " ormalization) \n", + " \n", + " activation_28 (Activation) (None, 13, 13, 96) 0 ['batch_normalization_28[0][0]'] \n", + " \n", + " conv2d_26 (Conv2D) (None, 6, 6, 384) 995328 ['mixed2[0][0]'] \n", + " \n", + " conv2d_29 (Conv2D) (None, 6, 6, 96) 82944 ['activation_28[0][0]'] \n", + " \n", + " batch_normalization_26 (BatchN (None, 6, 6, 384) 1152 ['conv2d_26[0][0]'] \n", + " ormalization) \n", + " \n", + " batch_normalization_29 (BatchN (None, 6, 6, 96) 288 ['conv2d_29[0][0]'] \n", + " ormalization) \n", + " \n", + " activation_26 (Activation) (None, 6, 6, 384) 0 ['batch_normalization_26[0][0]'] \n", + " \n", + " activation_29 (Activation) (None, 6, 6, 96) 0 ['batch_normalization_29[0][0]'] \n", + " \n", + " max_pooling2d_2 (MaxPooling2D) (None, 6, 6, 288) 0 ['mixed2[0][0]'] \n", + " \n", + " mixed3 (Concatenate) (None, 6, 6, 768) 0 ['activation_26[0][0]', \n", + " 'activation_29[0][0]', \n", + " 'max_pooling2d_2[0][0]'] \n", + " \n", + " conv2d_34 (Conv2D) (None, 6, 6, 128) 98304 ['mixed3[0][0]'] \n", + " \n", + " batch_normalization_34 (BatchN (None, 6, 6, 128) 384 ['conv2d_34[0][0]'] \n", + " ormalization) \n", + " \n", + " activation_34 (Activation) (None, 6, 6, 128) 0 ['batch_normalization_34[0][0]'] \n", + " \n", + " conv2d_35 (Conv2D) (None, 6, 6, 128) 114688 ['activation_34[0][0]'] \n", + " \n", + " batch_normalization_35 (BatchN (None, 6, 6, 128) 384 ['conv2d_35[0][0]'] \n", + " ormalization) \n", + " \n", + " activation_35 (Activation) (None, 6, 6, 128) 0 ['batch_normalization_35[0][0]'] \n", + " \n", + " conv2d_31 (Conv2D) (None, 6, 6, 128) 98304 ['mixed3[0][0]'] \n", + " \n", + " conv2d_36 (Conv2D) (None, 6, 6, 128) 114688 ['activation_35[0][0]'] \n", + " \n", + " batch_normalization_31 (BatchN (None, 6, 6, 128) 384 ['conv2d_31[0][0]'] \n", + " ormalization) \n", + " \n", + " batch_normalization_36 (BatchN (None, 6, 6, 128) 384 ['conv2d_36[0][0]'] \n", + " ormalization) \n", + " \n", + " activation_31 (Activation) (None, 6, 6, 128) 0 ['batch_normalization_31[0][0]'] \n", + " \n", + " activation_36 (Activation) (None, 6, 6, 128) 0 ['batch_normalization_36[0][0]'] \n", + " \n", + " conv2d_32 (Conv2D) (None, 6, 6, 128) 114688 ['activation_31[0][0]'] \n", + " \n", + " conv2d_37 (Conv2D) (None, 6, 6, 128) 114688 ['activation_36[0][0]'] \n", + " \n", + " batch_normalization_32 (BatchN (None, 6, 6, 128) 384 ['conv2d_32[0][0]'] \n", + " ormalization) \n", + " \n", + " batch_normalization_37 (BatchN (None, 6, 6, 128) 384 ['conv2d_37[0][0]'] \n", + " ormalization) \n", + " \n", + " activation_32 (Activation) (None, 6, 6, 128) 0 ['batch_normalization_32[0][0]'] \n", + " \n", + " activation_37 (Activation) (None, 6, 6, 128) 0 ['batch_normalization_37[0][0]'] \n", + " \n", + " average_pooling2d_3 (AveragePo (None, 6, 6, 768) 0 ['mixed3[0][0]'] \n", + " oling2D) \n", + " \n", + " conv2d_30 (Conv2D) (None, 6, 6, 192) 147456 ['mixed3[0][0]'] \n", + " \n", + " conv2d_33 (Conv2D) (None, 6, 6, 192) 172032 ['activation_32[0][0]'] \n", + " \n", + " conv2d_38 (Conv2D) (None, 6, 6, 192) 172032 ['activation_37[0][0]'] \n", + " \n", + " conv2d_39 (Conv2D) (None, 6, 6, 192) 147456 ['average_pooling2d_3[0][0]'] \n", + " \n", + " batch_normalization_30 (BatchN (None, 6, 6, 192) 576 ['conv2d_30[0][0]'] \n", + " ormalization) \n", + " \n", + " batch_normalization_33 (BatchN (None, 6, 6, 192) 576 ['conv2d_33[0][0]'] \n", + " ormalization) \n", + " \n", + " batch_normalization_38 (BatchN (None, 6, 6, 192) 576 ['conv2d_38[0][0]'] \n", + " ormalization) \n", + " \n", + " batch_normalization_39 (BatchN (None, 6, 6, 192) 576 ['conv2d_39[0][0]'] \n", + " ormalization) \n", + " \n", + " activation_30 (Activation) (None, 6, 6, 192) 0 ['batch_normalization_30[0][0]'] \n", + " \n", + " activation_33 (Activation) (None, 6, 6, 192) 0 ['batch_normalization_33[0][0]'] \n", + " \n", + " activation_38 (Activation) (None, 6, 6, 192) 0 ['batch_normalization_38[0][0]'] \n", + " \n", + " activation_39 (Activation) (None, 6, 6, 192) 0 ['batch_normalization_39[0][0]'] \n", + " \n", + " mixed4 (Concatenate) (None, 6, 6, 768) 0 ['activation_30[0][0]', \n", + " 'activation_33[0][0]', \n", + " 'activation_38[0][0]', \n", + " 'activation_39[0][0]'] \n", + " \n", + " conv2d_44 (Conv2D) (None, 6, 6, 160) 122880 ['mixed4[0][0]'] \n", + " \n", + " batch_normalization_44 (BatchN (None, 6, 6, 160) 480 ['conv2d_44[0][0]'] \n", + " ormalization) \n", + " \n", + " activation_44 (Activation) (None, 6, 6, 160) 0 ['batch_normalization_44[0][0]'] \n", + " \n", + " conv2d_45 (Conv2D) (None, 6, 6, 160) 179200 ['activation_44[0][0]'] \n", + " \n", + " batch_normalization_45 (BatchN (None, 6, 6, 160) 480 ['conv2d_45[0][0]'] \n", + " ormalization) \n", + " \n", + " activation_45 (Activation) (None, 6, 6, 160) 0 ['batch_normalization_45[0][0]'] \n", + " \n", + " conv2d_41 (Conv2D) (None, 6, 6, 160) 122880 ['mixed4[0][0]'] \n", + " \n", + " conv2d_46 (Conv2D) (None, 6, 6, 160) 179200 ['activation_45[0][0]'] \n", + " \n", + " batch_normalization_41 (BatchN (None, 6, 6, 160) 480 ['conv2d_41[0][0]'] \n", + " ormalization) \n", + " \n", + " batch_normalization_46 (BatchN (None, 6, 6, 160) 480 ['conv2d_46[0][0]'] \n", + " ormalization) \n", + " \n", + " activation_41 (Activation) (None, 6, 6, 160) 0 ['batch_normalization_41[0][0]'] \n", + " \n", + " activation_46 (Activation) (None, 6, 6, 160) 0 ['batch_normalization_46[0][0]'] \n", + " \n", + " conv2d_42 (Conv2D) (None, 6, 6, 160) 179200 ['activation_41[0][0]'] \n", + " \n", + " conv2d_47 (Conv2D) (None, 6, 6, 160) 179200 ['activation_46[0][0]'] \n", + " \n", + " batch_normalization_42 (BatchN (None, 6, 6, 160) 480 ['conv2d_42[0][0]'] \n", + " ormalization) \n", + " \n", + " batch_normalization_47 (BatchN (None, 6, 6, 160) 480 ['conv2d_47[0][0]'] \n", + " ormalization) \n", + " \n", + " activation_42 (Activation) (None, 6, 6, 160) 0 ['batch_normalization_42[0][0]'] \n", + " \n", + " activation_47 (Activation) (None, 6, 6, 160) 0 ['batch_normalization_47[0][0]'] \n", + " \n", + " average_pooling2d_4 (AveragePo (None, 6, 6, 768) 0 ['mixed4[0][0]'] \n", + " oling2D) \n", + " \n", + " conv2d_40 (Conv2D) (None, 6, 6, 192) 147456 ['mixed4[0][0]'] \n", + " \n", + " conv2d_43 (Conv2D) (None, 6, 6, 192) 215040 ['activation_42[0][0]'] \n", + " \n", + " conv2d_48 (Conv2D) (None, 6, 6, 192) 215040 ['activation_47[0][0]'] \n", + " \n", + " conv2d_49 (Conv2D) (None, 6, 6, 192) 147456 ['average_pooling2d_4[0][0]'] \n", + " \n", + " batch_normalization_40 (BatchN (None, 6, 6, 192) 576 ['conv2d_40[0][0]'] \n", + " ormalization) \n", + " \n", + " batch_normalization_43 (BatchN (None, 6, 6, 192) 576 ['conv2d_43[0][0]'] \n", + " ormalization) \n", + " \n", + " batch_normalization_48 (BatchN (None, 6, 6, 192) 576 ['conv2d_48[0][0]'] \n", + " ormalization) \n", + " \n", + " batch_normalization_49 (BatchN (None, 6, 6, 192) 576 ['conv2d_49[0][0]'] \n", + " ormalization) \n", + " \n", + " activation_40 (Activation) (None, 6, 6, 192) 0 ['batch_normalization_40[0][0]'] \n", + " \n", + " activation_43 (Activation) (None, 6, 6, 192) 0 ['batch_normalization_43[0][0]'] \n", + " \n", + " activation_48 (Activation) (None, 6, 6, 192) 0 ['batch_normalization_48[0][0]'] \n", + " \n", + " activation_49 (Activation) (None, 6, 6, 192) 0 ['batch_normalization_49[0][0]'] \n", + " \n", + " mixed5 (Concatenate) (None, 6, 6, 768) 0 ['activation_40[0][0]', \n", + " 'activation_43[0][0]', \n", + " 'activation_48[0][0]', \n", + " 'activation_49[0][0]'] \n", + " \n", + " conv2d_54 (Conv2D) (None, 6, 6, 160) 122880 ['mixed5[0][0]'] \n", + " \n", + " batch_normalization_54 (BatchN (None, 6, 6, 160) 480 ['conv2d_54[0][0]'] \n", + " ormalization) \n", + " \n", + " activation_54 (Activation) (None, 6, 6, 160) 0 ['batch_normalization_54[0][0]'] \n", + " \n", + " conv2d_55 (Conv2D) (None, 6, 6, 160) 179200 ['activation_54[0][0]'] \n", + " \n", + " batch_normalization_55 (BatchN (None, 6, 6, 160) 480 ['conv2d_55[0][0]'] \n", + " ormalization) \n", + " \n", + " activation_55 (Activation) (None, 6, 6, 160) 0 ['batch_normalization_55[0][0]'] \n", + " \n", + " conv2d_51 (Conv2D) (None, 6, 6, 160) 122880 ['mixed5[0][0]'] \n", + " \n", + " conv2d_56 (Conv2D) (None, 6, 6, 160) 179200 ['activation_55[0][0]'] \n", + " \n", + " batch_normalization_51 (BatchN (None, 6, 6, 160) 480 ['conv2d_51[0][0]'] \n", + " ormalization) \n", + " \n", + " batch_normalization_56 (BatchN (None, 6, 6, 160) 480 ['conv2d_56[0][0]'] \n", + " ormalization) \n", + " \n", + " activation_51 (Activation) (None, 6, 6, 160) 0 ['batch_normalization_51[0][0]'] \n", + " \n", + " activation_56 (Activation) (None, 6, 6, 160) 0 ['batch_normalization_56[0][0]'] \n", + " \n", + " conv2d_52 (Conv2D) (None, 6, 6, 160) 179200 ['activation_51[0][0]'] \n", + " \n", + " conv2d_57 (Conv2D) (None, 6, 6, 160) 179200 ['activation_56[0][0]'] \n", + " \n", + " batch_normalization_52 (BatchN (None, 6, 6, 160) 480 ['conv2d_52[0][0]'] \n", + " ormalization) \n", + " \n", + " batch_normalization_57 (BatchN (None, 6, 6, 160) 480 ['conv2d_57[0][0]'] \n", + " ormalization) \n", + " \n", + " activation_52 (Activation) (None, 6, 6, 160) 0 ['batch_normalization_52[0][0]'] \n", + " \n", + " activation_57 (Activation) (None, 6, 6, 160) 0 ['batch_normalization_57[0][0]'] \n", + " \n", + " average_pooling2d_5 (AveragePo (None, 6, 6, 768) 0 ['mixed5[0][0]'] \n", + " oling2D) \n", + " \n", + " conv2d_50 (Conv2D) (None, 6, 6, 192) 147456 ['mixed5[0][0]'] \n", + " \n", + " conv2d_53 (Conv2D) (None, 6, 6, 192) 215040 ['activation_52[0][0]'] \n", + " \n", + " conv2d_58 (Conv2D) (None, 6, 6, 192) 215040 ['activation_57[0][0]'] \n", + " \n", + " conv2d_59 (Conv2D) (None, 6, 6, 192) 147456 ['average_pooling2d_5[0][0]'] \n", + " \n", + " batch_normalization_50 (BatchN (None, 6, 6, 192) 576 ['conv2d_50[0][0]'] \n", + " ormalization) \n", + " \n", + " batch_normalization_53 (BatchN (None, 6, 6, 192) 576 ['conv2d_53[0][0]'] \n", + " ormalization) \n", + " \n", + " batch_normalization_58 (BatchN (None, 6, 6, 192) 576 ['conv2d_58[0][0]'] \n", + " ormalization) \n", + " \n", + " batch_normalization_59 (BatchN (None, 6, 6, 192) 576 ['conv2d_59[0][0]'] \n", + " ormalization) \n", + " \n", + " activation_50 (Activation) (None, 6, 6, 192) 0 ['batch_normalization_50[0][0]'] \n", + " \n", + " activation_53 (Activation) (None, 6, 6, 192) 0 ['batch_normalization_53[0][0]'] \n", + " \n", + " activation_58 (Activation) (None, 6, 6, 192) 0 ['batch_normalization_58[0][0]'] \n", + " \n", + " activation_59 (Activation) (None, 6, 6, 192) 0 ['batch_normalization_59[0][0]'] \n", + " \n", + " mixed6 (Concatenate) (None, 6, 6, 768) 0 ['activation_50[0][0]', \n", + " 'activation_53[0][0]', \n", + " 'activation_58[0][0]', \n", + " 'activation_59[0][0]'] \n", + " \n", + " conv2d_64 (Conv2D) (None, 6, 6, 192) 147456 ['mixed6[0][0]'] \n", + " \n", + " batch_normalization_64 (BatchN (None, 6, 6, 192) 576 ['conv2d_64[0][0]'] \n", + " ormalization) \n", + " \n", + " activation_64 (Activation) (None, 6, 6, 192) 0 ['batch_normalization_64[0][0]'] \n", + " \n", + " conv2d_65 (Conv2D) (None, 6, 6, 192) 258048 ['activation_64[0][0]'] \n", + " \n", + " batch_normalization_65 (BatchN (None, 6, 6, 192) 576 ['conv2d_65[0][0]'] \n", + " ormalization) \n", + " \n", + " activation_65 (Activation) (None, 6, 6, 192) 0 ['batch_normalization_65[0][0]'] \n", + " \n", + " conv2d_61 (Conv2D) (None, 6, 6, 192) 147456 ['mixed6[0][0]'] \n", + " \n", + " conv2d_66 (Conv2D) (None, 6, 6, 192) 258048 ['activation_65[0][0]'] \n", + " \n", + " batch_normalization_61 (BatchN (None, 6, 6, 192) 576 ['conv2d_61[0][0]'] \n", + " ormalization) \n", + " \n", + " batch_normalization_66 (BatchN (None, 6, 6, 192) 576 ['conv2d_66[0][0]'] \n", + " ormalization) \n", + " \n", + " activation_61 (Activation) (None, 6, 6, 192) 0 ['batch_normalization_61[0][0]'] \n", + " \n", + " activation_66 (Activation) (None, 6, 6, 192) 0 ['batch_normalization_66[0][0]'] \n", + " \n", + " conv2d_62 (Conv2D) (None, 6, 6, 192) 258048 ['activation_61[0][0]'] \n", + " \n", + " conv2d_67 (Conv2D) (None, 6, 6, 192) 258048 ['activation_66[0][0]'] \n", + " \n", + " batch_normalization_62 (BatchN (None, 6, 6, 192) 576 ['conv2d_62[0][0]'] \n", + " ormalization) \n", + " \n", + " batch_normalization_67 (BatchN (None, 6, 6, 192) 576 ['conv2d_67[0][0]'] \n", + " ormalization) \n", + " \n", + " activation_62 (Activation) (None, 6, 6, 192) 0 ['batch_normalization_62[0][0]'] \n", + " \n", + " activation_67 (Activation) (None, 6, 6, 192) 0 ['batch_normalization_67[0][0]'] \n", + " \n", + " average_pooling2d_6 (AveragePo (None, 6, 6, 768) 0 ['mixed6[0][0]'] \n", + " oling2D) \n", + " \n", + " conv2d_60 (Conv2D) (None, 6, 6, 192) 147456 ['mixed6[0][0]'] \n", + " \n", + " conv2d_63 (Conv2D) (None, 6, 6, 192) 258048 ['activation_62[0][0]'] \n", + " \n", + " conv2d_68 (Conv2D) (None, 6, 6, 192) 258048 ['activation_67[0][0]'] \n", + " \n", + " conv2d_69 (Conv2D) (None, 6, 6, 192) 147456 ['average_pooling2d_6[0][0]'] \n", + " \n", + " batch_normalization_60 (BatchN (None, 6, 6, 192) 576 ['conv2d_60[0][0]'] \n", + " ormalization) \n", + " \n", + " batch_normalization_63 (BatchN (None, 6, 6, 192) 576 ['conv2d_63[0][0]'] \n", + " ormalization) \n", + " \n", + " batch_normalization_68 (BatchN (None, 6, 6, 192) 576 ['conv2d_68[0][0]'] \n", + " ormalization) \n", + " \n", + " batch_normalization_69 (BatchN (None, 6, 6, 192) 576 ['conv2d_69[0][0]'] \n", + " ormalization) \n", + " \n", + " activation_60 (Activation) (None, 6, 6, 192) 0 ['batch_normalization_60[0][0]'] \n", + " \n", + " activation_63 (Activation) (None, 6, 6, 192) 0 ['batch_normalization_63[0][0]'] \n", + " \n", + " activation_68 (Activation) (None, 6, 6, 192) 0 ['batch_normalization_68[0][0]'] \n", + " \n", + " activation_69 (Activation) (None, 6, 6, 192) 0 ['batch_normalization_69[0][0]'] \n", + " \n", + " mixed7 (Concatenate) (None, 6, 6, 768) 0 ['activation_60[0][0]', \n", + " 'activation_63[0][0]', \n", + " 'activation_68[0][0]', \n", + " 'activation_69[0][0]'] \n", + " \n", + " conv2d_72 (Conv2D) (None, 6, 6, 192) 147456 ['mixed7[0][0]'] \n", + " \n", + " batch_normalization_72 (BatchN (None, 6, 6, 192) 576 ['conv2d_72[0][0]'] \n", + " ormalization) \n", + " \n", + " activation_72 (Activation) (None, 6, 6, 192) 0 ['batch_normalization_72[0][0]'] \n", + " \n", + " conv2d_73 (Conv2D) (None, 6, 6, 192) 258048 ['activation_72[0][0]'] \n", + " \n", + " batch_normalization_73 (BatchN (None, 6, 6, 192) 576 ['conv2d_73[0][0]'] \n", + " ormalization) \n", + " \n", + " activation_73 (Activation) (None, 6, 6, 192) 0 ['batch_normalization_73[0][0]'] \n", + " \n", + " conv2d_70 (Conv2D) (None, 6, 6, 192) 147456 ['mixed7[0][0]'] \n", + " \n", + " conv2d_74 (Conv2D) (None, 6, 6, 192) 258048 ['activation_73[0][0]'] \n", + " \n", + " batch_normalization_70 (BatchN (None, 6, 6, 192) 576 ['conv2d_70[0][0]'] \n", + " ormalization) \n", + " \n", + " batch_normalization_74 (BatchN (None, 6, 6, 192) 576 ['conv2d_74[0][0]'] \n", + " ormalization) \n", + " \n", + " activation_70 (Activation) (None, 6, 6, 192) 0 ['batch_normalization_70[0][0]'] \n", + " \n", + " activation_74 (Activation) (None, 6, 6, 192) 0 ['batch_normalization_74[0][0]'] \n", + " \n", + " conv2d_71 (Conv2D) (None, 2, 2, 320) 552960 ['activation_70[0][0]'] \n", + " \n", + " conv2d_75 (Conv2D) (None, 2, 2, 192) 331776 ['activation_74[0][0]'] \n", + " \n", + " batch_normalization_71 (BatchN (None, 2, 2, 320) 960 ['conv2d_71[0][0]'] \n", + " ormalization) \n", + " \n", + " batch_normalization_75 (BatchN (None, 2, 2, 192) 576 ['conv2d_75[0][0]'] \n", + " ormalization) \n", + " \n", + " activation_71 (Activation) (None, 2, 2, 320) 0 ['batch_normalization_71[0][0]'] \n", + " \n", + " activation_75 (Activation) (None, 2, 2, 192) 0 ['batch_normalization_75[0][0]'] \n", + " \n", + " max_pooling2d_3 (MaxPooling2D) (None, 2, 2, 768) 0 ['mixed7[0][0]'] \n", + " \n", + " mixed8 (Concatenate) (None, 2, 2, 1280) 0 ['activation_71[0][0]', \n", + " 'activation_75[0][0]', \n", + " 'max_pooling2d_3[0][0]'] \n", + " \n", + " conv2d_80 (Conv2D) (None, 2, 2, 448) 573440 ['mixed8[0][0]'] \n", + " \n", + " batch_normalization_80 (BatchN (None, 2, 2, 448) 1344 ['conv2d_80[0][0]'] \n", + " ormalization) \n", + " \n", + " activation_80 (Activation) (None, 2, 2, 448) 0 ['batch_normalization_80[0][0]'] \n", + " \n", + " conv2d_77 (Conv2D) (None, 2, 2, 384) 491520 ['mixed8[0][0]'] \n", + " \n", + " conv2d_81 (Conv2D) (None, 2, 2, 384) 1548288 ['activation_80[0][0]'] \n", + " \n", + " batch_normalization_77 (BatchN (None, 2, 2, 384) 1152 ['conv2d_77[0][0]'] \n", + " ormalization) \n", + " \n", + " batch_normalization_81 (BatchN (None, 2, 2, 384) 1152 ['conv2d_81[0][0]'] \n", + " ormalization) \n", + " \n", + " activation_77 (Activation) (None, 2, 2, 384) 0 ['batch_normalization_77[0][0]'] \n", + " \n", + " activation_81 (Activation) (None, 2, 2, 384) 0 ['batch_normalization_81[0][0]'] \n", + " \n", + " conv2d_78 (Conv2D) (None, 2, 2, 384) 442368 ['activation_77[0][0]'] \n", + " \n", + " conv2d_79 (Conv2D) (None, 2, 2, 384) 442368 ['activation_77[0][0]'] \n", + " \n", + " conv2d_82 (Conv2D) (None, 2, 2, 384) 442368 ['activation_81[0][0]'] \n", + " \n", + " conv2d_83 (Conv2D) (None, 2, 2, 384) 442368 ['activation_81[0][0]'] \n", + " \n", + " average_pooling2d_7 (AveragePo (None, 2, 2, 1280) 0 ['mixed8[0][0]'] \n", + " oling2D) \n", + " \n", + " conv2d_76 (Conv2D) (None, 2, 2, 320) 409600 ['mixed8[0][0]'] \n", + " \n", + " batch_normalization_78 (BatchN (None, 2, 2, 384) 1152 ['conv2d_78[0][0]'] \n", + " ormalization) \n", + " \n", + " batch_normalization_79 (BatchN (None, 2, 2, 384) 1152 ['conv2d_79[0][0]'] \n", + " ormalization) \n", + " \n", + " batch_normalization_82 (BatchN (None, 2, 2, 384) 1152 ['conv2d_82[0][0]'] \n", + " ormalization) \n", + " \n", + " batch_normalization_83 (BatchN (None, 2, 2, 384) 1152 ['conv2d_83[0][0]'] \n", + " ormalization) \n", + " \n", + " conv2d_84 (Conv2D) (None, 2, 2, 192) 245760 ['average_pooling2d_7[0][0]'] \n", + " \n", + " batch_normalization_76 (BatchN (None, 2, 2, 320) 960 ['conv2d_76[0][0]'] \n", + " ormalization) \n", + " \n", + " activation_78 (Activation) (None, 2, 2, 384) 0 ['batch_normalization_78[0][0]'] \n", + " \n", + " activation_79 (Activation) (None, 2, 2, 384) 0 ['batch_normalization_79[0][0]'] \n", + " \n", + " activation_82 (Activation) (None, 2, 2, 384) 0 ['batch_normalization_82[0][0]'] \n", + " \n", + " activation_83 (Activation) (None, 2, 2, 384) 0 ['batch_normalization_83[0][0]'] \n", + " \n", + " batch_normalization_84 (BatchN (None, 2, 2, 192) 576 ['conv2d_84[0][0]'] \n", + " ormalization) \n", + " \n", + " activation_76 (Activation) (None, 2, 2, 320) 0 ['batch_normalization_76[0][0]'] \n", + " \n", + " mixed9_0 (Concatenate) (None, 2, 2, 768) 0 ['activation_78[0][0]', \n", + " 'activation_79[0][0]'] \n", + " \n", + " concatenate (Concatenate) (None, 2, 2, 768) 0 ['activation_82[0][0]', \n", + " 'activation_83[0][0]'] \n", + " \n", + " activation_84 (Activation) (None, 2, 2, 192) 0 ['batch_normalization_84[0][0]'] \n", + " \n", + " mixed9 (Concatenate) (None, 2, 2, 2048) 0 ['activation_76[0][0]', \n", + " 'mixed9_0[0][0]', \n", + " 'concatenate[0][0]', \n", + " 'activation_84[0][0]'] \n", + " \n", + " conv2d_89 (Conv2D) (None, 2, 2, 448) 917504 ['mixed9[0][0]'] \n", + " \n", + " batch_normalization_89 (BatchN (None, 2, 2, 448) 1344 ['conv2d_89[0][0]'] \n", + " ormalization) \n", + " \n", + " activation_89 (Activation) (None, 2, 2, 448) 0 ['batch_normalization_89[0][0]'] \n", + " \n", + " conv2d_86 (Conv2D) (None, 2, 2, 384) 786432 ['mixed9[0][0]'] \n", + " \n", + " conv2d_90 (Conv2D) (None, 2, 2, 384) 1548288 ['activation_89[0][0]'] \n", + " \n", + " batch_normalization_86 (BatchN (None, 2, 2, 384) 1152 ['conv2d_86[0][0]'] \n", + " ormalization) \n", + " \n", + " batch_normalization_90 (BatchN (None, 2, 2, 384) 1152 ['conv2d_90[0][0]'] \n", + " ormalization) \n", + " \n", + " activation_86 (Activation) (None, 2, 2, 384) 0 ['batch_normalization_86[0][0]'] \n", + " \n", + " activation_90 (Activation) (None, 2, 2, 384) 0 ['batch_normalization_90[0][0]'] \n", + " \n", + " conv2d_87 (Conv2D) (None, 2, 2, 384) 442368 ['activation_86[0][0]'] \n", + " \n", + " conv2d_88 (Conv2D) (None, 2, 2, 384) 442368 ['activation_86[0][0]'] \n", + " \n", + " conv2d_91 (Conv2D) (None, 2, 2, 384) 442368 ['activation_90[0][0]'] \n", + " \n", + " conv2d_92 (Conv2D) (None, 2, 2, 384) 442368 ['activation_90[0][0]'] \n", + " \n", + " average_pooling2d_8 (AveragePo (None, 2, 2, 2048) 0 ['mixed9[0][0]'] \n", + " oling2D) \n", + " \n", + " conv2d_85 (Conv2D) (None, 2, 2, 320) 655360 ['mixed9[0][0]'] \n", + " \n", + " batch_normalization_87 (BatchN (None, 2, 2, 384) 1152 ['conv2d_87[0][0]'] \n", + " ormalization) \n", + " \n", + " batch_normalization_88 (BatchN (None, 2, 2, 384) 1152 ['conv2d_88[0][0]'] \n", + " ormalization) \n", + " \n", + " batch_normalization_91 (BatchN (None, 2, 2, 384) 1152 ['conv2d_91[0][0]'] \n", + " ormalization) \n", + " \n", + " batch_normalization_92 (BatchN (None, 2, 2, 384) 1152 ['conv2d_92[0][0]'] \n", + " ormalization) \n", + " \n", + " conv2d_93 (Conv2D) (None, 2, 2, 192) 393216 ['average_pooling2d_8[0][0]'] \n", + " \n", + " batch_normalization_85 (BatchN (None, 2, 2, 320) 960 ['conv2d_85[0][0]'] \n", + " ormalization) \n", + " \n", + " activation_87 (Activation) (None, 2, 2, 384) 0 ['batch_normalization_87[0][0]'] \n", + " \n", + " activation_88 (Activation) (None, 2, 2, 384) 0 ['batch_normalization_88[0][0]'] \n", + " \n", + " activation_91 (Activation) (None, 2, 2, 384) 0 ['batch_normalization_91[0][0]'] \n", + " \n", + " activation_92 (Activation) (None, 2, 2, 384) 0 ['batch_normalization_92[0][0]'] \n", + " \n", + " batch_normalization_93 (BatchN (None, 2, 2, 192) 576 ['conv2d_93[0][0]'] \n", + " ormalization) \n", + " \n", + " activation_85 (Activation) (None, 2, 2, 320) 0 ['batch_normalization_85[0][0]'] \n", + " \n", + " mixed9_1 (Concatenate) (None, 2, 2, 768) 0 ['activation_87[0][0]', \n", + " 'activation_88[0][0]'] \n", + " \n", + " concatenate_1 (Concatenate) (None, 2, 2, 768) 0 ['activation_91[0][0]', \n", + " 'activation_92[0][0]'] \n", + " \n", + " activation_93 (Activation) (None, 2, 2, 192) 0 ['batch_normalization_93[0][0]'] \n", + " \n", + " mixed10 (Concatenate) (None, 2, 2, 2048) 0 ['activation_85[0][0]', \n", + " 'mixed9_1[0][0]', \n", + " 'concatenate_1[0][0]', \n", + " 'activation_93[0][0]'] \n", + " \n", + "==================================================================================================\n", + "Total params: 21,802,784\n", + "Trainable params: 21,768,352\n", + "Non-trainable params: 34,432\n", + "__________________________________________________________________________________________________\n" + ] + } + ] + }, + { + "cell_type": "code", + "source": [ + "# As we're using Transfer Learning, you do not need to train all the layers. Freeze all of the layers or train some layers (experiment)\n", + "\n", + "base_model.trainable=False" + ], + "metadata": { + "id": "F_Heq3C1eKd-" + }, + "execution_count": 17, + "outputs": [] + }, + { + "cell_type": "code", + "source": [ + "# Append Fully connected/custom Conv2D/Dropout/MaxPooling layers to the base model\n", + "\n", + "model=Sequential()\n", + "model.add(base_model)\n", + "model.add(tf.keras.layers.GlobalAveragePooling2D())\n", + "model.add(Dense(512, activation='relu'))\n", + "model.add(Dense(256, activation='relu'))" + ], + "metadata": { + "id": "MKx1EtUJea6D" + }, + "execution_count": 20, + "outputs": [] + }, + { + "cell_type": "code", + "source": [ + "# Add the final output layer\n", + "\n", + "model.add(Dense(3, activation='softmax'))" + ], + "metadata": { + "id": "q6I3oTTNgP8L" + }, + "execution_count": 21, + "outputs": [] + }, + { + "cell_type": "code", + "source": [ + "# Print your model's summary\n", + "\n", + "model.summary()" + ], + "metadata": { + "id": "6aVQocJwgN5r", + "colab": { + "base_uri": "https://localhost:8080/" + }, + "outputId": "b0c0aba0-e5a7-428c-adaa-ca2626ceb3b2" + }, + "execution_count": 22, + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + "Model: \"sequential_2\"\n", + "_________________________________________________________________\n", + " Layer (type) Output Shape Param # \n", + "=================================================================\n", + " inception_v3 (Functional) (None, 2, 2, 2048) 21802784 \n", + " \n", + " global_average_pooling2d (G (None, 2048) 0 \n", + " lobalAveragePooling2D) \n", + " \n", + " dense_3 (Dense) (None, 512) 1049088 \n", + " \n", + " dense_4 (Dense) (None, 256) 131328 \n", + " \n", + " dense_5 (Dense) (None, 3) 771 \n", + " \n", + "=================================================================\n", + "Total params: 22,983,971\n", + "Trainable params: 1,181,187\n", + "Non-trainable params: 21,802,784\n", + "_________________________________________________________________\n" + ] + } + ] + }, + { + "cell_type": "code", + "source": [ + "# Compile you model (set the parameters like loss/optimizers/metrics)\n", + "\n", + "model.compile(optimizer = 'adam',\n", + " loss='categorical_crossentropy',\n", + " metrics=['accuracy'])" + ], + "metadata": { + "id": "qdC71fUBgXAg" + }, + "execution_count": 29, + "outputs": [] + }, + { + "cell_type": "markdown", + "source": [ + "### Data Augmentation and Pre-processing\n", + "Augment the data. You may also try dyanamic augmentation using [`tf.keras.preprocessing.image.ImageDataGenerator `](https://www.tensorflow.org/api_docs/python/tf/keras/preprocessing/image/ImageDataGenerator). \n", + "You may use [`tf.keras.applications.vgg16.preprocess_input`](https://www.tensorflow.org/api_docs/python/tf/keras/applications/vgg16/preprocess_input)(or some other base model's utility) for pre-processing (can also be passed as a parameter to `ImageDataGenerator`)" + ], + "metadata": { + "id": "RdUSMLggifex" + } + }, + { + "cell_type": "code", + "source": [ + "from keras.applications.vgg16 import preprocess_input # Change according to your base model\n", + "from tensorflow.keras.preprocessing.image import ImageDataGenerator\n", + "\n", + "data=ImageDataGenerator(validation_split=0.2)\n", + "# Your code " + ], + "metadata": { + "id": "DBscSsvkgn39" + }, + "execution_count": 30, + "outputs": [] + }, + { + "cell_type": "code", + "source": [ + "# Anything else you wish to try" + ], + "metadata": { + "id": "rhyHEFXDkZr4" + }, + "execution_count": null, + "outputs": [] + }, + { + "cell_type": "markdown", + "source": [ + "### Training and Validation Dataset \n", + "Split the dataset into training and validation (We'll be looking for your validation accuracy, assume we are using complete dataset for now). \n", + "\n", + "Hint: `flow_from_directory` used with `ImageDataGenerator` will simplify things for you." + ], + "metadata": { + "id": "IcKPxCpOkcuG" + } + }, + { + "cell_type": "code", + "source": [ + "# Your code\n", + "\n", + "train=data.flow_from_directory('/content/drive/MyDrive/Mask_Dataset/',\n", + " target_size=(224,224),\n", + " color_mode='rgb',\n", + " batch_size=64,\n", + " class_mode='categorical')\n", + "\n", + "test=data.flow_from_directory('/content/drive/MyDrive/Mask_Dataset/',\n", + " target_size=(224,224),\n", + " color_mode='rgb',\n", + " batch_size=64,\n", + " class_mode='categorical',\n", + " subset='validation')" + ], + "metadata": { + "id": "sB7hb3ybkJRq", + "colab": { + "base_uri": "https://localhost:8080/" + }, + "outputId": "d972b592-0bfc-42e0-c0dd-ab9e2c1abe8c" + }, + "execution_count": 31, + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + "Found 8982 images belonging to 3 classes.\n", + "Found 1794 images belonging to 3 classes.\n" + ] + } + ] + }, + { + "cell_type": "markdown", + "source": [ + "### Training \n", + "Train your model for some epochs and plot the graph. Try and save your best model. Experiment with the parameters of `model.fit`" + ], + "metadata": { + "id": "ZZPsjpT1mp3z" + } + }, + { + "cell_type": "code", + "source": [ + "from keras.callbacks import ModelCheckpoint\n", + "# ModelCheckpoint is helpful to save the model giving best results (brownie points)\n", + "\n", + "check = ModelCheckpoint('best.h5', monitor='val_accuracy', mode='max', verbose=1, save_best_only=True)\n", + "model_history=model.fit(train, validation_data=test, epochs=10, callbacks=[check])" + ], + "metadata": { + "id": "Gs2X14MBmu7W", + "colab": { + "base_uri": "https://localhost:8080/" + }, + "outputId": "293de47d-8e3c-432e-83b4-9061db40ef7a" + }, + "execution_count": 34, + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + "Epoch 1/10\n", + "141/141 [==============================] - ETA: 0s - loss: 2.7941 - accuracy: 0.7276\n", + "Epoch 1: val_accuracy improved from -inf to 0.82219, saving model to best.h5\n", + "141/141 [==============================] - 54s 269ms/step - loss: 2.7941 - accuracy: 0.7276 - val_loss: 0.4306 - val_accuracy: 0.8222\n", + "Epoch 2/10\n", + "141/141 [==============================] - ETA: 0s - loss: 0.4706 - accuracy: 0.8362\n", + "Epoch 2: val_accuracy improved from 0.82219 to 0.90468, saving model to best.h5\n", + "141/141 [==============================] - 34s 240ms/step - loss: 0.4706 - accuracy: 0.8362 - val_loss: 0.2813 - val_accuracy: 0.9047\n", + "Epoch 3/10\n", + "141/141 [==============================] - ETA: 0s - loss: 0.4316 - accuracy: 0.8530\n", + "Epoch 3: val_accuracy did not improve from 0.90468\n", + "141/141 [==============================] - 34s 241ms/step - loss: 0.4316 - accuracy: 0.8530 - val_loss: 0.4309 - val_accuracy: 0.8724\n", + "Epoch 4/10\n", + "141/141 [==============================] - ETA: 0s - loss: 0.3015 - accuracy: 0.8951\n", + "Epoch 4: val_accuracy improved from 0.90468 to 0.93367, saving model to best.h5\n", + "141/141 [==============================] - 34s 238ms/step - loss: 0.3015 - accuracy: 0.8951 - val_loss: 0.2100 - val_accuracy: 0.9337\n", + "Epoch 5/10\n", + "141/141 [==============================] - ETA: 0s - loss: 0.2935 - accuracy: 0.8978\n", + "Epoch 5: val_accuracy did not improve from 0.93367\n", + "141/141 [==============================] - 34s 240ms/step - loss: 0.2935 - accuracy: 0.8978 - val_loss: 0.2281 - val_accuracy: 0.9164\n", + "Epoch 6/10\n", + "141/141 [==============================] - ETA: 0s - loss: 0.2376 - accuracy: 0.9144\n", + "Epoch 6: val_accuracy improved from 0.93367 to 0.93645, saving model to best.h5\n", + "141/141 [==============================] - 33s 236ms/step - loss: 0.2376 - accuracy: 0.9144 - val_loss: 0.1711 - val_accuracy: 0.9365\n", + "Epoch 7/10\n", + "141/141 [==============================] - ETA: 0s - loss: 0.2658 - accuracy: 0.9038\n", + "Epoch 7: val_accuracy improved from 0.93645 to 0.93924, saving model to best.h5\n", + "141/141 [==============================] - 34s 238ms/step - loss: 0.2658 - accuracy: 0.9038 - val_loss: 0.1602 - val_accuracy: 0.9392\n", + "Epoch 8/10\n", + "141/141 [==============================] - ETA: 0s - loss: 0.2094 - accuracy: 0.9253\n", + "Epoch 8: val_accuracy did not improve from 0.93924\n", + "141/141 [==============================] - 35s 244ms/step - loss: 0.2094 - accuracy: 0.9253 - val_loss: 0.1750 - val_accuracy: 0.9365\n", + "Epoch 9/10\n", + "141/141 [==============================] - ETA: 0s - loss: 0.1846 - accuracy: 0.9329\n", + "Epoch 9: val_accuracy did not improve from 0.93924\n", + "141/141 [==============================] - 33s 237ms/step - loss: 0.1846 - accuracy: 0.9329 - val_loss: 0.1834 - val_accuracy: 0.9298\n", + "Epoch 10/10\n", + "141/141 [==============================] - ETA: 0s - loss: 0.1780 - accuracy: 0.9372\n", + "Epoch 10: val_accuracy improved from 0.93924 to 0.95206, saving model to best.h5\n", + "141/141 [==============================] - 34s 238ms/step - loss: 0.1780 - accuracy: 0.9372 - val_loss: 0.1367 - val_accuracy: 0.9521\n" + ] + } + ] + }, + { + "cell_type": "markdown", + "source": [ + "### Evaluate the performance" + ], + "metadata": { + "id": "FTvRa1FXri4R" + } + }, + { + "cell_type": "code", + "source": [ + "# Plot training & validation loss/accuracy values\n", + "\n", + "plt.plot(model_history.history['val_accuracy'])\n", + "plt.plot(model_history.history['accuracy'])\n", + "plt.title('Model Accuracy')\n", + "plt.ylabel('Accuracy')\n", + "plt.xlabel('Epoch')\n", + "plt.legend(['Train', 'Test'], loc='upper left')\n", + "plt.show()\n", + "\n", + "plt.plot(model_history.history['loss'])\n", + "plt.plot(model_history.history['val_loss'])\n", + "plt.title('Model Loss')\n", + "plt.ylabel('Loss')\n", + "plt.xlabel('Epoch')\n", + "plt.legend(['train', 'test'], loc='upper left')\n", + "plt.show()" + ], + "metadata": { + "id": "cTH6flzcrck0", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 573 + }, + "outputId": "9dcb6426-338f-471f-eb93-f6a0fc50edb0" + }, + "execution_count": 39, + "outputs": [ + { + "output_type": "display_data", + "data": { + "text/plain": [ + "
" + ], + "image/png": "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\n" + }, + "metadata": { + "needs_background": "light" + } + }, + { + "output_type": "display_data", + "data": { + "text/plain": [ + "
" + ], + "image/png": "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F1zA+vXrueyyy/L62SIic2XuxXWB1aZNm3zyjWl27drFBRdcMKPX7+vsI5N11i2rL0R582I231dEBMDMHnP3TVOtK6tDQxBcTzCUzpItsgAUESmU8guCZBx3Z7gAF5aJiBSjsgwCgMHRwp9GKiJSDMouCCoSMeJmBbnCWESkGJVdEJgZVRXxgow5JCJSjMouCCA4PDQ0mqHYzpgSESmEsg2CrDvDeRpu4myHoQb4xCc+wcDAQF7qEBE5G+UZBBX5vcJYQSAixaysriweU5mIEbPgCuPFeXi/3GGoX/WqV7F06VK+8Y1vMDw8zO/93u/xkY98hP7+fm688Uba29vJZDL81V/9Fc899xyHDh3iyiuvpKmpiQceeCAP1YiIzE7pBcH3PwCHn5x2EwOeN9ZZPJMhqZdfCNd89LSrc4eh3rJlC3fffTe/+MUvcHeuu+46Hn74YTo7O2lpaeF73/seEIxBlEqluO2223jggQdoamqa6TcUEcmrgh0aMrNVZvaAme00sx1mdssU22w2s24zezx8/HWh6pksZpB1x8lvh/GWLVvYsmULF198MZdccgm7d+9mz549XHjhhfzwhz/k/e9/P4888gipVCqvnysicrYK2SJIA3/h7tvMrB54zMx+6O47J233iLu/Nm+fOs0v91z9/SO0Hx9g/bJ6Kmd5o5rpuDsf/OAHefvb337Kum3btnHffffxoQ99iFe84hX89V/PW+6JiJxWwVoE7t7h7tvC6V5gF9BaqM+brepk8NXzcT1B7jDUr371q7njjjvo6+sD4ODBgxw5coRDhw5RU1PDTTfdxK233sq2bdtOea2ISBTmpY/AzNYAFwM/n2L15Wb2BHAIeJ+775ji9TcDNwOcc845eampMhnHwg7jud4+PncY6muuuYY3vvGNXH755QDU1dVx5513snfvXm699VZisRjJZJLPfvazANx8881cffXVtLS0qLNYRCJR8GGozawOeAj4O3f/1qR1DUDW3fvM7Frgk+6+brr3m+sw1Ln2PNdLPGac21w369dGScNQi8hsRTYMtZklgW8CX5scAgDu3uPufeH0fUDSzObt9JnqcKgJXWEsIuWskGcNGfAlYJe733aabZaH22Fml4b1HC1UTZNVJ+Nkss5oRiORikj5KmQfwRXAm4AnzezxcNlfAucAuPvngD8A3mFmaWAQeL2f5c9zdyfMlBk7eYXxaIaKRP7OHCoktV5EJN8KFgTu/mOCa7em2+bTwKfn+llVVVUcPXqUxsbGWYVBVSKOYQyOZElVz7WKwnN3jh49SlVVVdSliEgJKYkri1euXEl7ezudnZ2zfu3RniFOxIzjdZUFqCz/qqqqWLlyZdRliEgJKYkgSCaTrF279qxe+6X/9wQPPnWEX/73V8760JKISCkoy9FHc7W1NNDVN8KR3uGoSxERiYSCoDUY82f7we6IKxERiUbZB8EFKxowg+0He6IuRUQkEmUfBLWVCc5tqmX7IbUIRKQ8lX0QQHB4aIcODYlImVIQAG0tKQ51D3G0Tx3GIlJ+FATAxtYGALYfUj+BiJQfBQGwsUVnDolI+VIQAKnqJOcsqWGHOoxFpAwpCEJtrQ06hVREypKCILSxJcWzxwboHhiNuhQRkXmlIAhdGF5hvKNDh4dEpLwoCEIbW4Izh3bo8JCIlBkFQaixrpKWVJWuMBaRsqMgyLGxNaVTSEWk7CgIcrS1pNjX1U//cDrqUkRE5o2CIEdbawPusLND/QQiUj4UBDl0bwIRKUcKghxL6ytpqqvUhWUiUlYUBDnMjLbWBg01ISJlRUEwSVtLij1H+hgazURdiojIvFAQTNLW2kAm6+w+3Bt1KSIi80JBMIk6jEWk3CgIJmldVM2imqT6CUSkbCgIJjEz2lpSOnNIRMqGgmAKG1sbeOpwLyPpbNSliIgUXMGCwMxWmdkDZrbTzHaY2S1TbGNmdruZ7TWzX5vZJYWqZzbaWlKMZLLsOaIOYxEpfYVsEaSBv3D3DcBlwDvNbMOkba4B1oWPm4HPFrCeGRvrMNaQ1CJSDgoWBO7e4e7bwuleYBfQOmmz64GveOBRYJGZrShUTTO1ekkNdZUJntSZQyJSBualj8DM1gAXAz+ftKoVOJAz386pYYGZ3WxmW81sa2dnZ6HKPCkWMza0NOjeBCJSFgoeBGZWB3wTeI+7n9WxFnf/vLtvcvdNzc3N+S3wNNpaUuzq6CGdUYexiJS2ggaBmSUJQuBr7v6tKTY5CKzKmV8ZLotcW2sDQ6NZ9nX1R12KiEhBFfKsIQO+BOxy99tOs9m9wJvDs4cuA7rdvaNQNc2GrjAWkXKRKOB7XwG8CXjSzB4Pl/0lcA6Au38OuA+4FtgLDABvLWA9s/K85jqqkjG2H+zh9xfESa0iIoVRsCBw9x8DdoZtHHhnoWqYi3jM2LBCHcYiUvp0ZfE02lpT7DzUQzbrUZciIlIwCoJptLWk6BtOs//YQNSliIgUjIJgGhtbGwB1GItIaVMQTGPd0noq4jH1E4hISVMQTKMiEWP98nq1CESkpCkIzqCttYHtB3sITnASESk9CoIz2NiSontwlPbjg1GXIiJSEAqCMzg5JLX6CUSkRCkIzuD85fXEY6ZbV4pIyVIQnEFVMs66pXU6c0hESpaCYAbaWlNsP9itDmMRKUkKghloa2mgq2+EI73DUZciIpJ3CoIZ0JDUIlLKFAQzcMGKBsxQh7GIlCQFwQzUViY4t6lWHcYiUpIUBDM01mEsIlJqFAQz1NaSoqN7iK4+dRiLSGlREMzQ2JDUOw6pn0BESouCYIY2tujMIREpTQqCGUpVJzlnSY3GHBKRkqMgmIWxIalFREqJgmAW2lpTPHtsgO6B0ahLERHJGwXBLLSF/QQ7OnR4SERKh4JgFja2hGcO6fCQiJQQBcEsNNZV0pKq0hXGIlJSFASztFFXGItIiZlREJhZrZnFwunzzOw6M0sWtrSFqa0lxb6ufvqH01GXIiKSFzNtETwMVJlZK7AFeBPw5UIVtZC1tTbgDjs71E8gIqVhpkFg7j4A/D7wGXf/L8DGaV9gdoeZHTGz7adZv9nMus3s8fDx17MrPRq6N4GIlJoZB4GZXQ78EfC9cFn8DK/5MnD1GbZ5xN0vCh9/M8NaIrW0vpKmukpdWCYiJWOmQfAe4IPAPe6+w8zOBR6Y7gXu/jBwbI71LThmRltrg4aaEJGSkZjJRu7+EPAQQNhp3OXu787D519uZk8Ah4D3ufuOPLxnwbW1pHhkTxdDoxmqkmdqGImILGwzPWvoX82swcxqge3ATjO7dY6fvQ1Y7e4vBD4F/Ns0n3+zmW01s62dnZ1z/Ni5a2tNkck6uw/3Rl2KiMiczfTQ0AZ37wFuAL4PrCU4c+isuXuPu/eF0/cBSTNrOs22n3f3Te6+qbm5eS4fmxdt4b0J1GEsIqVgpkGQDK8buAG4191HAZ/LB5vZcjOzcPrSsJajc3nP+dK6qJpFNUn1E4hISZhRHwHwT8AzwBPAw2a2Gpj2tBkzuwvYDDSZWTvwYSAJ4O6fA/4AeIeZpYFB4PXuPqdwmS9mRltLSmcOiUhJmGln8e3A7TmL9pvZlWd4zRvOsP7TwKdn8vkL0cbWBv75x88wks5SkdBIHSJSvGbaWZwys9vGOmzN7ONAbYFrW9DaWlKMZLLsOaIOYxEpbjP9KXsH0AvcGD56gH8uVFHFQFcYi0ipmGkQPM/dP+zu+8LHR4BzC1nYQrd6SQ11lQn1E4hI0ZtpEAya2UvHZszsCoIO3rIVixkbWhp0bwIRKXozPWvoz4CvmFkqnD8O/HFhSioebS0p/vUX+0lnsiTi6jAWkeI0o72Xuz8RXgH8AuAF7n4xcFVBKysCba0NDI1m2dfVH3UpIiJnbVY/Y8OrgccOir+3APUUlQvVYSwiJWAuxzMsb1UUqXOb66hKxtRhLCJFbS5BUBRXARdSPGZsWKEOYxEpbtN2FptZL1Pv8A2oLkhFRaatNcW3th0km3VisbJvJIlIEZq2ReDu9e7eMMWj3t1nesZRSWtrSdE3nGb/sYGoSxEROSs653GONmpIahEpcgqCOVq3tJ6KeExBICJFS0EwRxWJGOuX16vDWESKloIgD9paG9h+sIciuZ2CiMgECoI82NiSontwlPbjZT38kogUKQVBHowNSa1bV4pIMVIQ5MH5y+uJx0xXGItIUVIQ5EFVMs66pXXqMBaRoqQgyJO21hTbD3arw1hEio6CIE/aWhro6hvhSO9w1KWIiMyKgiBPdA9jESlWCoI8uWBFA2aow1hEio6CIE9qKxOc21SrDmMRKToKgjwa6zAWESkmCoI8amtJ0dE9RFefOoxFpHgoCPJobEjqHYfUTyAixUNBkEcbW3TmkIgUHwVBHqWqk6xurNGYQyJSVAoWBGZ2h5kdMbPtp1lvZna7me01s1+b2SWFqmU+tbWkdAqpiBSVQrYIvgxcPc36a4B14eNm4LMFrGXebGxt4NljA3QPjEZdiojIjBQsCNz9YeDYNJtcD3zFA48Ci8xsRaHqmS9tYT/Bjg4dHhKR4hBlH0ErcCBnvj1cdgozu9nMtprZ1s7Oznkp7mxtbAnPHNLhIREpEkXRWezun3f3Te6+qbm5OepyptVYV0lLqkpXGItI0YgyCA4Cq3LmV4bLit5GXWEsIkUkyiC4F3hzePbQZUC3u3dEWE/etLWk2NfVT99wOupSRETOKFGoNzazu4DNQJOZtQMfBpIA7v454D7gWmAvMAC8tVC1zLe21gbcYVdHDy9esyTqckREplWwIHD3N5xhvQPvLNTnRyn33gQKAhFZ6Iqis7jYLK2vpKmuUheWiUhRUBAUgJnR1tqgoSZEpCgoCArkwtYUe470MTSaiboUEZFpKQgKZGNLikzW2X24N+pSRESmpSAokLbw3gS6nkBEFjoFQYG0LqpmUU1S/QQisuApCArEzDQktYgUBQVBAW1sbeCpw72MpLNRlyIicloKggJqa0kxksmy54g6jEVk4VIQFFDuFcYiIguVgqCAVi+poa4yoX4CEVnQFAQFFIsZG1oadG8CEVnQFAQF1taSYldHD+mMOoxFZGFSEBTYhSsbGBrNsq+rP+pSRESmpCAosLGb2avDWEQWKgVBgZ3bXEdVMqYOYxFZsBQEBRaPGRtWqMNYRBYuBcE8aGtNsfNQD9msR12KiMgpFATzoK0lRd9wmv3HBqIuRUTkFAqCebBRQ1KLyAKmIJgH65bWUxGPKQhEZEFSEMyDikSM9cvr1WEsIguSgmCetLU2sP1gD+7qMBaRhUVBME82tqToHhyl/fhg1KWIiEygIJgnF4ZDUuvWlSKy0CgI5sn65fXEY6YrjEVkwVEQzJOqZJx1S+vUYSwiC46CYB61tabYfrBbHcYisqAUNAjM7Goze8rM9prZB6ZY/xYz6zSzx8PHnxaynqi1tTTQ1TfCkd7hqEsRETkpUag3NrM48I/Aq4B24Jdmdq+775y06f919z8vVB0LSe49jJc1VEVcjYhIoJAtgkuBve6+z91HgK8D1xfw8xa8C1Y0YIY6jEVkQSlkELQCB3Lm28Nlk73OzH5tZneb2aqp3sjMbjazrWa2tbOzsxC1zovaygTnNtXypIaaEJEFpGCHhmboO8Bd7j5sZm8H/gW4avJG7v554PMAmzZtKuqe1rbWFA/sPsL/uHcHjbUVNNZV0lhXQVNdBY21wXRdZQIzi7pUESkThQyCg0DuL/yV4bKT3P1ozuwXgY8VsJ4F4fqLWniyvZtvbmundyg95TYViRhNOSHRWFsZBEVOWDSF65bUVlCZiM/ztxCRUlLIIPglsM7M1hIEwOuBN+ZuYGYr3L0jnL0O2FXAehaEq85fxlXnLwNgOJ3hWP8IR/tG6Oob5mjfCMf6R+jqD6aP9g1ztH+EPc/10dk3zEg6O+V71lclgmCoDYKhsS4MjgktjmD9opoK4jG1NkRkXMGCwN3TZvbnwA+AOHCHu+8ws78Btrr7vcC7zew6IA0cA95SqHro+DX8x0dgww1w/mugZknBPmqmKhNxVqSqWZGqPuO27k7/SIajfcN05YTEyflwev/RAbY9e5xj/SNMdUO0hGV5RfVerk1spa66kv6L38aLL75oRjWISGmyYru4adOmTb5169bZv3DP/fC998KJ/WBxWPsy2HA9nP9aqGvOf6ERy2SdEwNBQHT19GPP/Jglz3yflUd+RO3oMUasEjyDuXNP5qX8++I3sm7DC9l83lI2rVlMMq5rDUVKiZk95u6bplxXNkEA4A4dT8DOb8POf4Nj+8BisPqKIBQu+F2oX57fgqOSGYXfPhR8113fhcFjkKyF814dfNd1r8IHj3P8/tto2HEnsewo38lczqfT19NRsYaXPr+Jzeub2bx+KctTuuZBpNgpCKbiDs/tGA+FrqcBg3MuHw+F1FRnuy5g6RHY92DwfXZ/D4ZOQEU9rL86+E7PfyUkpzgE1HcEfvZp/BdfxEb72d7wcj428Ls83NcCwPnL69m8fimb1zfzotVqLYgUIwXBTBzZFYbCt+FIePHzqv8UhsJ1sGjKSxyiNzoEv/lRUPdT34fhbqhsgPXXwsYb4NwrITnDX/QDx+DRz8LP/wmGu+lb/Uq2NL6JbxxextZnjpPOOvWVCV66bry1oCukRYqDgmC2Op+GXWEoHH4yWNb6ovFQWLK2sJ9/JqODsPf+cOf/7zDSC1WpoL9jww1w7sshUXn27z94An75BfjZZ4JDSuduZuCy9/LwyHk8+FQnDz7VyeGeISC4Wnrz+mY2n9fMJWotiCxYCoK5OPob2HVvsNM99Ktg2YoXBqGw4QZofN781DHSD3u2BHU8vQVG+6F6CVzw2qCWNS+DREV+P3O4D7beAT/9FPQfgXNeAi97H37ulex+ri8MhSNs3X+cTNapr0rwO+ua2HzeUl6+vlmtBZEFREGQL8f3j4dC+y+DZcvawlC4HprX5/fzhnvh6R8En7fnh5AehJqmoP9iw/Ww5ncgPg8Xh48Owravwk8+AT0Hg9bRy26F864GM3qGRvnJnq4gGJ4+wnM9weiqG8LWwpXnL+XiVYtIqLUgEhkFQSF0t8Ou7wQ76WcfBRyazx8PhaUb4GyGiRjqHt/5770f0kNQtyzc+d8Aq18CsYiuJE4PwxN3wSO3BafhLrsQXva+4HBZLNjJuzu7Onp58OkjPPhUJ4+FrYWGqgS/s66Zzeubefn6ZpbWq7UgMp8UBIXW0zEeCvt/Ajg0rhsPheUXTh8KgyeCjt6d/xZ0/GZGoH5FsIPdeEPQaR3Vzn8qmVF48m545ONwdA80rQ8CYePvn9JC6R4c5Sd7u3jwqSAYxu7FsLElbC2sX8raploSsRiJuBGPGcl4jJih8ZZE8khBMJ96n4Pd3w1C4ZlHwLOweO14KLRcHITCwLHgFM+d3w5O+cyOQsPK8e1Wvvjkr+wFK5sJwuvhfwjOtFpyLrz0vfCCP5yyv8Ld2dnRw4NPdfLQU5089mzQWjid5FgwxGLE4xaERcxIxC18Hp+Px2IkY+NBEjwH8ye3m+b1iViM5vpKWhdXs2pxNa2LaqiuWEDhKzJHCoKo9HeN7+x/+xBk05A6Bxavhmd/FswvOme847nlkoW/859KNgtP3QcP/2/oeBxSq+CKW+DiN0176mr34Cg/3dvFkd5h0lknncmGz04mm2U062SyzmgmGz4Hy9MZD7abMJ37+tztndFsMB9sm/Oase3Dz5mssbaC1sXVrFxcTeuialYurgmelwTz9VXJQv5VRfJKQbAQDBwLD/98G048O36F71gLoRS4B/0aD30M2n8BdcvhinfDi94CFbVRVzetTNY50jvEweODtB8f5OCJQdqPDwTTxwdpPzF4yqB/qeokrYuqTwmLleF8qjq5oA9vjaSz9A6N0jOUpmdwlN6hND1Do/QMjjKaybIipdArJQoCmV/uwWGxhz4WPNc0weXvhBf/KVQ1RF3dWXF3uvpGaD8+EIZEGBA58wMjmQmvqa2IB62Iya2KcLqprmJOQTGcztAzGOy8e8OdebAjH9+hj83n7vDHlg2OZs78IaFUdfJkwLUuGg+7lYtrWLmkmgYFxYKnIJDoPPto0Iew94dQtQguewf8p7dD9eKoK8srd+fEwOiElsR4y2KQg8cH6Jl0/4mqZIyW3ENOi6tZ1lDF0Ghmwg594k5+fIc+fJphycckYkZDdZKGqkT4nKShOhE+J6mvDJfnLBvbJm7Goe6hk2HXfnzi95ocIvVViQmtodzvtGpxDQ3VutlS1BQEEr2D24KzjHZ/Nxj/6NK3Ba2E2qb8vL97cHrr6EBw3cPowKTpQRiZYtnYdulhqGkM+mwWrwmeU6ugoiY/9QE9Q6McnKIlMfZ8rH9kwvbJuJEKd871k3foJ6dPs5OvSlCdjBdk5+vuHB8YnRAQY4fUxub7J7WO6isTJ1tGuYEx1rpYVLOwD6OVAgWBLBzP7QhaCDvuCQbAe9Fbg2sjZrvjnmo7zuLfcrImeCQqob8zOHU3V21zEAoTHqvHp6caxO8sDYyk6ewdpjoZp6E6SWUiVpQ7x7HWURByAxMCYmy6b3hi62jyYbSxwFjWUEl9VZLaygR14UM3Vjo7CgJZeLr2BC2EX38DfIpj1RYb30knq099rphqXXUw1PYpy2qm3j5RNbGjPpuFvueCzvwTzwYXzZ2cfha6D0wRFEunCYpVeQ2KUuHu9AymOf3UOVIAAAfCSURBVJDbojgxsUVxutu4AtRUxINQqEpQHz4HIRG0hOpylp2cP7l98uS6ikQRnqE3BwoCWbh6DgWn2VbUTtxxxysW3tlUE4Ji/6lBceJAcD1IrtygWLx6YlikViooTqN7MDiMdqR3iP7hDH3DQV9J33CavvC5N2f65LKhUfqG0xPuzmdkSZAlQZokGeJkSJChJuGkKoyGSmhIOvUVUF8BdQmoq3BqE0Zd0qmJZ7GKWoZrlpGuWUa2oo5ELLhWJR4LrkmJ5zwSMSM2aXkwHSNuFl4TY8QsXB63YHnOawrRElQQiMyHbBb6Dk/doji+PxiWZHJQ1C2b2JpIrRwPwngyfM59JE8/nagMpqO6Cj2TDsbDSg8HQ6Okh4NDdyfnc6ZHh8a3Oe3y8DmbDv5umXTO9Gg4nT5l2rPhfCbY1nz6TvXZ6vMqnvPFwYPF49M5y474YkY4+zOpYgaJWIxYjJOhk4gZb3nJGt71inVn9Z7TBcE8jFgmUiZiMWhoCR7nXHbq+mwGeg9PakWEYXFwG+y899SgOBsWmyIsxp4rTxMmk5bF4sGNjmaz857qEN9sxCuDCxATVUGoJarDehIQS46HXaw2rDERPOLJcH0wb2PbxuLjr5swHc6fnE5M/IycbUfcGEjHSA/2YL2Hsb7DxPoOs7T/MCv6niMx8CyJga3EMsOnfJ2RikUMVy9lsGoZQ1XNDFYupb+yOXhULKUv2UhfcglpjwUXPGadbM4Fjhn3kxdCZj24GHLdsvq5/Y1PQ0EgMl9i8eCud6lWWH35qeuzmaDDenQw+JWbGQkfudNTLZs0nR4+wzY5y0b6pt42m564Q05UBvM1S6ZePnkHPtvl8YoFeVV9RfiYljsMHofejuDR0wG9h6no7aCi9zD1vYfg2N7gsOLk1onFglZh/fJgfLH65VDfMj7fsCJ4rl5c0EOlCgKRhSIWL517ZpcTsyAga5bAso2n3y6bCW4L2xsExcngGJs/8Wxw3c3gsVNfG68I/m1cejO85F15/woKAhGR+RCLB7/wG1ZMv93oUNB6yA2JsZZGXWF+KCgIREQWkmRVcIbZ4tXz9pEL76CciIjMKwWBiEiZUxCIiJQ5BYGISJlTEIiIlDkFgYhImVMQiIiUOQWBiEiZK7rRR82sE9h/li9vArryWE6x099jIv09xulvMVEp/D1Wu3vzVCuKLgjmwsy2nm4Y1nKkv8dE+nuM099iolL/e+jQkIhImVMQiIiUuXILgs9HXcACo7/HRPp7jNPfYqKS/nuUVR+BiIicqtxaBCIiMomCQESkzJVNEJjZ1Wb2lJntNbMPRF1PlMxslZk9YGY7zWyHmd0SdU1RM7O4mf3KzL4bdS1RM7NFZna3me02s11mNsUNlsuDmf3X8P/IdjO7y8yqoq6pEMoiCMwsDvwjcA2wAXiDmW2ItqpIpYG/cPcNwGXAO8v87wFwC7Ar6iIWiE8C/+7u5wMvpEz/LmbWCrwb2OTubUAceH20VRVGWQQBcCmw1933ufsI8HXg+ohrioy7d7j7tnC6l+A/emu0VUXHzFYCrwG+GHUtUTOzFPAy4EsA7j7i7ieirSpSCaDazBJADXAo4noKolyCoBU4kDPfThnv+HKZ2RrgYuDn0VYSqU8A/w3IRl3IArAW6AT+OTxU9kUzq426qCi4+0HgH4BngQ6g2923RFtVYZRLEMgUzKwO+CbwHnfvibqeKJjZa4Ej7v5Y1LUsEAngEuCz7n4x0A+UZZ+amS0mOHKwFmgBas3spmirKoxyCYKDwKqc+ZXhsrJlZkmCEPiau38r6noidAVwnZk9Q3DI8CozuzPakiLVDrS7+1gL8W6CYChHrwR+6+6d7j4KfAt4ScQ1FUS5BMEvgXVmttbMKgg6fO6NuKbImJkRHAPe5e63RV1PlNz9g+6+0t3XEPy7+JG7l+Svvplw98PAATNbHy56BbAzwpKi9CxwmZnVhP9nXkGJdpwnoi5gPrh72sz+HPgBQc//He6+I+KyonQF8CbgSTN7PFz2l+5+X4Q1ycLxLuBr4Y+mfcBbI64nEu7+czO7G9hGcKbdryjRoSY0xISISJkrl0NDIiJyGgoCEZEypyAQESlzCgIRkTKnIBARKXMKApFJzCxjZo/nPPJ2Za2ZrTGz7fl6P5F8KIvrCERmadDdL4q6CJH5ohaByAyZ2TNm9jEze9LMfmFmzw+XrzGzH5nZr83sP8zsnHD5MjO7x8yeCB9jwxPEzewL4Tj3W8ysOrIvJYKCQGQq1ZMODf1hzrpud78Q+DTBqKUAnwL+xd1fAHwNuD1cfjvwkLu/kGC8nrGr2dcB/+juG4ETwOsK/H1EpqUri0UmMbM+d6+bYvkzwFXuvi8ctO+wuzeaWRewwt1Hw+Ud7t5kZp3ASncfznmPNcAP3X1dOP9+IOnuf1v4byYyNbUIRGbHTzM9G8M50xnUVycRUxCIzM4f5jz/LJz+KeO3MPwj4JFw+j+Ad8DJeyKn5qtIkdnQLxGRU1XnjMoKwf17x04hXWxmvyb4Vf+GcNm7CO7odSvB3b3GRuu8Bfi8mf0JwS//dxDc6UpkQVEfgcgMhX0Em9y9K+paRPJJh4ZERMqcWgQiImVOLQIRkTKnIBARKXMKAhGRMqcgEBEpcwoCEZEy9/8BlwytVW8dgZYAAAAASUVORK5CYII=\n" + }, + "metadata": { + "needs_background": "light" + } + } + ] + }, + { + "cell_type": "code", + "source": [ + "from sklearn.metrics import classification_report, confusion_matrix\n", + "import numpy as np\n", + "\n", + "# print classification report" + ], + "metadata": { + "id": "fJ-ZtU84r66Z" + }, + "execution_count": 47, + "outputs": [] + }, + { + "cell_type": "code", + "source": [ + "# Use the classification report to print precision, recall, f1-score for the three classes(optional, brownie points)\n", + "\n", + "from sklearn.metrics import classification_report, confusion_matrix\n", + "\n", + "predictions=model.predict(test)\n", + "\n", + "Y_pred = model.predict_generator(test, 1794 // 64+1)\n", + "y_pred = np.argmax(Y_pred, axis=1)\n", + "target_names = ['mask_weared_incorrect', 'with_mask', 'without_mask']\n", + "print(classification_report(test.classes, y_pred, target_names=target_names))" + ], + "metadata": { + "id": "VytDxkswrvXw", + "colab": { + "base_uri": "https://localhost:8080/" + }, + "outputId": "303ab16d-3964-46fe-9c2c-6edfdd2aa58d" + }, + "execution_count": 44, + "outputs": [ + { + "output_type": "stream", + "name": "stderr", + "text": [ + "/usr/local/lib/python3.7/dist-packages/ipykernel_launcher.py:8: UserWarning: `Model.predict_generator` is deprecated and will be removed in a future version. Please use `Model.predict`, which supports generators.\n", + " \n" + ] + }, + { + "output_type": "stream", + "name": "stdout", + "text": [ + " precision recall f1-score support\n", + "\n", + "mask_weared_incorrect 0.33 0.33 0.33 598\n", + " with_mask 0.31 0.33 0.32 598\n", + " without_mask 0.30 0.28 0.29 598\n", + "\n", + " accuracy 0.31 1794\n", + " macro avg 0.31 0.31 0.31 1794\n", + " weighted avg 0.31 0.31 0.31 1794\n", + "\n" + ] + } + ] + } + ] +} \ No newline at end of file