Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Save Curt-Park/2e7b9f2cea5aa259055e4696ee194717 to your computer and use it in GitHub Desktop.
Save Curt-Park/2e7b9f2cea5aa259055e4696ee194717 to your computer and use it in GitHub Desktop.
mnist_classification_with_two_layer_network.ipynb
Display the source blob
Display the rendered blob
Raw
{
"nbformat": 4,
"nbformat_minor": 0,
"metadata": {
"colab": {
"provenance": [],
"authorship_tag": "ABX9TyNHvWTcRDiBYriS5KnRJVLK",
"include_colab_link": true
},
"kernelspec": {
"name": "python3",
"display_name": "Python 3"
},
"language_info": {
"name": "python"
}
},
"cells": [
{
"cell_type": "markdown",
"metadata": {
"id": "view-in-github",
"colab_type": "text"
},
"source": [
"<a href=\"https://colab.research.google.com/gist/Curt-Park/2e7b9f2cea5aa259055e4696ee194717/mnist_classification_with_two_layer_network.ipynb\" target=\"_parent\"><img src=\"https://colab.research.google.com/assets/colab-badge.svg\" alt=\"Open In Colab\"/></a>"
]
},
{
"cell_type": "markdown",
"source": [
"# MNIST Classification with Two-Layer Network"
],
"metadata": {
"id": "oy1HDOWNfeou"
}
},
{
"cell_type": "code",
"execution_count": 1,
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/"
},
"id": "Md3gftPufV7J",
"outputId": "ada234ed-fb4d-43fd-f619-81b94fca5b9c"
},
"outputs": [
{
"output_type": "stream",
"name": "stdout",
"text": [
"Requirement already satisfied: mnist in /usr/local/lib/python3.10/dist-packages (0.2.2)\n",
"Requirement already satisfied: numpy in /usr/local/lib/python3.10/dist-packages (from mnist) (1.25.2)\n"
]
}
],
"source": [
"!pip install mnist"
]
},
{
"cell_type": "code",
"source": [
"import mnist\n",
"\n",
"\n",
"train_images = mnist.train_images().reshape(-1, 28 * 28)\n",
"train_labels = mnist.train_labels()\n",
"\n",
"validation_images = train_images[:10000]\n",
"validation_labels = train_labels[:10000]\n",
"train_images = train_images[10000:]\n",
"train_labels = train_labels[10000:]\n",
"\n",
"test_images = mnist.test_images().reshape(-1, 28 * 28)\n",
"test_labels = mnist.test_labels()"
],
"metadata": {
"id": "FAee4ThqfsqF"
},
"execution_count": 2,
"outputs": []
},
{
"cell_type": "code",
"source": [
"print(\"train image shape:\", train_images.shape)\n",
"print(\"validation image shape:\", validation_images.shape)\n",
"print(\"test image shape:\", test_images.shape)"
],
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/"
},
"id": "awdv-oNMgAWr",
"outputId": "537700c0-35af-4370-f31b-c4252e0d92cf"
},
"execution_count": 3,
"outputs": [
{
"output_type": "stream",
"name": "stdout",
"text": [
"train image shape: (50000, 784)\n",
"validation image shape: (10000, 784)\n",
"test image shape: (10000, 784)\n"
]
}
]
},
{
"cell_type": "code",
"source": [
"import matplotlib.pyplot as plt\n",
"import numpy as np\n",
"\n",
"\n",
"x_test = test_images[:10]\n",
"y_test = test_labels[:10]\n",
"\n",
"rotated_images = np.array(list(map(lambda i: x_test[i].reshape(28, 28), range(len(x_test)))))\n",
"labels_mapping = [str(i) for i in range(10)]\n",
"\n",
"fig = plt.figure(0)\n",
"fig.set_size_inches(30, 30)\n",
"for i in range(len(x_test)):\n",
" fig.add_subplot(5, 5, i+1)\n",
" plt.imshow(rotated_images[i])\n",
" plt.title(f\"Label: {labels_mapping[y_test[i]]}\")"
],
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/",
"height": 566
},
"id": "UX1g2asjk3-p",
"outputId": "c6f46ac2-a885-4a73-f43e-38b5a38c8891"
},
"execution_count": 4,
"outputs": [
{
"output_type": "display_data",
"data": {
"text/plain": [
"<Figure size 3000x3000 with 10 Axes>"
],
"image/png": "iVBORw0KGgoAAAANSUhEUgAACUEAAAOuCAYAAAAjQEQKAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/bCgiHAAAACXBIWXMAAA9hAAAPYQGoP6dpAACR70lEQVR4nOzdeZzWdbk//mtgYABlEdkVENwQtwwVUVNMErAsTEtb1V/HTootLunBb26dTqQnlaOSes6pyJNmuaAtHju5YFkI4ZJZSmCSKyAqiyjDMvfvD3NyhBuY99wzn3nPPJ+Px/0o7vu+5n3Nh6kXM7y476pSqVQKAAAAAAAAAACATHUoegEAAAAAAAAAAICmUIICAAAAAAAAAACypgQFAAAAAAAAAABkTQkKAAAAAAAAAADImhIUAAAAAAAAAACQNSUoAAAAAAAAAAAga0pQAAAAAAAAAABA1pSgAAAAAAAAAACArClBAQAAAAAAAAAAWVOCgoIsWrQoqqqq4tvf/nbFPuasWbOiqqoqZs2aVbGPCQBtjQwGgGLIYAAohgwGgGLIYGh5SlDQCDNmzIiqqqqYN29e0as0i5122imqqqo2edt1112LXg+AdqytZ/Dtt98eJ5xwQgwfPjy6desWu+++e5x99tmxfPnyolcDoJ1r6xk8f/78OPPMM+Pggw+OLl26RFVVVSxatKjotQCgzWdwRMQLL7wQH//4x6NXr17Ro0eP+MhHPhJ//etfi14LgHauPWTwO33gAx+IqqqqOOOMM4peBSqiuugFgNZj2rRp8frrrze4729/+1t87Wtfi6OOOqqgrQCg7fv85z8fgwYNik9/+tMxZMiQ+OMf/xjXXHNN3HXXXfHII49E165di14RANqk2bNnx1VXXRUjR46MPfbYIx577LGiVwKAduH111+PI444IlasWBHnn39+dOrUKa688so4/PDD47HHHovtt9++6BUBoM27/fbbY/bs2UWvARWlBAXUmzRp0kb3feMb34iIiE996lMtvA0AtB+33nprjB07tsF9o0aNipNOOiluvPHG+Kd/+qdiFgOANu7DH/5wLF++PLp37x7f/va3laAAoIV85zvfiQULFsTcuXPjgAMOiIiIiRMnxl577RWXX355fPOb3yx4QwBo29asWRNnn312nHfeeXHhhRcWvQ5UjLfDgwpbu3ZtXHjhhTFq1Kjo2bNnbLPNNvG+970v7r///rIzV155ZQwdOjS6du0ahx9+eDzxxBMbPeepp56K448/Pnr37h1dunSJ/fffP376059ucZ833ngjnnrqqVi2bFnS53PTTTfFsGHD4uCDD06aB4CWknMGv7sAFRFx7LHHRkTEk08+ucV5AChSzhncu3fv6N69+xafBwCtUc4ZfOutt8YBBxxQX4CKiBgxYkQceeSR8ZOf/GSL8wBQpJwz+G2XXXZZ1NXVxTnnnLPVM5ADJSiosJUrV8Z///d/x9ixY+PSSy+Niy++OF5++eUYP378Jv9F6Q033BBXXXVVTJ48OaZMmRJPPPFEvP/9748lS5bUP+dPf/pTHHTQQfHkk0/Gv/zLv8Tll18e22yzTUyaNClmzpy52X3mzp0be+yxR1xzzTWN/lweffTRePLJJ+OTn/xko2cBoKW1pQyOiFi8eHFERPTp0ydpHgBaSlvLYADIRa4ZXFdXF48//njsv//+Gz124IEHxtNPPx2rVq3auosAAAXINYPf9uyzz8a3vvWtuPTSS6Nr166N+tyhtfN2eFBh2223XSxatCg6d+5cf9+pp54aI0aMiKuvvjq++93vNnj+woULY8GCBbHDDjtERMSECRNi9OjRcemll8YVV1wRERFf/vKXY8iQIfH73/8+ampqIiLi9NNPj0MPPTTOO++8+leKqLQbb7wxIrwVHgB5aEsZHBFx6aWXRseOHeP4449vtjMAoBLaWgYDQC5yzeBXX301amtrY+DAgRs99vZ9L774Yuy+++5NPgsAmkOuGfy2s88+O/bbb7848cQTK/YxobXwSlBQYR07dqwPvLq6unj11Vdj/fr1sf/++8cjjzyy0fMnTZpUH3gRb/1Ll9GjR8ddd90VEW99Q3jffffFxz/+8Vi1alUsW7Ysli1bFq+88kqMHz8+FixYEC+88ELZfcaOHRulUikuvvjiRn0edXV1cfPNN8d+++0Xe+yxR6NmAaAIbSWDI956O9rvfve7cfbZZ8euu+7a6HkAaEltKYMBICe5ZvCbb74ZEVH/F7zv1KVLlwbPAYDWKNcMjoi4//7747bbbotp06Y17pOGTChBQTP4wQ9+EPvss0906dIltt9+++jbt2/84he/iBUrVmz03E39xeZuu+0WixYtioi3msGlUikuuOCC6Nu3b4PbRRddFBERS5curfjn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FxExZ9RNybNU1sivnZE8O/zc2RXcBGjt1hxzYNLcoV3mJp7oR1AAbNm3fnx80tzHPzetsotswa//fXry7LrShgpusjXntehxTdLS16Yp9rr3C0lzu8YjFd4EACqgKm2sQwGvuVP128da/Ezy4pWgAAAAAAAAAACArClBAQAAAAAAAAAAWWtUCWrq1KlxwAEHRPfu3aNfv34xadKkmD9/foPnrFmzJiZPnhzbb799bLvttnHcccfFkiVLKro0ALQ3MhgAiiGDAaAYMhgAiiGDAchZo0pQDzzwQEyePDkeeuih+NWvfhXr1q2Lo446KlavXl3/nDPPPDN+9rOfxS233BIPPPBAvPjii/HRj3604osDQHsigwGgGDIYAIohgwGgGDIYgJxVN+bJd999d4Nfz5gxI/r16xcPP/xwHHbYYbFixYr47ne/GzfddFO8//3vj4iI73//+7HHHnvEQw89FAcddFDlNgeAdkQGA0AxZDAAFEMGA0AxZDAAOWvUK0G924oVKyIionfv3hER8fDDD8e6deti3Lhx9c8ZMWJEDBkyJGbPnt2UowCAd5DBAFAMGQwAxZDBAFAMGQxAThr1SlDvVFdXF1/5ylfikEMOib322isiIhYvXhydO3eOXr16NXhu//79Y/HixZv8OLW1tVFbW1v/65UrV6auBADtggwGgGLIYAAohgwGgGLIYAByk/xKUJMnT44nnngibr755iYtMHXq1OjZs2f9bfDgwU36eADQ1slgACiGDAaAYshgACiGDAYgN0klqDPOOCN+/vOfx/333x877rhj/f0DBgyItWvXxvLlyxs8f8mSJTFgwIBNfqwpU6bEihUr6m/PPfdcykoA0C7IYAAohgwGgGLIYAAohgwGIEeNKkGVSqU444wzYubMmXHffffFsGHDGjw+atSo6NSpU9x77731982fPz+effbZGDNmzCY/Zk1NTfTo0aPBDQBoSAYDQDFkMAAUQwYDQDFkMAA5q27MkydPnhw33XRT3HnnndG9e/f693Xt2bNndO3aNXr27Bmf+9zn4qyzzorevXtHjx494otf/GKMGTMmDjrooGb5BACgPZDBAFAMGQwAxZDBAFAMGQxAzhpVgrr22msjImLs2LEN7v/+978fJ598ckREXHnlldGhQ4c47rjjora2NsaPHx/f+c53KrIsALRXMhgAiiGDAaAY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tq266AWA1mP27Nlx1VVXxciRI2OPPfaIxx57rOiVAKDduf3222P27NlFrwEA7cK1114bp59+ehx55JFxxRVXxPPPPx//8R//EfPmzYs5c+b4i1gAaGbXXnttbLvttvW/7tixY4HbAEDb5/tg2jolKKDehz/84Vi+fHl07949vv3tbytBAUALW7NmTZx99tlx3nnnxYUXXlj0OgDQpq1duzbOP//8OOyww+JXv/pVVFVVRUTEwQcfHMccc0z813/9V3zxi18seEsAaNuOP/746NOnT9FrAEC74Ptg2gNvhwcVtnbt2rjwwgtj1KhR0bNnz9hmm23ife97X9x///1lZ6688soYOnRodO3aNQ4//PB44oknNnrOU089Fccff3z07t07unTpEvvvv3/89Kc/3eI+b7zxRjz11FNb9RKGvXv3ju7du2/xeQDQGuWcwW+77LLLoq6uLs4555ytngGAouWawU888UQsX748TjjhhPof/EZEfOhDH4ptt902br755i2eBQBFyjWD36lUKsXKlSujVCpt9QwAFC3XDPZ9MO2BEhRU2MqVK+O///u/Y+zYsXHppZfGxRdfHC+//HKMHz9+k6+sdMMNN8RVV10VkydPjilTpsQTTzwR73//+2PJkiX1z/nTn/4UBx10UDz55JPxL//yL3H55ZfHNttsE5MmTYqZM2dudp+5c+fGHnvsEddcc02lP1UAaFVyz+Bnn302vvWtb8Wll14aXbt2bdTnDgBFyjWDa2trIyI2mbtdu3aNRx99NOrq6rbiCgBAMXLN4HcaPnx49OzZM7p37x6f/vSnG+wCAK1Vrhns+2DaA2+HBxW23XbbxaJFi6Jz587195166qkxYsSIuPrqq+O73/1ug+cvXLgwFixYEDvssENEREyYMCFGjx4dl156aVxxxRUREfHlL385hgwZEr///e+jpqYmIiJOP/30OPTQQ+O8886LY489toU+OwBovXLP4LPPPjv222+/OPHEEyv2MQGgJeSawbvuumtUVVXFb3/72zjllFPq758/f368/PLLERHx2muvxfbbb9/kswCgOeSawW/vfsYZZ8SYMWOipqYmfvOb38T06dNj7ty5MW/evOjRo0dFzgGA5pBrBvs+mPbAK0FBhXXs2LE+8Orq6uLVV1+N9evXx/777x+PPPLIRs+fNGlSfeBFRBx44IExevTouOuuuyIi4tVXX4377rsvPv7xj8eqVati2bJlsWzZsnjllVdi/PjxsWDBgnjhhRfK7jN27NgolUpx8cUXV/YTBYBWJucMvv/+++O2226LadOmNe6TBoBWINcM7tOnT3z84x+PH/zgB3H55ZfHX//61/jNb34TJ5xwQnTq1CkiIt58883GXg4AaDG5ZnDEW3/Re/XVV8cnP/nJOO6442LatGnxgx/8IBYsWBDf+c53GnklAKBl5ZrBvg+mPVCCgmbwgx/8IPbZZ5/o0qVLbL/99tG3b9/4xS9+EStWrNjoubvuuutG9+22226xaNGiiHirGVwqleKCCy6Ivn37NrhddNFFERGxdOnSZv18ACAXOWbw+vXr40tf+lJ85jOfiQMOOKDJHw8AipBjBkdEXH/99XH00UfHOeecEzvvvHMcdthhsffee8cxxxwTERHbbrttRc4BgOaSawZvyic/+ckYMGBA3HPPPc12BgBUSq4Z7Ptg2jpvhwcV9sMf/jBOPvnkmDRpUnz1q1+Nfv36RceOHWPq1Knx9NNPN/rjvf2+q+ecc06MHz9+k8/ZZZddmrQzALQFuWbwDTfcEPPnz4/rr7++/pvet61atSoWLVoU/fr1i27dujX5LABoDrlmcEREz549484774xnn302Fi1aFEOHDo2hQ4fGwQcfHH379o1evXpV5BwAaA45Z3A5gwcPjldffbVZzwCApso5g30fTFunBAUVduutt8bw4cPj9ttvj6qqqvr7327pvtuCBQs2uu8vf/lL7LTTThERMXz48IiI6NSpU4wbN67yCwNAG5FrBj/77LOxbt26OOSQQzZ67IYbbogbbrghZs6cGZMmTWq2HQCgKXLN4HcaMmRIDBkyJCIili9fHg8//HAcd9xxLXI2AKRqCxn8TqVSKRYtWhT77bdfi58NAI3RFjLY98G0Vd4ODyqsY8eOEfHWN2xvmzNnTsyePXuTz7/jjjsavIfr3LlzY86cOTFx4sSIiOjXr1+MHTs2rr/++njppZc2mn/55Zc3u88bb7wRTz31VCxbtqzRnwsA5CTXDD7xxBNj5syZG90iIo4++uiYOXNmjB49erMfAwCKlGsGlzNlypRYv359nHnmmUnzANBScs7gTX2sa6+9Nl5++eWYMGHCFucBoEg5Z/Cm+D6YtsQrQUGC733ve3H33XdvdP+Xv/zl+NCHPhS33357HHvssfHBD34wnnnmmbjuuuti5MiR8frrr280s8suu8Shhx4ap512WtTW1sa0adNi++23j3PPPbf+OdOnT49DDz009t577zj11FNj+PDhsWTJkpg9e3Y8//zz8Yc//KHsrnPnzo0jjjgiLrroorj44os3+3mtWLEirr766oiI+O1vfxsREddcc0306tUrevXqFWecccbWXB4AaDZtMYNHjBgRI0aM2ORjw4YN8wpQALQKbTGDIyK+9a1vxRNPPBGjR4+O6urquOOOO+L//u//4hvf+EYccMABW3+BAKCZtNUMHjp0aJxwwgmx9957R5cuXeLBBx+Mm2++Od7znvfEP//zP2/9BQKAZtJWM9j3wbR1SlCQ4Nprr93k/SeffHKcfPLJsXjx4rj++uvjl7/8ZYwcOTJ++MMfxi233BKzZs3aaOazn/1sdOjQIaZNmxZLly6NAw88MK655poYOHBg/XNGjhwZ8+bNi0suuSRmzJgRr7zySvTr1y/222+/uPDCCyv2eb322mtxwQUXNLjv8ssvj4i3vilVggKgaG01gwGgtWurGbz33nvHzJkz46c//Wls2LAh9tlnn/jJT34SH/vYxyp2BgA0RVvN4E996lPxu9/9Lm677bZYs2ZNDB06NM4999z4f//v/0W3bt0qdg4ApGqrGez7YNq6qtI7X6MNAAAAAAAAAAAgMx2KXgAAAAAAAAAAAKAplKAAAAAAAAAAAICsKUEBAAAAAAAAAABZU4ICAAAAAAAAAACypgQFAAAAAAAAAABkTQkKAAAAAAAAAADIWnXRC7xbXV1dvPjii9G9e/eoqqoqeh0AMlAqlWLVqlUxaNCg6NBBvzeVDAagsWRwZchgABpLBleGDAagsWRwZchgABprazO41ZWgXnzxxRg8eHDRawCQoeeeey523HHHotfIlgwGIJUMbhoZDEAqGdw0MhiAVDK4aWQwAKm2lMGtrgTVvXv3iIg4NI6O6uhU8DYA5GB9rIsH4676DCGNDAagsWRwZchgABpLBleGDAagsWRwZchgABprazO41ZWg3n7Jw+roFNVVQg+ArVB66z+8bG7TyGAAGk0GV4QMBqDRZHBFyGAAGk0GV4QMBqDRtjKDm+3NaqdPnx477bRTdOnSJUaPHh1z585trqMAgHeQwQBQDBkMAMWQwQBQDBkMQGvTLCWoH//4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0sO16eD26eDadDCvp4PfTAe3pYNr08Ht08G16WBeTwe/mQ5uSwfXpoPbp4Nr2xE7uDJLUD/60Y/ikksuiSuuuCIee+yxGDduXBx//PHxwgsvlD1a6d7ylrfEsmXLNr899NBDZY9UinXr1sW4ceNi+vTp7X786quvjm984xvxrW99K+bMmRO77rprHH/88bFhw4YunrQcW7ufiIgTTjihzefSLbfc0oUTlmPmzJkxderUmD17dtxzzz2xcePGmDx5cqxbt27zYy6++OK4884749Zbb42ZM2fG888/H6ecckqJU3eNbbmbiIhzzjmnzefN1VdfXdLEbC86uDYd/CodvGU6uH06uDYdzGt0cG06+E/0cG06uH06uDYdzGt0cG06+E90cG06uH06uDYdzGt0cG06+E90cG06uH06uLYdsoOLijjqqKOKqVOnbv51S0tLMWLEiGLatGklTlW+K664ohg3blzZY3Q7EVHcdtttm3/d2tpaNDU1FV//+tc3v2/VqlVFY2Njccstt5QwYbneeD9FURRnnnlmcdJJJ5UyT3fywgsvFBFRzJw5syiKVz9P+vbtW9x6662bHzN//vwiIopZs2aVNWYp3ng3RVEU7373u4tPfepT5Q1Fl9DB7dPB7dPBW6aDa9PBtengnksHt08H16aHa9PBteng2nRwz6WD26eDa9PBteng2nRwbTq459LB7dPBteng2nRwbTq4th2hgyvxSlCvvPJKPProozFp0qTN7+vVq1dMmjQpZs2aVeJk3cMzzzwTI0aMiH333TfOOOOMWLJkSdkjdTuLFy+O5cuXt/kcGjhwYIwfP97n0OvMmDEjhg4dGgcddFCcf/75sXLlyrJH6nKrV6+OiIjBgwdHRMSjjz4aGzdubPO5M3bs2Bg1alSP+9x549285qabboohQ4bEoYceGpdffnmsX7++jPHYTnTwlungrdPB20YH6+At0cE9kw7eMh28bfTw1ulgHbwlOrhn0sFbpoO3jQ7eOh2sg7dEB/dMOnjLdPC20cFbp4N18JbsCB3cp+wBtsWLL74YLS0tMWzYsDbvHzZsWPzmN78paaruYfz48XHjjTfGQQcdFMuWLYsrr7wy3vWud8WTTz4Z/fv3L3u8bmP58uUREe1+Dr32sZ7uhBNOiFNOOSXGjBkTixYtis997nMxZcqUmDVrVvTu3bvs8bpE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\n"
},
"metadata": {}
}
]
},
{
"cell_type": "code",
"source": [
"from typing import Optional\n",
"\n",
"\n",
"class TwoLayerNet:\n",
" \"\"\"A two-layer fully-connected neural network.\n",
"\n",
" The net has an input dimension of N, a hidden layer dimension of H,\n",
" and performs classification over C classes.\n",
" We train the network with a softmax loss function and L2 regularization on the\n",
" weight matrices. The network uses a ReLU nonlinearity after the first fully\n",
" connected layer.\n",
"\n",
" In other words, the network has the following architecture:\n",
"\n",
" input - fully connected layer - ReLU - fully connected layer - softmax\n",
"\n",
" The outputs of the second fully-connected layer are the scores for each class.\n",
" \"\"\"\n",
"\n",
" def __init__(\n",
" self, input_size: int, hidden_size: int, output_size: int, std: float = 1e-4\n",
" ) -> None:\n",
" \"\"\"Initialize the model. Weights are initialized to small random values and\n",
" biases are initialized to zero. Weights and biases are stored in the\n",
" variable self.params, which is a dictionary with the following keys:\n",
"\n",
" W1: First layer weights; has shape (D, H)\n",
" b1: First layer biases; has shape (H,)\n",
" W2: Second layer weights; has shape (H, C)\n",
" b2: Second layer biases; has shape (C,)\n",
"\n",
" Inputs:\n",
" - input_size: The dimension D of the input data.\n",
" - hidden_size: The number of neurons H in the hidden layer.\n",
" - output_size: The number of classes C.\n",
" \"\"\"\n",
" self.params = {}\n",
" self.params[\"W1\"] = std * np.random.randn(input_size, hidden_size)\n",
" self.params[\"b1\"] = np.zeros(hidden_size)\n",
" self.params[\"W2\"] = std * np.random.randn(hidden_size, output_size)\n",
" self.params[\"b2\"] = np.zeros(output_size)\n",
"\n",
" def loss(\n",
" self, X: np.ndarray, y: Optional[np.ndarray] = None, reg: float = 0.\n",
" ) -> tuple[float, dict[str, float]]:\n",
" \"\"\"Compute the loss and gradients for a two layer fully connected neural network.\n",
"\n",
" Inputs:\n",
" - X: Input data of shape (N, D). Each X[i] is a training sample.\n",
" - y: Vector of training labels. y[i] is the label for X[i], and each y[i] is\n",
" an integer in the range 0 <= y[i] < C. This parameter is optional; if it\n",
" is not passed then we only return scores, and if it is passed then we\n",
" instead return the loss and gradients.\n",
" - reg: Regularization strength.\n",
"\n",
" Returns:\n",
" If y is None, return a matrix scores of shape (N, C) where scores[i, c] is\n",
" the score for class c on input X[i].\n",
"\n",
" If y is not None, instead return a tuple of:\n",
" - loss: Loss (data loss and regularization loss) for this batch of training\n",
" samples.\n",
" - grads: Dictionary mapping parameter names to gradients of those parameters\n",
" with respect to the loss function; has the same keys as self.params.\n",
" \"\"\"\n",
" # Unpack variables from the params dictionary\n",
" W1, b1 = self.params[\"W1\"], self.params[\"b1\"]\n",
" W2, b2 = self.params[\"W2\"], self.params[\"b2\"]\n",
" N, D = X.shape\n",
"\n",
" # Compute the forward pass\n",
" l1 = np.maximum(0, X.dot(W1) + b1) # ReLU. l1: (N, hidden_size)\n",
" scores = l1.dot(W2) + b2 # (N, output_size)\n",
"\n",
" # If the targets are not given then jump out, we're done\n",
" if y is None:\n",
" return scores\n",
"\n",
" # Compute the loss\n",
" scores -= np.max(scores, axis=1, keepdims=True)\n",
" p = np.exp(scores) / np.exp(scores).sum(axis=1, keepdims=True)\n",
" loss = -np.log(p[np.arange(N), y]).sum()\n",
" loss /= N\n",
" loss += 0.5 * reg * (np.sum(W1 * W1) + np.sum(W2 * W2))\n",
"\n",
" # Backward pass: compute gradients\n",
" grads: dict[str, float] = {}\n",
" # For W2 and b2\n",
" dsoftmax_loss = p\n",
" dsoftmax_loss[np.arange(N), y] -= 1\n",
" dsoftmax_loss /= N\n",
" grads[\"W2\"] = l1.T.dot(dsoftmax_loss)\n",
" grads[\"b2\"] = dsoftmax_loss.sum(axis=0)\n",
"\n",
" # For hidden layer\n",
" dl1 = dsoftmax_loss.dot(W2.T)\n",
"\n",
" # For ReLU\n",
" dl1[l1==0] = 0\n",
"\n",
" # For W1 and b1\n",
" grads[\"W1\"] = X.T.dot(dl1)\n",
" grads[\"b1\"] = dl1.sum(axis=0)\n",
"\n",
" # Regularization\n",
" grads[\"W2\"] += reg * W2\n",
" grads[\"W1\"] += reg * W1\n",
"\n",
" return loss, grads\n",
"\n",
" def train(\n",
" self,\n",
" X: np.ndarray,\n",
" y: np.ndarray,\n",
" X_val: np.ndarray,\n",
" y_val: np.ndarray,\n",
" learning_rate: float = 1e-3,\n",
" learning_rate_decay: float = 0.95,\n",
" reg: float = 5e-6,\n",
" num_iters: int = 100,\n",
" batch_size: int = 200,\n",
" verbose: bool = False\n",
" ) -> dict[str, list[float]]:\n",
" \"\"\"Train this neural network using stochastic gradient descent.\n",
"\n",
" Inputs:\n",
" - X: A numpy array of shape (N, D) giving training data.\n",
" - y: A numpy array f shape (N,) giving training labels; y[i] = c means that\n",
" X[i] has label c, where 0 <= c < C.\n",
" - X_val: A numpy array of shape (N_val, D) giving validation data.\n",
" - y_val: A numpy array of shape (N_val,) giving validation labels.\n",
" - learning_rate: Scalar giving learning rate for optimization.\n",
" - learning_rate_decay: Scalar giving factor used to decay the learning rate\n",
" after each epoch.\n",
" - reg: Scalar giving regularization strength.\n",
" - num_iters: Number of steps to take when optimizing.\n",
" - batch_size: Number of training examples to use per step.\n",
" - verbose: boolean; if true print progress during optimization.\n",
" \"\"\"\n",
" num_train = X.shape[0]\n",
" iterations_per_epoch = max(num_train / batch_size, 1)\n",
"\n",
" # Use SGD to optimize the parameters in self.model\n",
" loss_history = []\n",
" train_acc_history = []\n",
" val_acc_history = []\n",
"\n",
" for it in range(num_iters):\n",
" sampling_indices = np.random.choice(num_train, batch_size)\n",
" X_batch = X[sampling_indices,:]\n",
" y_batch = y[sampling_indices]\n",
"\n",
" # Compute loss and gradients using the current minibatch\n",
" loss, grads = self.loss(X_batch, y=y_batch, reg=reg)\n",
" loss_history.append(loss)\n",
"\n",
" self.params[\"W2\"] -= learning_rate*grads[\"W2\"]\n",
" self.params[\"b2\"] -= learning_rate*grads[\"b2\"]\n",
" self.params[\"W1\"] -= learning_rate*grads[\"W1\"]\n",
" self.params[\"b1\"] -= learning_rate*grads[\"b1\"]\n",
"\n",
" if verbose and it % 100 == 0 or it + 1 == num_iters:\n",
" print(f\"iteration {it} / {num_iters}: loss {loss}\")\n",
"\n",
" # Every epoch, check train and val accuracy and decay learning rate.\n",
" if it % iterations_per_epoch == 0:\n",
" # Check accuracy\n",
" train_acc = (self.predict(X_batch) == y_batch).mean()\n",
" val_acc = (self.predict(X_val) == y_val).mean()\n",
" train_acc_history.append(train_acc)\n",
" val_acc_history.append(val_acc)\n",
"\n",
" # Decay learning rate\n",
" learning_rate *= learning_rate_decay\n",
"\n",
" return {\n",
" \"loss_history\": loss_history,\n",
" \"train_acc_history\": train_acc_history,\n",
" \"val_acc_history\": val_acc_history,\n",
" }\n",
"\n",
" def predict(self, X: np.ndarray) -> int:\n",
" \"\"\"Use the trained weights of this two-layer network to predict labels for\n",
" data points. For each data point we predict scores for each of the C\n",
" classes, and assign each data point to the class with the highest score.\n",
"\n",
" Inputs:\n",
" - X: A numpy array of shape (N, D) giving N D-dimensional data points to\n",
" classify.\n",
"\n",
" Returns:\n",
" - y_pred: A numpy array of shape (N,) giving predicted labels for each of\n",
" the elements of X. For all i, y_pred[i] = c means that X[i] is predicted\n",
" to have class c, where 0 <= c < C.\n",
" \"\"\"\n",
" scores = self.loss(X)\n",
" y_pred = np.argmax(scores, axis=1)\n",
" return y_pred"
],
"metadata": {
"id": "nBuuVZgTgGQW"
},
"execution_count": 5,
"outputs": []
},
{
"cell_type": "code",
"source": [
"net = TwoLayerNet(input_size=28*28, hidden_size=50, output_size=10, std=1e-1)\n",
"stats = net.train(\n",
" train_images,\n",
" train_labels,\n",
" validation_images,\n",
" validation_labels,\n",
" num_iters=50000,\n",
" batch_size=32,\n",
" learning_rate=1e-4,\n",
" learning_rate_decay=0.95,\n",
" reg=0.25,\n",
" verbose=True\n",
")"
],
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/"
},
"id": "x0FUH6uCgU4q",
"outputId": "b1a987f3-c9ab-4b23-8b09-1247b9d8f42a"
},
"execution_count": 6,
"outputs": [
{
"output_type": "stream",
"name": "stdout",
"text": [
"iteration 0 / 50000: loss 174.53135037310625\n",
"iteration 100 / 50000: loss 69.48747236188227\n",
"iteration 200 / 50000: loss 56.49037147912324\n",
"iteration 300 / 50000: loss 55.089730076216675\n",
"iteration 400 / 50000: loss 53.36511864384791\n",
"iteration 500 / 50000: loss 53.81747712002853\n",
"iteration 600 / 50000: loss 54.47308871264755\n",
"iteration 700 / 50000: loss 48.857464900515225\n",
"iteration 800 / 50000: loss 50.368133951829776\n",
"iteration 900 / 50000: loss 51.23669198011844\n",
"iteration 1000 / 50000: loss 51.14886770388517\n",
"iteration 1100 / 50000: loss 54.9678566815431\n",
"iteration 1200 / 50000: loss 48.18517976759856\n",
"iteration 1300 / 50000: loss 49.9726430580723\n",
"iteration 1400 / 50000: loss 49.18964790207137\n",
"iteration 1500 / 50000: loss 46.99336147176874\n",
"iteration 1600 / 50000: loss 45.891550518507785\n",
"iteration 1700 / 50000: loss 48.61488855707326\n",
"iteration 1800 / 50000: loss 46.10700031317256\n",
"iteration 1900 / 50000: loss 46.95774963008768\n",
"iteration 2000 / 50000: loss 46.428578383379445\n",
"iteration 2100 / 50000: loss 45.63466912068143\n",
"iteration 2200 / 50000: loss 46.53266795466356\n",
"iteration 2300 / 50000: loss 44.94858555355828\n",
"iteration 2400 / 50000: loss 45.60557814755142\n",
"iteration 2500 / 50000: loss 45.39935230009701\n",
"iteration 2600 / 50000: loss 44.67134675483038\n",
"iteration 2700 / 50000: loss 44.77288920410572\n",
"iteration 2800 / 50000: loss 43.69977332688362\n",
"iteration 2900 / 50000: loss 43.730446656985066\n",
"iteration 3000 / 50000: loss 43.560656333147215\n",
"iteration 3100 / 50000: loss 44.420026111542064\n",
"iteration 3200 / 50000: loss 43.27341088354223\n",
"iteration 3300 / 50000: loss 42.6917082043561\n",
"iteration 3400 / 50000: loss 42.99590946087199\n",
"iteration 3500 / 50000: loss 42.074454274905015\n",
"iteration 3600 / 50000: loss 42.34553108107577\n",
"iteration 3700 / 50000: loss 42.19451871876929\n",
"iteration 3800 / 50000: loss 42.30068082867391\n",
"iteration 3900 / 50000: loss 41.59060395331328\n",
"iteration 4000 / 50000: loss 41.837978585274996\n",
"iteration 4100 / 50000: loss 41.661003320080354\n",
"iteration 4200 / 50000: loss 41.56867064092525\n",
"iteration 4300 / 50000: loss 42.265296452640214\n",
"iteration 4400 / 50000: loss 40.74161597772827\n",
"iteration 4500 / 50000: loss 40.686929046416815\n",
"iteration 4600 / 50000: loss 41.38809501428429\n",
"iteration 4700 / 50000: loss 39.92590750434553\n",
"iteration 4800 / 50000: loss 39.88043198325949\n",
"iteration 4900 / 50000: loss 40.50956039318266\n",
"iteration 5000 / 50000: loss 39.84197097002049\n",
"iteration 5100 / 50000: loss 39.64462218143873\n",
"iteration 5200 / 50000: loss 39.41114249441797\n",
"iteration 5300 / 50000: loss 38.5653154055042\n",
"iteration 5400 / 50000: loss 38.69729347046285\n",
"iteration 5500 / 50000: loss 38.686656362672764\n",
"iteration 5600 / 50000: loss 38.49321014870525\n",
"iteration 5700 / 50000: loss 38.337155326339015\n",
"iteration 5800 / 50000: loss 38.9238241645377\n",
"iteration 5900 / 50000: loss 38.184190026416196\n",
"iteration 6000 / 50000: loss 38.17614867043852\n",
"iteration 6100 / 50000: loss 37.3392965852913\n",
"iteration 6200 / 50000: loss 37.11046340680676\n",
"iteration 6300 / 50000: loss 36.88536839567879\n",
"iteration 6400 / 50000: loss 37.036160886820696\n",
"iteration 6500 / 50000: loss 37.49150654153678\n",
"iteration 6600 / 50000: loss 36.93653620441786\n",
"iteration 6700 / 50000: loss 36.591272291210004\n",
"iteration 6800 / 50000: loss 36.450949192373\n",
"iteration 6900 / 50000: loss 36.81271931330199\n",
"iteration 7000 / 50000: loss 36.29706613913226\n",
"iteration 7100 / 50000: loss 36.09016551195607\n",
"iteration 7200 / 50000: loss 35.6288939025018\n",
"iteration 7300 / 50000: loss 35.84212875651818\n",
"iteration 7400 / 50000: loss 35.841453475823656\n",
"iteration 7500 / 50000: loss 35.18575208018029\n",
"iteration 7600 / 50000: loss 35.44639979859994\n",
"iteration 7700 / 50000: loss 34.59538986968303\n",
"iteration 7800 / 50000: loss 34.73558738083211\n",
"iteration 7900 / 50000: loss 34.684809641588565\n",
"iteration 8000 / 50000: loss 34.48921078680681\n",
"iteration 8100 / 50000: loss 35.072609939174036\n",
"iteration 8200 / 50000: loss 35.38801885322622\n",
"iteration 8300 / 50000: loss 34.31061782509506\n",
"iteration 8400 / 50000: loss 33.65215742062905\n",
"iteration 8500 / 50000: loss 33.72227128692343\n",
"iteration 8600 / 50000: loss 33.76233694603763\n",
"iteration 8700 / 50000: loss 33.64317693187531\n",
"iteration 8800 / 50000: loss 33.357455512988174\n",
"iteration 8900 / 50000: loss 33.221809735582895\n",
"iteration 9000 / 50000: loss 32.87529874204728\n",
"iteration 9100 / 50000: loss 32.88536365723364\n",
"iteration 9200 / 50000: loss 32.543740138042175\n",
"iteration 9300 / 50000: loss 32.56281179596056\n",
"iteration 9400 / 50000: loss 32.72395247376798\n",
"iteration 9500 / 50000: loss 32.61088082207595\n",
"iteration 9600 / 50000: loss 32.143058555372114\n",
"iteration 9700 / 50000: loss 32.80067113135746\n",
"iteration 9800 / 50000: loss 32.48957475185233\n",
"iteration 9900 / 50000: loss 31.78440727988436\n",
"iteration 10000 / 50000: loss 31.526016528653052\n",
"iteration 10100 / 50000: loss 31.78920176731781\n",
"iteration 10200 / 50000: loss 31.60032011274851\n",
"iteration 10300 / 50000: loss 31.133023480494856\n",
"iteration 10400 / 50000: loss 31.245463720300588\n",
"iteration 10500 / 50000: loss 31.079334811258377\n",
"iteration 10600 / 50000: loss 30.875925471138935\n",
"iteration 10700 / 50000: loss 30.441750583147844\n",
"iteration 10800 / 50000: loss 30.703381630755775\n",
"iteration 10900 / 50000: loss 30.57814908482637\n",
"iteration 11000 / 50000: loss 30.858829863699242\n",
"iteration 11100 / 50000: loss 30.291443623972512\n",
"iteration 11200 / 50000: loss 30.206963118117297\n",
"iteration 11300 / 50000: loss 30.27649842696651\n",
"iteration 11400 / 50000: loss 30.204706967800494\n",
"iteration 11500 / 50000: loss 29.9142981599229\n",
"iteration 11600 / 50000: loss 29.644663854494137\n",
"iteration 11700 / 50000: loss 29.680160708757132\n",
"iteration 11800 / 50000: loss 29.67622285676191\n",
"iteration 11900 / 50000: loss 29.33334949728313\n",
"iteration 12000 / 50000: loss 29.402814493866746\n",
"iteration 12100 / 50000: loss 29.208229129404774\n",
"iteration 12200 / 50000: loss 28.83510901797269\n",
"iteration 12300 / 50000: loss 28.84027846823807\n",
"iteration 12400 / 50000: loss 28.622786906209154\n",
"iteration 12500 / 50000: loss 28.575478569291846\n",
"iteration 12600 / 50000: loss 28.916354680943677\n",
"iteration 12700 / 50000: loss 28.24033424862754\n",
"iteration 12800 / 50000: loss 28.31824555972571\n",
"iteration 12900 / 50000: loss 28.847874705888767\n",
"iteration 13000 / 50000: loss 28.068666364730205\n",
"iteration 13100 / 50000: loss 27.944238954665025\n",
"iteration 13200 / 50000: loss 27.9484474395685\n",
"iteration 13300 / 50000: loss 27.663986617309074\n",
"iteration 13400 / 50000: loss 28.199930340778288\n",
"iteration 13500 / 50000: loss 27.53568960020903\n",
"iteration 13600 / 50000: loss 27.363529670383517\n",
"iteration 13700 / 50000: loss 27.415858374826534\n",
"iteration 13800 / 50000: loss 27.100141829910413\n",
"iteration 13900 / 50000: loss 27.17122090922195\n",
"iteration 14000 / 50000: loss 26.826437168795408\n",
"iteration 14100 / 50000: loss 27.229019671922106\n",
"iteration 14200 / 50000: loss 26.95957634242687\n",
"iteration 14300 / 50000: loss 26.5642566278667\n",
"iteration 14400 / 50000: loss 26.50204041127803\n",
"iteration 14500 / 50000: loss 26.43840406491342\n",
"iteration 14600 / 50000: loss 26.468097916826938\n",
"iteration 14700 / 50000: loss 26.30407585882863\n",
"iteration 14800 / 50000: loss 25.974956510190715\n",
"iteration 14900 / 50000: loss 26.37115220297027\n",
"iteration 15000 / 50000: loss 26.25095832548515\n",
"iteration 15100 / 50000: loss 25.940151536085168\n",
"iteration 15200 / 50000: loss 25.691713870249266\n",
"iteration 15300 / 50000: loss 25.442519242122653\n",
"iteration 15400 / 50000: loss 26.096506551853054\n",
"iteration 15500 / 50000: loss 25.37812424066362\n",
"iteration 15600 / 50000: loss 25.620272871604293\n",
"iteration 15700 / 50000: loss 25.377123575147184\n",
"iteration 15800 / 50000: loss 25.26732941541315\n",
"iteration 15900 / 50000: loss 25.299466727875412\n",
"iteration 16000 / 50000: loss 25.550157332625506\n",
"iteration 16100 / 50000: loss 25.050930908220298\n",
"iteration 16200 / 50000: loss 24.92453455726036\n",
"iteration 16300 / 50000: loss 24.559535345044697\n",
"iteration 16400 / 50000: loss 24.64625098019252\n",
"iteration 16500 / 50000: loss 24.50257314353376\n",
"iteration 16600 / 50000: loss 24.763459169587247\n",
"iteration 16700 / 50000: loss 24.42004009227719\n",
"iteration 16800 / 50000: loss 24.528082614956286\n",
"iteration 16900 / 50000: loss 24.333323735883404\n",
"iteration 17000 / 50000: loss 23.999346704756945\n",
"iteration 17100 / 50000: loss 24.19406909617855\n",
"iteration 17200 / 50000: loss 23.875362185362857\n",
"iteration 17300 / 50000: loss 23.912330338060517\n",
"iteration 17400 / 50000: loss 23.564423734427567\n",
"iteration 17500 / 50000: loss 24.378111624505866\n",
"iteration 17600 / 50000: loss 23.363505372846266\n",
"iteration 17700 / 50000: loss 23.619977744128594\n",
"iteration 17800 / 50000: loss 23.381916206626023\n",
"iteration 17900 / 50000: loss 23.341791613730418\n",
"iteration 18000 / 50000: loss 23.441877505571423\n",
"iteration 18100 / 50000: loss 22.93485761379101\n",
"iteration 18200 / 50000: loss 23.19392494522184\n",
"iteration 18300 / 50000: loss 23.49375124367761\n",
"iteration 18400 / 50000: loss 22.77725146402904\n",
"iteration 18500 / 50000: loss 22.888552238044646\n",
"iteration 18600 / 50000: loss 22.600348480911457\n",
"iteration 18700 / 50000: loss 22.723411469130752\n",
"iteration 18800 / 50000: loss 22.522981465449796\n",
"iteration 18900 / 50000: loss 22.76708625723702\n",
"iteration 19000 / 50000: loss 22.293490803015153\n",
"iteration 19100 / 50000: loss 22.373873778074675\n",
"iteration 19200 / 50000: loss 22.09919847409843\n",
"iteration 19300 / 50000: loss 22.021546743061922\n",
"iteration 19400 / 50000: loss 22.288039981968744\n",
"iteration 19500 / 50000: loss 21.912841482273592\n",
"iteration 19600 / 50000: loss 22.122216523254327\n",
"iteration 19700 / 50000: loss 21.79926823885294\n",
"iteration 19800 / 50000: loss 21.973400439939418\n",
"iteration 19900 / 50000: loss 21.693223067974696\n",
"iteration 20000 / 50000: loss 21.5357618299404\n",
"iteration 20100 / 50000: loss 21.733154764682837\n",
"iteration 20200 / 50000: loss 21.515381833778605\n",
"iteration 20300 / 50000: loss 21.288954062052184\n",
"iteration 20400 / 50000: loss 21.474196463816565\n",
"iteration 20500 / 50000: loss 21.396617104101\n",
"iteration 20600 / 50000: loss 21.225382441901214\n",
"iteration 20700 / 50000: loss 21.040838895380908\n",
"iteration 20800 / 50000: loss 20.98119561252095\n",
"iteration 20900 / 50000: loss 20.885136500129207\n",
"iteration 21000 / 50000: loss 21.29386793015197\n",
"iteration 21100 / 50000: loss 20.65337077392958\n",
"iteration 21200 / 50000: loss 20.700829941914943\n",
"iteration 21300 / 50000: loss 21.089748687005883\n",
"iteration 21400 / 50000: loss 20.48501583364378\n",
"iteration 21500 / 50000: loss 20.52728917744923\n",
"iteration 21600 / 50000: loss 20.43997813081168\n",
"iteration 21700 / 50000: loss 20.785447885988603\n",
"iteration 21800 / 50000: loss 20.175151700753293\n",
"iteration 21900 / 50000: loss 20.414612805176006\n",
"iteration 22000 / 50000: loss 20.721257273452814\n",
"iteration 22100 / 50000: loss 20.25864479198273\n",
"iteration 22200 / 50000: loss 20.236838210501766\n",
"iteration 22300 / 50000: loss 20.059261341080653\n",
"iteration 22400 / 50000: loss 20.06079076472855\n",
"iteration 22500 / 50000: loss 20.24745556718755\n",
"iteration 22600 / 50000: loss 19.861843953450208\n",
"iteration 22700 / 50000: loss 20.159227469424497\n",
"iteration 22800 / 50000: loss 19.7930628797671\n",
"iteration 22900 / 50000: loss 19.515848930969728\n",
"iteration 23000 / 50000: loss 19.55254930783799\n",
"iteration 23100 / 50000: loss 19.644214714939633\n",
"iteration 23200 / 50000: loss 19.3388394854959\n",
"iteration 23300 / 50000: loss 19.258019350816735\n",
"iteration 23400 / 50000: loss 20.030911560423025\n",
"iteration 23500 / 50000: loss 19.37825154872941\n",
"iteration 23600 / 50000: loss 19.35676823094238\n",
"iteration 23700 / 50000: loss 19.11747955734764\n",
"iteration 23800 / 50000: loss 19.155303748096692\n",
"iteration 23900 / 50000: loss 18.887526484324404\n",
"iteration 24000 / 50000: loss 18.80173517490366\n",
"iteration 24100 / 50000: loss 19.200334383064234\n",
"iteration 24200 / 50000: loss 18.64276469035253\n",
"iteration 24300 / 50000: loss 18.537646256312225\n",
"iteration 24400 / 50000: loss 18.7812033707665\n",
"iteration 24500 / 50000: loss 19.05305726168593\n",
"iteration 24600 / 50000: loss 18.510650187762455\n",
"iteration 24700 / 50000: loss 18.346333107487148\n",
"iteration 24800 / 50000: loss 18.189578058220917\n",
"iteration 24900 / 50000: loss 18.37889213998917\n",
"iteration 25000 / 50000: loss 18.694072270445176\n",
"iteration 25100 / 50000: loss 18.11415416484163\n",
"iteration 25200 / 50000: loss 18.116118265087437\n",
"iteration 25300 / 50000: loss 17.96523290765853\n",
"iteration 25400 / 50000: loss 18.238540921577496\n",
"iteration 25500 / 50000: loss 18.01414919399693\n",
"iteration 25600 / 50000: loss 18.081026719715062\n",
"iteration 25700 / 50000: loss 17.859681079908594\n",
"iteration 25800 / 50000: loss 18.16374696349705\n",
"iteration 25900 / 50000: loss 17.81782234277618\n",
"iteration 26000 / 50000: loss 17.838217287279264\n",
"iteration 26100 / 50000: loss 17.592752282509927\n",
"iteration 26200 / 50000: loss 17.54736623407586\n",
"iteration 26300 / 50000: loss 17.457736458720017\n",
"iteration 26400 / 50000: loss 17.641076583693543\n",
"iteration 26500 / 50000: loss 17.41586135263364\n",
"iteration 26600 / 50000: loss 17.805173335471395\n",
"iteration 26700 / 50000: loss 17.381677060894692\n",
"iteration 26800 / 50000: loss 17.502249245041902\n",
"iteration 26900 / 50000: loss 17.48867751796187\n",
"iteration 27000 / 50000: loss 17.21685228651793\n",
"iteration 27100 / 50000: loss 17.017113820573332\n",
"iteration 27200 / 50000: loss 16.979267837975094\n",
"iteration 27300 / 50000: loss 17.276139448714048\n",
"iteration 27400 / 50000: loss 16.930110879903324\n",
"iteration 27500 / 50000: loss 16.946028854770308\n",
"iteration 27600 / 50000: loss 16.76155758305447\n",
"iteration 27700 / 50000: loss 16.703881884897925\n",
"iteration 27800 / 50000: loss 16.573052796258153\n",
"iteration 27900 / 50000: loss 16.709117087560024\n",
"iteration 28000 / 50000: loss 16.56640596623367\n",
"iteration 28100 / 50000: loss 16.45867944179294\n",
"iteration 28200 / 50000: loss 16.778757344718322\n",
"iteration 28300 / 50000: loss 16.58289811991296\n",
"iteration 28400 / 50000: loss 16.33565660832728\n",
"iteration 28500 / 50000: loss 16.695583116295715\n",
"iteration 28600 / 50000: loss 16.154086727988382\n",
"iteration 28700 / 50000: loss 16.380319476931493\n",
"iteration 28800 / 50000: loss 16.275732942536013\n",
"iteration 28900 / 50000: loss 16.184171971832182\n",
"iteration 29000 / 50000: loss 16.375291494031543\n",
"iteration 29100 / 50000: loss 16.763224751049083\n",
"iteration 29200 / 50000: loss 16.021672561212622\n",
"iteration 29300 / 50000: loss 15.795271512826254\n",
"iteration 29400 / 50000: loss 15.87836620709595\n",
"iteration 29500 / 50000: loss 15.805290496503073\n",
"iteration 29600 / 50000: loss 16.152529689220675\n",
"iteration 29700 / 50000: loss 15.944506918981642\n",
"iteration 29800 / 50000: loss 15.893673063906528\n",
"iteration 29900 / 50000: loss 15.528772865453309\n",
"iteration 30000 / 50000: loss 16.756379930359024\n",
"iteration 30100 / 50000: loss 15.467145021070547\n",
"iteration 30200 / 50000: loss 15.55196550500803\n",
"iteration 30300 / 50000: loss 15.481967712893997\n",
"iteration 30400 / 50000: loss 15.276883805723196\n",
"iteration 30500 / 50000: loss 15.3796924120657\n",
"iteration 30600 / 50000: loss 15.279912361697642\n",
"iteration 30700 / 50000: loss 15.648586935529044\n",
"iteration 30800 / 50000: loss 15.444319767909679\n",
"iteration 30900 / 50000: loss 15.201917758104246\n",
"iteration 31000 / 50000: loss 15.06743264942836\n",
"iteration 31100 / 50000: loss 15.160527563445566\n",
"iteration 31200 / 50000: loss 15.161275398258155\n",
"iteration 31300 / 50000: loss 15.13289950807995\n",
"iteration 31400 / 50000: loss 15.06853577758919\n",
"iteration 31500 / 50000: loss 15.260713427422026\n",
"iteration 31600 / 50000: loss 15.492774260437615\n",
"iteration 31700 / 50000: loss 14.850658746492925\n",
"iteration 31800 / 50000: loss 15.11631322443573\n",
"iteration 31900 / 50000: loss 14.736472966730114\n",
"iteration 32000 / 50000: loss 15.099770723070765\n",
"iteration 32100 / 50000: loss 15.111730671015495\n",
"iteration 32200 / 50000: loss 14.693458659585392\n",
"iteration 32300 / 50000: loss 14.666989430104637\n",
"iteration 32400 / 50000: loss 14.5936762169567\n",
"iteration 32500 / 50000: loss 14.868163403346193\n",
"iteration 32600 / 50000: loss 14.660362100106335\n",
"iteration 32700 / 50000: loss 14.646755165645112\n",
"iteration 32800 / 50000: loss 14.909298460220077\n",
"iteration 32900 / 50000: loss 14.645707171664155\n",
"iteration 33000 / 50000: loss 14.24298172668276\n",
"iteration 33100 / 50000: loss 14.293340229599098\n",
"iteration 33200 / 50000: loss 14.120379417409692\n",
"iteration 33300 / 50000: loss 14.596219655433016\n",
"iteration 33400 / 50000: loss 14.294569877063452\n",
"iteration 33500 / 50000: loss 14.30047939188503\n",
"iteration 33600 / 50000: loss 14.188473392150062\n",
"iteration 33700 / 50000: loss 14.184761455292737\n",
"iteration 33800 / 50000: loss 14.158177248830349\n",
"iteration 33900 / 50000: loss 13.900904315480991\n",
"iteration 34000 / 50000: loss 14.079951184400997\n",
"iteration 34100 / 50000: loss 14.141673338448653\n",
"iteration 34200 / 50000: loss 14.046554166060083\n",
"iteration 34300 / 50000: loss 13.778012964398286\n",
"iteration 34400 / 50000: loss 13.821220262244594\n",
"iteration 34500 / 50000: loss 13.771860419283632\n",
"iteration 34600 / 50000: loss 13.752856961008808\n",
"iteration 34700 / 50000: loss 13.533652374969042\n",
"iteration 34800 / 50000: loss 13.612305372104938\n",
"iteration 34900 / 50000: loss 13.583113347288338\n",
"iteration 35000 / 50000: loss 13.51031463943107\n",
"iteration 35100 / 50000: loss 13.575914096973545\n",
"iteration 35200 / 50000: loss 13.50956226798035\n",
"iteration 35300 / 50000: loss 13.40834186499299\n",
"iteration 35400 / 50000: loss 13.373483009719536\n",
"iteration 35500 / 50000: loss 13.695215712000191\n",
"iteration 35600 / 50000: loss 13.66697313977794\n",
"iteration 35700 / 50000: loss 13.442263041362459\n",
"iteration 35800 / 50000: loss 13.327568740000768\n",
"iteration 35900 / 50000: loss 13.387306301184324\n",
"iteration 36000 / 50000: loss 13.657648034297296\n",
"iteration 36100 / 50000: loss 13.4092552476501\n",
"iteration 36200 / 50000: loss 13.304469455836545\n",
"iteration 36300 / 50000: loss 12.966378196973036\n",
"iteration 36400 / 50000: loss 13.285886673885354\n",
"iteration 36500 / 50000: loss 13.037495893730776\n",
"iteration 36600 / 50000: loss 13.211636469875812\n",
"iteration 36700 / 50000: loss 12.87835305156886\n",
"iteration 36800 / 50000: loss 12.804866051202886\n",
"iteration 36900 / 50000: loss 13.010371116158849\n",
"iteration 37000 / 50000: loss 12.982230758218206\n",
"iteration 37100 / 50000: loss 12.884902615121534\n",
"iteration 37200 / 50000: loss 12.887174093554265\n",
"iteration 37300 / 50000: loss 12.687705287256664\n",
"iteration 37400 / 50000: loss 12.876812717149905\n",
"iteration 37500 / 50000: loss 12.64519754378002\n",
"iteration 37600 / 50000: loss 12.728348116742756\n",
"iteration 37700 / 50000: loss 12.50175203646306\n",
"iteration 37800 / 50000: loss 12.706259859217992\n",
"iteration 37900 / 50000: loss 12.523945493688803\n",
"iteration 38000 / 50000: loss 12.887242551092488\n",
"iteration 38100 / 50000: loss 12.651737347101651\n",
"iteration 38200 / 50000: loss 12.590085631462564\n",
"iteration 38300 / 50000: loss 12.512936360615527\n",
"iteration 38400 / 50000: loss 12.439284777579154\n",
"iteration 38500 / 50000: loss 12.559243165295204\n",
"iteration 38600 / 50000: loss 12.557331176611184\n",
"iteration 38700 / 50000: loss 12.400126595583867\n",
"iteration 38800 / 50000: loss 12.44607841529448\n",
"iteration 38900 / 50000: loss 12.44318444430552\n",
"iteration 39000 / 50000: loss 12.613034267994305\n",
"iteration 39100 / 50000: loss 12.222154788680026\n",
"iteration 39200 / 50000: loss 12.034536549977151\n",
"iteration 39300 / 50000: loss 12.280831910131164\n",
"iteration 39400 / 50000: loss 12.084445785798037\n",
"iteration 39500 / 50000: loss 12.182947591781806\n",
"iteration 39600 / 50000: loss 11.982446234491936\n",
"iteration 39700 / 50000: loss 11.987624264944149\n",
"iteration 39800 / 50000: loss 11.949112400340578\n",
"iteration 39900 / 50000: loss 12.234889112861032\n",
"iteration 40000 / 50000: loss 12.325508888815847\n",
"iteration 40100 / 50000: loss 11.86887952845391\n",
"iteration 40200 / 50000: loss 11.803253684311468\n",
"iteration 40300 / 50000: loss 11.857970626144022\n",
"iteration 40400 / 50000: loss 11.97765743542806\n",
"iteration 40500 / 50000: loss 11.912676109766462\n",
"iteration 40600 / 50000: loss 11.728872226326937\n",
"iteration 40700 / 50000: loss 11.825321781377474\n",
"iteration 40800 / 50000: loss 11.715736692380377\n",
"iteration 40900 / 50000: loss 11.63228653121234\n",
"iteration 41000 / 50000: loss 11.588617686418484\n",
"iteration 41100 / 50000: loss 11.863518965085886\n",
"iteration 41200 / 50000: loss 11.886012511976189\n",
"iteration 41300 / 50000: loss 11.720163653388825\n",
"iteration 41400 / 50000: loss 11.571585463372982\n",
"iteration 41500 / 50000: loss 11.48496097718125\n",
"iteration 41600 / 50000: loss 11.54391417289108\n",
"iteration 41700 / 50000: loss 11.452147479129307\n",
"iteration 41800 / 50000: loss 11.521430544390183\n",
"iteration 41900 / 50000: loss 11.274533921193326\n",
"iteration 42000 / 50000: loss 11.37100264491573\n",
"iteration 42100 / 50000: loss 11.59258718960164\n",
"iteration 42200 / 50000: loss 11.259954198743984\n",
"iteration 42300 / 50000: loss 11.28144751925919\n",
"iteration 42400 / 50000: loss 11.312711697614738\n",
"iteration 42500 / 50000: loss 11.142592027452736\n",
"iteration 42600 / 50000: loss 11.098667816440797\n",
"iteration 42700 / 50000: loss 11.257872500665412\n",
"iteration 42800 / 50000: loss 11.415369266497562\n",
"iteration 42900 / 50000: loss 11.150721463401233\n",
"iteration 43000 / 50000: loss 11.26987531703047\n",
"iteration 43100 / 50000: loss 10.988064787517237\n",
"iteration 43200 / 50000: loss 10.950464791967285\n",
"iteration 43300 / 50000: loss 11.172560229984843\n",
"iteration 43400 / 50000: loss 11.061127738808873\n",
"iteration 43500 / 50000: loss 10.951866436782726\n",
"iteration 43600 / 50000: loss 10.853426570062815\n",
"iteration 43700 / 50000: loss 10.816874501203216\n",
"iteration 43800 / 50000: loss 11.19049237175604\n",
"iteration 43900 / 50000: loss 10.822360825638848\n",
"iteration 44000 / 50000: loss 11.10811506360901\n",
"iteration 44100 / 50000: loss 10.799356117751772\n",
"iteration 44200 / 50000: loss 10.91294513651592\n",
"iteration 44300 / 50000: loss 10.680198773004307\n",
"iteration 44400 / 50000: loss 10.660830927726312\n",
"iteration 44500 / 50000: loss 10.919051300885332\n",
"iteration 44600 / 50000: loss 10.875928614776988\n",
"iteration 44700 / 50000: loss 10.506314600343849\n",
"iteration 44800 / 50000: loss 10.646036351796594\n",
"iteration 44900 / 50000: loss 10.604054863181824\n",
"iteration 45000 / 50000: loss 10.443009073579772\n",
"iteration 45100 / 50000: loss 10.80263168389864\n",
"iteration 45200 / 50000: loss 10.483164796743166\n",
"iteration 45300 / 50000: loss 10.94555926101149\n",
"iteration 45400 / 50000: loss 10.38574934972442\n",
"iteration 45500 / 50000: loss 10.410069160032558\n",
"iteration 45600 / 50000: loss 10.647413503241273\n",
"iteration 45700 / 50000: loss 10.368145965990134\n",
"iteration 45800 / 50000: loss 10.283998056989505\n",
"iteration 45900 / 50000: loss 10.597760335818439\n",
"iteration 46000 / 50000: loss 10.421992530001722\n",
"iteration 46100 / 50000: loss 10.529896100274234\n",
"iteration 46200 / 50000: loss 10.291705374402628\n",
"iteration 46300 / 50000: loss 10.348052447820118\n",
"iteration 46400 / 50000: loss 10.41952728017204\n",
"iteration 46500 / 50000: loss 10.24739255808342\n",
"iteration 46600 / 50000: loss 10.237543234527113\n",
"iteration 46700 / 50000: loss 10.377697013557263\n",
"iteration 46800 / 50000: loss 10.074917156907643\n",
"iteration 46900 / 50000: loss 10.028152668869403\n",
"iteration 47000 / 50000: loss 10.50884267683656\n",
"iteration 47100 / 50000: loss 9.985853745203897\n",
"iteration 47200 / 50000: loss 10.157402291954302\n",
"iteration 47300 / 50000: loss 10.31320363457757\n",
"iteration 47400 / 50000: loss 10.076072474852781\n",
"iteration 47500 / 50000: loss 10.158361756895623\n",
"iteration 47600 / 50000: loss 10.34663936996847\n",
"iteration 47700 / 50000: loss 9.866624717206411\n",
"iteration 47800 / 50000: loss 9.844635672517189\n",
"iteration 47900 / 50000: loss 9.928906689366547\n",
"iteration 48000 / 50000: loss 9.951519816382103\n",
"iteration 48100 / 50000: loss 9.773064510465177\n",
"iteration 48200 / 50000: loss 9.832071061520283\n",
"iteration 48300 / 50000: loss 10.054238843593746\n",
"iteration 48400 / 50000: loss 9.924989220031197\n",
"iteration 48500 / 50000: loss 9.958717780867367\n",
"iteration 48600 / 50000: loss 9.797941956852611\n",
"iteration 48700 / 50000: loss 9.649116243793362\n",
"iteration 48800 / 50000: loss 9.82644873167511\n",
"iteration 48900 / 50000: loss 9.598817224677786\n",
"iteration 49000 / 50000: loss 9.708477925028642\n",
"iteration 49100 / 50000: loss 9.764272354996994\n",
"iteration 49200 / 50000: loss 9.606586381901913\n",
"iteration 49300 / 50000: loss 10.037900593533568\n",
"iteration 49400 / 50000: loss 9.696623042912284\n",
"iteration 49500 / 50000: loss 9.73634403306151\n",
"iteration 49600 / 50000: loss 9.617579384648753\n",
"iteration 49700 / 50000: loss 9.517357451722274\n",
"iteration 49800 / 50000: loss 9.417539972454424\n",
"iteration 49900 / 50000: loss 9.673809198022692\n",
"iteration 49999 / 50000: loss 9.519560238120139\n"
]
}
]
},
{
"cell_type": "code",
"source": [
"# Plot the loss function and train / validation accuracies\n",
"plt.subplot(3, 1, 1)\n",
"plt.plot(stats[\"loss_history\"])\n",
"plt.title(\"Loss history\")\n",
"plt.xlabel(\"Iteration\")\n",
"plt.ylabel(\"Loss\")\n",
"\n",
"plt.subplot(3, 1, 3)\n",
"plt.plot(stats[\"train_acc_history\"], label=\"train\")\n",
"plt.plot(stats[\"val_acc_history\"], label=\"val\")\n",
"plt.title(\"Classification accuracy history\")\n",
"plt.xlabel(\"Epoch\")\n",
"plt.ylabel(\"Clasification accuracy\")\n",
"plt.show()"
],
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/",
"height": 472
},
"id": "geCpl7jBm9ew",
"outputId": "44a854e1-e159-48e1-9791-4fefef500348"
},
"execution_count": 7,
"outputs": [
{
"output_type": "display_data",
"data": {
"text/plain": [
"<Figure size 640x480 with 2 Axes>"
],
"image/png": "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t7fHkSNHtKZ/++23lar54WWWWLJkidZrqVSKIUOG4Pfff9ec+l5WTQBgbGyMkSNHYsuWLVi3bh1atmyJVq1aVbimqnj051sqlWrWWfLzW97PTGBgIGQyGZYtW6a1HT/++CPS09MxYMCACtcxcuRISCQSTJ06FdevX6/wOCV6+ujcs3Pq1CksXry4VHuPHj20rudBVBc0btwYmzZtwvDhw9GsWTOtKygfP35cc4p0eQYOHIh58+Zh7Nix6NSpE86dO4eNGzdq/YcKFF/rw9nZGZ07d4aTkxNiYmKwYsUKDBgwAFZWVkhLS4Orqytefvll+Pn5wdLSEvv370dYWJhWL4suli1bhi5duqBt27YYP348vLy8cOPGDezevRuRkZGa7dmwYQOsra3RvHlznDhxAvv370eDBg20ltW6dWsYGRlh4cKFSE9Ph1wuR69eveDo6FhqvePHj8fq1asxZswYhIeHw9PTE9u2bcOxY8ewZMkSnQaIP6yi34vRo0dj/fr1mDFjBk6fPo2uXbsiOzsb+/fvx6RJkzB48GD07NkTo0aNwrJly3DlyhX07dsXarUaf//9N3r27IkpU6YAAN544w18/vnneOONN9C+fXscOXIEly9frnDNCoUC3bp1w6JFi1BYWIiGDRti3759ZR7m/+yzz7Bv3z50794d48ePR7NmzXDnzh1s3boVR48e1RoHOXr0aCxbtgwHDx7UnApek9544w2kpKSgV69ecHV1RVxcHJYvX47WrVtrxmY97mfmgw8+wNy5c9G3b1+88MILuHTpEr799lt06NChUoGl5FpIW7duhY2NTaWCEj1ldD2dy9zcXERFRZVqj4qKEmZmZrounqhGXL58WYwbN054enoKmUwmrKysROfOncXy5ctFXl6eZr6yTj1/5513hIuLizAzMxOdO3cWJ06cKHX69erVq0W3bt1EgwYNhFwuF40bNxYzZ84U6enpQggh8vPzxcyZM4Wfn5+wsrISFhYWws/PT3z77bdadepy6rkQQkRHR4sXX3xR2NjYCFNTU+Ht7S0+/vhjzfTU1FQxduxYYW9vLywtLUWfPn3ExYsXS223EEJ8//33olGjRsLIyEjrlOJHt10IIZKSkjTLlclkomXLlqVqK6n5iy++EI/CI6dyl6Wi3wshik/3/vDDD4WXl5cwMTERzs7O4uWXXxbXrl3TzFNUVCS++OIL4ePjI2QymXBwcBD9+vUT4eHhWst5/fXXhbW1tbCyshLDhg0TycnJ5Z56fvfu3VJ137p1S/M9sba2Fq+88opISEgoc5vj4uLE6NGjhYODg5DL5aJRo0Zi8uTJWqeKl/D19RVSqVTcunXrsfutRMmp51u3btVqL+tn6dGfw23btonnn39eODo6CplMJtzd3cWbb74p7ty5o7Ws8n5mhCg+1dzHx0eYmJgIJycnMXHiRJGamqr1/u7duz/xEg5btmwRAMT48eMrtN30dJII8YRRgE/Qs2dPtGjRAsuXL9dqnzx5MqKiovD333/rsngiIqqANm3awM7ODqGhofoupVbt3LkTQ4YMwZEjRzSnzRM9SufDWJ9++ikCAwNx9uxZ9O7dGwAQGhqKsLAw3iCQiKgWnDlzBpGRkWXeysLQff/992jUqJHmdhxEZdE57HTu3BknTpzAF198gS1btsDMzAytWrXCjz/+yFtEEBHVoOjoaISHh+Orr76Ci4sLhg8fru+Sas3mzZsRFRWF3bt3Y+nSpTpd/JEMn86HsYiISD/mzJmDefPmwdvbG6tWraq2M93qA4lEAktLSwwfPhyrVq167EUjiao17OTl5aGgoECrjdfZISIiIn3S+To7OTk5mDJlChwdHWFhYQFbW1utR2UcOXIEgwYNglKphEQiwY4dO574nkOHDqFt27aQy+Vo0qTJU3nMmoiIiMqnc9iZOXMmDhw4gJUrV0Iul+OHH37A3LlzoVQqsX79+kotKzs7G35+fvjmm28qNH9sbCwGDBiAnj17IjIyEtOmTcMbb7yBvXv3VmVTiIiIyADpfBjL3d0d69evR48ePaBQKBAREYEmTZpgw4YN+OWXX/Dnn39WrTCJBNu3b8eQIUPKnee9997D7t27tS6pPmLECKSlpVX4pnRA8f1oEhISYGVlxUFuRERE9YQQApmZmVAqlY+9H5zOI7pSUlI0VyxVKBRISUkBAHTp0gUTJ07UdfGPdeLEiVL3UenTpw+mTZv22Pfl5+drXZL/9u3baN68eU2USERERDUsPj4erq6u5U7XOew0atQIsbGxcHd3h4+PD7Zs2YKOHTvi999/17qceU1ITEyEk5OTVpuTkxMyMjKQm5tb7t1yFyxYUOY9cOLj4zmgmoiIqJ7IyMiAm5vbE29Do3PYGTt2LM6ePYvu3bvj/fffx6BBg7BixQoUFhaWec+suuCDDz7AjBkzNK9LdpZCoWDYISIiqmeeNARF57Azffp0zfPAwEBcvHgR4eHhaNKkSY3fedfZ2bnUnauTkpKgUCjK7dUBALlcDrlcXqO1ERmi9NxCFKrUtb5eI4kENuYmT82YuiKVGkZSyVOzvfqSX6SCEICpiZG+SzFoBUVqRCeko6175c7Qrk46hZ3CwkL07dsXq1at0lwt2cPDAx4eHtVS3JMEBASUGgAdEhKCgICAWlk/kSETQuDa3SyE3UhF2I0UnLmRipspOXqrp7GDBYa0bogXWivh0cBCb3XUlOz8Iuy7kIidkQn4+8o9OCtM8UJrJQa3VsLHmT3O1SEluwBnbqTgTFzxz3T07XQUqgTsLWVQ2phBaW1W/NXGFK62Jc/N0MBCxuBZBdn5Rfjl9E388Hcs0nILcOy9XmhgqZ+OBp3PxnJwcMDx48er5dYQWVlZuHr1KoDim9otXrwYPXv2hJ2dHdzd3fHBBx/g9u3bmlPaY2Nj0aJFC0yePBmvvfYaDhw4gLfffhu7d+9Gnz59KrzejIwMWFtbIz09nYex6KlV8t/XmRspOB2bivC4FKTmFOq7rDK1drPB4NZKDGjlAkcrU32XU2UFRWocuXwXO88mIORCIvIKy+4183aywgutlXjBTwk3O/NarrJ+EkLgZkoOwm6k4syNFITdSMG1u9lVWpbMWIqGD0JQSSBqaPNvMFLamLF36CEp2QVYd/wGfjp+A+m5xX9DHK3k+CaoLTp42lXruir6+a1z2Jk+fTrkcjk+//xzXRYDoPgCgT179izVHhwcjHXr1mHMmDG4ceMGDh06pPWe6dOn48KFC3B1dcXHH3+MMWPGVGq9DDv0NMrIK0REXCrOPOi5iYxPQ36R9oetqYkUrd1s0MHTDu097dDG3QYKU5NarzUzrxB7zydhZ+RtHLt6D+oHf7WkEqBzE3sMbt0QfXydYKWH2ipLrRY4fSMFOyMT8Oe5O5oPAwDwsrfA4NZK9Gvhgmt3s7Az8jYOXryLgocOHbb3sMXg1kr0b+mit/+S66IilRoXEzM1vZBhN1KQnJlfar5nnCzR3tMOHTxt0d7DDlamxridlouEtDwkpOUiIS33wevir8mZ+ajIp2QDC1mpEPTvczPYWxp+79DttFx8f+Q6Nofd1AR3L3sLvNmtEV5s2xBy4+oPhLUWdt566y2sX78eTZs2Rbt27WBhod29XFcHKT+MYad6nLuVjgMXk9HTxwEtG1ob/C92fZOYnoewB//hht1IxcXEjFJ/xO0sZGjvYfsg3NjCV2kNmbHO1x6tVncz87E7KgE7IhMQGZ+maZcZSxHYzBEv+DVED2+HOvWfthACF+5kYFdkAnadTcCd9DzNNEcrOQb5FR+uKuv3Jj23EHui72BnZAJOXL+v+Z4ZSSXo2tQeg1sr8VxzZ1jKn657Q+UUFCHyZlpxz01cCiLiUpFdoNKax8RIglauxWG9g6ct2nnYwsZcVqn1FBSpkZSRpwlAxSFIOxjlPLLessiMpVBam2rCT3MXBQa2coGjov72TJa4kpSJVYevY2fkbRQ9+E+kRUMFJnZvgr4tnGEkrbnPgloLO2X1xGgWLpHgwIEDuiy+VjDs6G5b+C3893/nNP+Betlb4IUHf8AbOVjqubqnj1otcPVultZ/ubdSc0vN59HAHO09ij8IOnjZoZG9Rb0KqXH3s7ErMgE7Im9rHaKwMjVGvxbOGNK6IfwbNajRP7YVqW/n2QRcTc7Sqq9/CxcMbq2sVH1JGXn4/WxxYIq6la5pNzWR4rnmzhjsp0S3ZxzqXECtDvey8h8cjio+LBWdkAGVWvvjy8rUGO09bB/03Nihlat1jYdeIQQycov+DUPpubidmvtQOMpDUmZemb1DUgkQ0LgBBvs1RJ8WzrA2q/s9kw+LuJmKlYeuIeTCvycKdWrcABN7NEaXJva18rek1sKOIWDYqTqVWmDBnzH44WgsAKCZiwKx97K0xh60crXGC35KDPJTwskA/oupi/KLVDh3K13zQXAmLlXr8AhQ/IfVV2mN9p4Pem48bA3iv0pAt56T6laRnqeePg46d+lfv5uFXWcTsDMyAbH3/g161mYm6N+yOEh19LSDVE9BTxdCCNy4n/MgrBcH9uv3So+3cbE2Le618SoO7M84WtXJ7S1UqZGYnqcJQ/EpuTh8+S7C41I188iMpejl7YjBrZXo6eNYp3omHyaEwJEr97Dy0FWcvF58EWGJBOjT3BkTejRGazebWq2HYacSGHaqJj23EG//8g8OX74LAHi7d1NM690UuYUqrbNKSv77kkiAgEYNMKR1/fwvpixFKjXUevgNyikowj830zQ9N5G30lDwyHgbMxMjtHG3QXtPO3T0tENrd5un4lDHk8bE1ESPoz7HFAkhcO52OnZGJuD3swla41RcrE3xgp8SL7RWormLos722hWq1LiQkKH5eT4Tl4J7WQVa80gkxQO1NWHd0w4Nbcq/xEiNUKsBVcGDRyGgyn/oeYH286L8sttLHuoipOUUICYhDTEJabifVQAp1JBCwNRYgiaOFvB2tICrjRxSCAACEGpAiAcP9b8PPPL60XlKTVcDatWDeVQPvVY/eC20X6tVEEKNjJx83M/KRWFhEaQQMJKoYSWXwsbUCCYSlLMsdfF+E2pgwt9Ag8bV+i2p1cNYj/sF4mEsw3T9bhbeWH8G1+9mw9REiq9eaY0BrVxKzXc/Kx9/niseb3Dm4f9ijKTo6eOAwa0bolcd/i/mYUII3ErN1Yx5OXMjBVceOjShb/aWMrT3sNN8GDRXKmBiZHiHMyrjcWc76drjmF+kwsGLd7Hr7G2ExiRrDe5u7WaDIa2VGNBKCQer2htErFILnLp+vzjoRd9BZl6RZloTR0sMfhB8Kn3qvhD/frgXFTz4+uCDviivjLaHv+YjLzcHmdnZyMrOQXZONnJzc5GXm4OC/DwU5OdBXZgHCdSQ4ME/RigOijZmxrAxl8HW3AQ2ZiYwMZL8W0/xE91fq1UPBZdywknRg6/iyWNz6DGmnAHsdT9z+2G1ejbWwwoLCxEZGYno6GgEBwdj6dKluiy+VjDsVM7hy3cxZVMEMvOKoLQ2xXej26NFQ+snvi8+JedBt/ttXE76NyRYyo3Rx9cZg1sr0alxAxjXkQ9olVog5k5G8TiBuOJwk5RR+uwOffGyt9AMJu7gZQfPBuZ19j/3uiA7vwghF5KwI/J2mT2Og1sr0beFy2N7HB8XJqp8HSBNkCirB6Dwka+P6y3Qfl5UmI/4u2m4kZyGOykZMFIXwURSBBmK4GAGNLQygqOFFDKoSvdWaMLLgzCjKoAmKNC/pMaAkQwwMgGM5A89l/373Fheus1IBkiMAKlR8Q8gJIBECkikEBIpkjPzcf1eLmLv5yC3qHjPqyGFlZkJmjhYoYmTNWwt5cXveei9xQ/8+7zUtEdeS40ePDd65LUUuUUCh6+mICTmLlJzVVBDAnO5CQKbK/GcrwuszORlLEPy2GVC0RAwrtwA8SfR+2GsOXPmICsrC19++WVNLL5aMexUjBACPx6NxWd/xkAtgHYetlj1n3ZV+s/1YmIGdkYmYFdkAm6n/Ttw1t5SjoGtiscbtHazqdUP79wCFSLj0zThJiIuFVn5RVrzmBhJ0KKhNTo+6Eb3c7WGqaz2e6WMpRKYywz/kBSA4jBQkFX8QaxWabrV//2qrnR7Rk4ewm/cw5nr9xB7NwNGUEMKNeRSoLmLBdq6KdDMyQImEjWEqhCJqRm4eCsFVxNTUFiQDxMUwQRFsJYJNLKTwcPaBNZyAcmTegbKmq6um9cyehwVjFAoMUG+MEaeMEaBMEE+TFAAExTAuPi5MNa8LoAJhJEcJjJTyEzNYGZqBjMzc1hYmMPS3AJWluawMjdD8XCbB7/zmt/9Gn4tNSodRIzKCSgPBxepCfCYu2xXh4IiNY5evYudkQnYdz4JuYX/9iz5KhUY0rohBvq5wMW6+g7n3c3Mx9pjsdhwMk4T5l2sTTGuayOM6OhW5/7u6D3sXL16FR07dtTcBb0uY9h5svwiFT7aHo2t4bcAAK+0c8WnL7bQeZClWi0QfjMVOyNvY3fUHa2L2LnbmWPwgyvINnF8/E3equJ+Vj7OxKVqzvCIvp2uOW2yhJXcGG09bIuvyeFpBz9XG5jpIdwYhKJ8IDcNyE0F8h58LXn92La0p+zwgaT0B2tZH7ylnj9pevHzzCIJou7kIPxWNq7eL0AhjFEIY8DIBC3c7WFuZo7EbIGELDVuZaqQmidBAYrDTD5MUAhjqKH9IW8slcDlwQX3Hr62TMm1ZlxszJ6K8WI1KTu/CPtjkrAzMgFHLt/V/K2SSAB/LzsMbt0Q/Vo4V/rU+hLxKTn47sh1bDkTrzkk29jBAhO6N8bg1g3r7Bl+eg87GzZswHvvvYeEhISaWHy1Yth5vLuZ+ZjwczjC41IhlQAfDmiO1zp7VnuvS6FKjaNX7mFn5G3su5Ckde0KX6UCg1sXj6+oyn8xD19NNSw2BWFxKbhextVUnRWmmjM72nvYwdvZSm+nLddJajWQn/FQMHlcYEnTbiuspltNlOoiNyr+D1tzWMDoCe3SMuYrbs8qFEjKKsSdjELkFAqoIC3+cJeYwMHGCu4O1lDa28DIuKxwUZFAUtYhjkfapbUXpss7df9RNuYmD105uPhaMQ1t/72SsL2lnL8ntSglu+DBWMjbCLvx71hIEyMJuj/jiCFtlOjt41Shf8wuJmZg5aFr+CPqjubQrp+bDSb1aIznmjnVybPbHlZrYeell17Sei2EwJ07d3DmzBl8/PHHmD17ti6LrxUMO+WLvp2OcevP4E56HqxMjbHi1bbo/oxDja83p6B4fMWuyAQcfuS/mI6edhjS5vH/xRSp1Ii58+BqqnHFPTd3K3A1VVdbs9o5dKYqBPIzHwSHjAfPH7zWantoWl7Gv9MLsosPyQAoPtPioQGXmt/oR9vLeQ48eF2J51UmAcxsAFMbwMy2+LmZbfHjcW2m1sXBoGTcQQ1TqwUibqbiyOW78LS3wPO+hn3RvpJT9/dGJ0IAmp6ZhjamcLE2g4UBb3t9dys1B7+fLQ4+FxMzNe0WMiP08XXGC62V6NLEvtRYyLAbKVh56BoOXEzWtHVtao+JPRojoFGDejP+r9bCztixY7VeS6VSODg4oFevXnj++ed1WXStYdgp2x9RCXh361nkFarRyMECP4xur5cLBKZmF+DP6DvY+U8CTt/497BoyX8xJQObLyVm4vSDU1cjbqaWuqqpzEiKVq7WmnBTlaupQq0GCjIrEVDStdtK5ikqfYG/esXE/KFwUhJQbMpos9VukytqfJwD0dPqUmImdp29jZ2RCVoXEW1gIcOAB2Mh03ML8e3Ba5qzYyUSoH8LF0zs0bhCJ5rUNXo/jFWfMOxoU6sFluy/jGUHim/K2v0ZBywb2aZOXBfndloufn9wIbWYOxmPnVfraqoetmjlZAJTVXY5AeXhQJJeTq9KZnHQqU4m5oDcqjgEyK0AU8VDrx/TJrcsPvwC/Hs2R5nPUYF5KvNcWlyPMe/JRFRXCVHcM7kzMgF/RN1BSnZBqXlkRlIMbdcQ47s1hpd9JS9FUIfUWtgJCwuDWq2Gv7+/VvupU6dgZGSE9u3b67L4WsGw86/s/CLM2BKJveeLL/89rqsX3u/XrO4cjy/MBbLvAtn3cPv2TURduobYmzcgzU2FszwfbhYqOMkLYGeUBzN1NiT5WUD+g/Aiyr6jdJUYyR4JIw8HkYqElgdfjXh4gIhqTqFKjWNX72FnZAL2nk+EBEDQsx54vYuXQVzRvqKf3zr/pZ08eTJmzZpVKuzcvn0bCxcuxKlTp3RdBdWS+JQcjFt/BhcTMyEzkuKzl1ri5XauNbvSogIg596DAHMXyL5f/FXTdu/B48Hzwn8HUTZ88ABQ/JOsAvD4zp7inomSAPJo+DB9KKzIrcsOKKYP2tmzQUT1gImRFD28HdHD2xEFRWpIJHgqLzaqc9i5cOEC2rZtW6q9TZs2uHDhgq6Lp1py8vp9TNoYgZTsAthbyrF6VDu087Ct/IJURUDOw4Hl4bBy999pJcEmP/3Jy3yUkQywcADMGxR/LXluWlYvyiOhxcS8Vga4EhHVNXX19PHaoHPYkcvlSEpKQqNGjbTa79y5A2NjdtHXB5tO3cQnO6NRpBZo0VCB719tARdZPpB8sXj8Sl5a8dfctH9f56b9256XBuSmPxjrUoXwIjECLOwfBBd7wLzk+cNhxv7feeRWDCxERFRhOo/ZGTlyJO7cuYOdO3fC2rp4JHdaWhqGDBkCR0dHbNmypVoKrUkGOWZHE07StEPKQ6FFnZuKqzdvITPtPqyRDQeTPCiQDYlK11siSB70upQVYB4KLSUBxtSGZ+gQEVGl1dqYnS+//BLdunWDh4cH2rRpAwCIjIyEk5MTNmzYoOviqSr+nAWcXv3E2aQAnil5AhSPeSkhkRaPTzG1Lg4jptYPTi1+8Prh5w+/LjnFuBYvjEZERPQ4Ooedhg0bIioqChs3bsTZs2dhZmaGsWPHYuTIkTAx0f+pyk+d7HvAmTXFz43NSocUU2ukCnPsvJiD+FwT5BlZ4ZUuLdC6qedD89oAMkv2thARkUGolkE1FhYWGD9+fHUsinR1dnPxjQWVbYHxB0tN3n8hCdN+jURWfhFcbc3wQ3B7+DgbyKE7IiKiMuj8r/uCBQuwZs2aUu1r1qzBwoULdV08VYYQQMT64udtRz8ySeDbQ1cxbsMZZOUXwd/LDrumdGHQISIig6dz2Fm9ejV8fHxKtfv6+mLVqlW6Lp4qI/40cO9S8enVLYZqmvMKVZj2ayQW7bkEIYAgf3f8/IY/7CyqdndcIiKi+kTnw1iJiYlwcXEp1e7g4IA7d+7ouniqjJJeHd+Xiq8rAyAxPQ/jN5xB1K10GEslmP2CL0Y966HHIomIiGqXzmHHzc0Nx44dg5eXl1b7sWPHoFQqdV08VVReBnD+f8XPHxzC+udmKt7cEI7kzHzYmJvg26C26NTYXo9FEhER1T6dw864ceMwbdo0FBYWolevXgCA0NBQzJo1C++8847OBVIFRf8GFOYA9t6AW0ds/+cW3vvtHAqK1PB2ssL3o9vDvYG5vqskIiKqdTqHnZkzZ+L+/fuYNGkSCgqK76xqamqK9957Dx988IHOBVIFaQYmj8L3f8di/p8xAIDAZk5YMqI1LOW8mjURET2ddL6CcomsrCzExMTAzMwMTZs2hVxef26UWO+voJx4DljVBZCaIHNyFPyXRiGnQIWJPRpj5vPekNaVO5YTERFVo1q7gnIJS0tLdOjQoboWR5UR8eBK1T79sTUmHzkFKjR1tMSsPt6Q8B5SRET0lKuWsHPmzBls2bIFN2/e1BzKKvG///2vOlZB5SnMBaI2AwDUrUdj/c4bAIDRnTwZdIiIiFAN19nZvHkzOnXqhJiYGGzfvh2FhYU4f/48Dhw4oLkxKNWgmD+Kb+5p7YbDKl/cuJ8DK1NjvNSmob4rIyIiqhN0DjufffYZvv76a/z++++QyWRYunQpLl68iGHDhsHd3b06aqTHifip+Gub/+Cnk/EAgFfaucGCA5KJiIgAVEPYuXbtGgYMGAAAkMlkyM7OhkQiwfTp0/Hdd9/pXCA9xv1rwI2/AUhw0+NFHLp0FxIJMDqAFw0kIiIqoXPYsbW1RWZmJoDiO6BHR0cDANLS0pCTk6Pr4ulx/vm5+GuT3lgbXQQA6PGMAzztLfRYFBERUd2ic9jp1q0bQkJCAACvvPIKpk6dinHjxmHkyJHo3bu3zgVSOVRFQOQmAEBeyyBsO3MLABDcyVOPRREREdU9Og/sWLFiBfLy8gAAH374IUxMTHD8+HEMHToUH330kc4FUjmuhgBZiYC5PX7LaonM/MvwsrdAt6YO+q6MiIioTtE57NjZ2WmeS6VSvP/++7oukiriwRWThd9IrD2VAAAIDvDgBQSJiIgeofNhLNKDjDvA5b0AgIgGg3A1OQsWMiMMbeeq58KIiIjqHoad+ujsJkCoAPcArDxvBAB4uZ0rrExN9FwYERFR3cOwU9+o1ZrbQ9z3HoHQi0kAiq+YTERERKUx7NQ3cUeB1FhArsCalFYQAuja1B6NHSz1XRkREVGdxLBT3zwYmFzUfCh+jrgHABjDXh0iIqJy6Xw2VnZ2Nj7//HOEhoYiOTkZarVaa/r169d1XQWVyEkBLuwCAOw374P03EK425mjh7ejngsjIiKqu3QOO2+88QYOHz6MUaNGwcXFhXfarknntgKqfAinFlgSbQ4gC6MDPGDE082JiIjKpXPY+euvv7B792507ty5Ouqh8ggBhBff9POGx8u4eCQLZiZGeKW9m54LIyIiqtuq5d5YD19YkGpIQgSQfB4wkmPF3TYAgBfbNoS1GU83JyIiehydw87//d//4ZNPPuFNP2vag4HJOU0HYsel4n0dHOCpx4KIiIjqB50PY3311Ve4du0anJyc4OnpCRMT7Z6GiIgIXVdB+VnAuW0AgJ2S3lCpBQIaNYC3s5WeCyMiIqr7dA47Q4YMqYYytH3zzTf44osvkJiYCD8/PyxfvhwdO3Ysc95169Zh7NixWm1yuVxzc1KDcGEHUJAFtW0jfHHJAUAh725ORERUQTqHndmzZ1dHHRq//vorZsyYgVWrVsHf3x9LlixBnz59cOnSJTg6ln2KtUKhwKVLlzSvDe6MsAeHsKKdXkDKnUI0tDFDYDOebk5ERFQROoedEuHh4YiJiQEA+Pr6ok2bNlVazuLFizFu3DhNb82qVauwe/durFmzptw7qkskEjg7O1et8Lou+SIQfwpCYoQvktoCAP7zrAeMjXg9SCIioorQOewkJydjxIgROHToEGxsbAAAaWlp6NmzJzZv3gwHB4cKL6ugoADh4eH44IMPNG1SqRSBgYE4ceJEue/LysqCh4cH1Go12rZti88++wy+vr7lzp+fn4/8/HzN64yMjArXWOv+Kb4PVrpbL/x92RhyYylGdODp5kRERBWlc/fAW2+9hczMTJw/fx4pKSlISUlBdHQ0MjIy8Pbbb1dqWffu3YNKpYKTk5NWu5OTExITE8t8j7e3N9asWYOdO3fi559/hlqtRqdOnXDr1q1y17NgwQJYW1trHm5udTQ8FOUDZ38BAGxW9QQADG6thK2FTJ9VERER1Ss6h509e/bg22+/RbNmzTRtzZs3xzfffIO//vpL18U/UUBAAEaPHo3WrVuje/fu+N///gcHBwesXr263Pd88MEHSE9P1zzi4+NrvM4qufQnkHMfKgtnfB3rDgAcmExERFRJOh/GUqvVpU43BwATE5NS98l6Ent7exgZGSEpKUmrPSkpqcJjckxMTNCmTRtcvXq13HnkcjnkcnmlatOLiOJDWGG2/ZF/X4oOnrbwVVrruSgiIqL6ReeenV69emHq1KlISEjQtN2+fRvTp09H7969K7UsmUyGdu3aITQ0VNOmVqsRGhqKgICACi1DpVLh3LlzcHFxqdS665y0m8C1AwCABXfaAWCvDhERUVXoHHZWrFiBjIwMeHp6onHjxmjcuDG8vLyQkZGB5cuXV3p5M2bMwPfff4+ffvoJMTExmDhxIrKzszVnZ40ePVprAPO8efOwb98+XL9+HREREfjPf/6DuLg4vPHGG7pumn79sxGAQLL9szibbQtnhSn6+BroGWdEREQ1SOfDWG5uboiIiMD+/ftx8eJFAECzZs0QGBhYpeUNHz4cd+/exSeffILExES0bt0ae/bs0QxavnnzJqTSfzNaamoqxo0bh8TERNja2qJdu3Y4fvw4mjdvruum6Y9aBfzzMwBgfX53AECQvztMeLo5ERFRpUmEEELfRehbRkYGrK2tkZ6eDoVCoe9ygCv7gY1DUSS3gW/6EggjUxz/oBfsLevBOCMiIqJaUtHP7yr17Cxbtgzjx4+Hqakpli1b9th5K3v6OQGI+AkAcMw8EPnpMrzUyoVBh4iIqIqq1LPj5eWFM2fOoEGDBvDy8ip/4RIJrl+/rlOBtaFO9exk3QUW+wDqIgwoXIjzKjfsnNwZfm42+q2LiIiojqnRnp3Y2Ngyn1M1OPsLoC5CopUvzt91Q2s3GwYdIiIiHeg84nXevHnIyckp1Z6bm4t58+bpuvinixCam36uyekKABjD082JiIh0onPYmTt3LrKyskq15+TkYO7cubou/uly8yRw/wqKjMyxMbsD7C3l6N+ynl8viIiISM90DjtCCEgkklLtZ8+ehZ2dna6Lf7o86NU5bNIF2TDDq/7ukBnzdHMiIiJdVPk6O7a2tpBIJJBIJHjmmWe0Ao9KpUJWVhYmTJhQLUU+FfLSgfPbAQDfpHeCsVSCIH93PRdFRERU/1U57CxZsgRCCLz22muYO3curK3/vWeTTCaDp6dnhW/xQADObQOKcpEo90REXlMMauUCJ4WpvqsiIiKq96ocdoKDgwEUn4beqVOnMm8GSpWgNTBZgjGdPPRbDxERkYHQ+XYR3bt31zzPy8tDQUGB1nS9X7emPrhzFrgTCZXEGFsLO6NFQwXautvquyoiIiKDoPPo15ycHEyZMgWOjo6wsLCAra2t1oMqIGIDAOCgpCNSoUBwgGeZg76JiIio8nQOOzNnzsSBAwewcuVKyOVy/PDDD5g7dy6USiXWr19fHTUatsJcIGoLAGBdXnfYWcgwyE+p56KIiIgMh86HsX7//XesX78ePXr0wNixY9G1a1c0adIEHh4e2LhxI4KCgqqjTsN1YReQn467Ro44pvbFxA5uMDUx0ndVREREBkPnnp2UlBQ0atQIQPH4nJSUFABAly5dcOTIEV0Xb/j+KT6EtT6vG6RSI/znWQ5MJiIiqk46h51GjRpp7o/l4+ODLVuKD8n8/vvvsLGx0XXxhu3+NeDG31BDim2q7ni+uROUNmb6roqIiMig6Bx2xo4di7NnzwIA3n//fXzzzTcwNTXF9OnTMXPmTJ0LNGgPenX+Fn64gwYI5n2wiIiIqp3OY3amT5+ueR4YGIiLFy8iPDwcTZo0QatWrXRdvOFSFQKRmwAAmwp7wMfZCv5evL0GERFRddM57DzKw8MDHh4cd/JEV/YBWUlIgTVC1W3wf514ujkREVFN0Pkw1ttvv41ly5aVal+xYgWmTZum6+IN14MrJm8p6goLMzMMad1QzwUREREZJp3Dzm+//YbOnTuXau/UqRO2bdum6+INU0ZCcc8OgC2qHhjewQ1mMp5uTkREVBN0Djv379/XugloCYVCgXv37um6eMMUuREQapxS+yAWSozi6eZEREQ1Ruew06RJE+zZs6dU+19//aW5/g49RK3W3B7i16Ie6O3jBDc7cz0XRUREZLh0HqA8Y8YMTJkyBXfv3kWvXr0AAKGhofjqq6+wZMkSXRdveG4cAdLikCnM8KfaHz/wdHMiIqIapXPYee2115Cfn4/58+fj//7v/wAAnp6eWLlyJUaPHq1zgQbnwcDkHarOcHVsgM5NGui5ICIiIsNWLaeeT5w4ERMnTsTdu3dhZmYGS0vL6lis4clJgYj5HRIAm1U9ERzgwdPNiYiIali1XmfHwcGhOhdneKJ+hURVgGi1J27KmuKltq76roiIiMjgVSnstG3bFqGhobC1tUWbNm0e2zsRERFR5eIMihCaQ1ibVT3x8rOusJBX+zUdiYiI6BFV+rQdPHgw5HI5AGDIkCHVWY/huh0OJF9AnjDBLlUn7Azw1HdFRERET4UqhR1bW1tIpcVnrY8dOxaurq6a11SOiJ8AALvV/mjr7Qkvews9F0RERPR0qFJCmTFjBjIyMgAAXl5evHjgk+RnQpz7DQDwa1FP3t2ciIioFlWpZ0epVOK3335D//79IYTArVu3kJeXV+a87u7uOhVoEM5vh6QwG9fVzrhr1w7dm3IgNxERUW2pUtj56KOP8NZbb2HKlCmQSCTo0KFDqXmEEJBIJFCpVDoXWd+JiA2QAPhV1ROjAjwhlfJ0cyIiotpSpbAzfvx4jBw5EnFxcWjVqhX279+PBg14cbwyJcdAcus0CoUR/jLqgT/a83RzIiKi2lTlc5+trKzQokULrF27Fp07d9acnUWPeHAfrFB1W3Rv1wIKUxM9F0RERPR00fkUquDgYAad8hTlQxW5CQCwWdUDwZ14d3MiIqLaVqWeHTs7O1y+fBn29vawtbV97EUFU1JSqlxcvXdxN4zyUnFH2EHl1QtNHK30XREREdFTp0ph5+uvv4aVlZXmOe/vVDZV+E8wArBV1Q2jOzfWdzlERERPpSqFneDgYM3zMWPGVFcthqUwF1nJcbAG8LdFX0z2cdR3RURERE8lncfsRERE4Ny5c5rXO3fuxJAhQ/Df//4XBQUFui6+3hLGphhuvBR98z/Hc507woinmxMREemFzmHnzTffxOXLlwEA169fx/Dhw2Fubo6tW7di1qxZOhdYX+UVqtHS1QaJZo0xrL2bvsshIiJ6akmEEEKXBVhbWyMiIgKNGzfGwoULceDAAezduxfHjh3DiBEjEB8fX1211piMjAxYW1sjPT0dCoWiWpedV6iCqYlRtS6TiIiIKv75rXPPjhACarUaALB//370798fAODm5sZ7ZgEMOkRERHqmc9hp3749Pv30U2zYsAGHDx/GgAEDAACxsbFwcnLSuUAiIiIiXVT5CsollixZgqCgIOzYsQMffvghmjRpAgDYtm0bOnXqpHOBtaHkSF7JndyJiIio7iv53H7SiBydx+yUJy8vD0ZGRjAxqfu3R7h16xbc3DiImIiIqD6Kj4+Hq2v5956ssbBTn6jVaiQkJMDKyqpaL5CYkZEBNzc3xMfHV/vA57qI22v4nrZt5vYaNm5v/SeEQGZmJpRKJaTS8kfm6HwYS6VS4euvv8aWLVtw8+bNUtfWqQ+3i5BKpY9NhLpSKBQG84NVEdxew/e0bTO317Bxe+s3a2vrJ86j8wDluXPnYvHixRg+fDjS09MxY8YMvPTSS5BKpZgzZ46uiyciIiLSic5hZ+PGjfj+++/xzjvvwNjYGCNHjsQPP/yATz75BCdPnqyOGomIiIiqTOewk5iYiJYtWwIALC0tkZ6eDgAYOHAgdu/erevi6zW5XI7Zs2dDLpfru5Rawe01fE/bNnN7DRu39+mh8wBlb29vrF+/Hv7+/ujSpQsGDhyI999/H7/++iveeustJCcnV1etRERERJWmc8/Oiy++iNDQUADAW2+9hY8//hhNmzbF6NGj8dprr+lcIBEREZEuqv3U8xMnTuDEiRNo2rQpBg0aVJ2LJiIiIqo0XmeHiIiIDFqVrrOza9euCs/7wgsvVGUVRERERNVDVIFEIqnQQyqVVmXxBmPFihXCw8NDyOVy0bFjR3Hq1Cl9l1QjPvvsM9G+fXthaWkpHBwcxODBg8XFixf1XVatWbBggQAgpk6dqu9SasytW7dEUFCQsLOzE6ampqJFixYiLCxM32XViKKiIvHRRx8JT09PYWpqKho1aiTmzZsn1Gq1vkurNocPHxYDBw4ULi4uAoDYvn271nS1Wi0+/vhj4ezsLExNTUXv3r3F5cuX9VNsNXjc9hYUFIhZs2aJFi1aCHNzc+Hi4iJGjRolbt++rb+CdfSk7+/D3nzzTQFAfP3117VWnz5UaYCyWq2u0EOlUlVjLKtffv31V8yYMQOzZ89GREQE/Pz80KdPH4M8O+3w4cOYPHkyTp48iZCQEBQWFuL5559Hdna2vkurcWFhYVi9ejVatWql71JqTGpqKjp37gwTExP89ddfuHDhAr766ivY2trqu7QasXDhQqxcuRIrVqxATEwMFi5ciEWLFmH58uX6Lq3aZGdnw8/PD998802Z0xctWoRly5Zh1apVOHXqFCwsLNCnTx/k5eXVcqXV43Hbm5OTg4iICHz88ceIiIjA//73P1y6dKleH5V40ve3xPbt23Hy5EkolcpaqkyP9J22DFXHjh3F5MmTNa9VKpVQKpViwYIFeqyqdiQnJwsA4vDhw/oupUZlZmaKpk2bipCQENG9e3eD7dl57733RJcuXfRdRq0ZMGCAeO2117TaXnrpJREUFKSnimoWHvnPX61WC2dnZ/HFF19o2tLS0oRcLhe//PKLHiqsXo9ub1lOnz4tAIi4uLjaKaoGlbe9t27dEg0bNhTR0dHCw8ODPTvlOXDgAJo3b665vfrD0tPT4evriyNHjlR18fVaQUEBwsPDERgYqGmTSqUIDAzEiRMn9FhZ7Si5sKSdnZ2eK6lZkydPxoABA7S+z4Zo165daN++PV555RU4OjqiTZs2+P777/VdVo3p1KkTQkNDcfnyZQDA2bNncfToUfTr10/PldWO2NhYJCYmav1cW1tbw9/f/6n4+wUU/w2TSCSwsbHRdyk1Qq1WY9SoUZg5cyZ8fX31XU6tqPKNQJcsWYJx48aVeTMxa2trvPnmm/j666/RrVs3nQqsj+7duweVSgUnJyetdicnJ1y8eFFPVdUOtVqNadOmoXPnzmjRooW+y6kxmzdvRkREBMLCwvRdSo27fv06Vq5ciRkzZuC///0vwsLC8Pbbb0MmkyE4OFjf5VW7999/HxkZGfDx8YGRkRFUKhXmz5+PoKAgfZdWKxITEwGgzL9fJdMMWV5eHt577z2MHDnSoG6W+bCFCxfC2NgYb7/9tr5LqTVVDjtnz57FwoULy53+/PPP48svv6zq4qmemjx5MqKjo3H06FF9l1Jj4uPjMXXqVISEhMDU1FTf5dQ4tVqN9u3b47PPPgMAtGnTBtHR0Vi1apVBhp0tW7Zg48aN2LRpE3x9fREZGYlp06ZBqVQa5PbSvwoLCzFs2DAIIbBy5Up9l1MjwsPDsXTpUkREREAikei7nFpT5cNYSUlJMDExKXe6sbEx7t69W9XF12v29vYwMjJCUlKSVntSUhKcnZ31VFXNmzJlCv744w8cPHgQrq6u+i6nxoSHhyM5ORlt27aFsbExjI2NcfjwYSxbtgzGxsYGNzDfxcUFzZs312pr1qwZbt68qaeKatbMmTPx/vvvY8SIEWjZsiVGjRqF6dOnY8GCBfourVaU/I162v5+lQSduLg4hISEGGyvzt9//43k5GS4u7tr/n7FxcXhnXfegaenp77LqzFVDjsNGzZEdHR0udOjoqLg4uJS1cXXazKZDO3atdPcRgMo/u84NDQUAQEBeqysZgghMGXKFGzfvh0HDhyAl5eXvkuqUb1798a5c+cQGRmpebRv3x5BQUGIjIyEkZGRvkusVp07d8alS5e02i5fvgwPDw89VVSzcnJyIJVq/2k0MjKCWq3WU0W1y8vLC87Ozlp/vzIyMnDq1CmD/PsF/Bt0rly5gv3796NBgwb6LqnGjBo1ClFRUVp/v5RKJWbOnIm9e/fqu7waU+XDWP3798fHH3+Mvn37lurKz83NxezZszFw4ECdC6yvZsyYgeDgYLRv3x4dO3bEkiVLkJ2djbFjx+q7tGo3efJkbNq0CTt37oSVlZXmuL61tTXMzMz0XF31s7KyKjUeycLCAg0aNDDIcUrTp09Hp06d8Nlnn2HYsGE4ffo0vvvuO3z33Xf6Lq1GDBo0CPPnz4e7uzt8fX3xzz//YPHixQZ1r7+srCxcvXpV8zo2NhaRkZGws7ODu7s7pk2bhk8//RRNmzaFl5cXPv74YyiVSgwZMkR/Revgcdvr4uKCl19+GREREfjjjz+gUqk0f8Ps7Owgk8n0VXaVPen7+2iYMzExgbOzM7y9vWu71NpT1dO4EhMThVKpFG5ubmLhwoVix44dYseOHeLzzz8Xbm5uQqlUisTExOo7b6weWr58uXB3dxcymUx07NhRnDx5Ut8l1QgAZT7Wrl2r79JqjSGfei6EEL///rto0aKFkMvlwsfHR3z33Xf6LqnGZGRkiKlTpwp3d3fNRQU//PBDkZ+fr+/Sqs3BgwfL/J0NDg4WQvx7UUEnJychl8tF7969xaVLl/RbtA4et72xsbHl/g07ePCgvkuvkid9fx/1NJx6rtO9seLi4jBx4kTs3bsXJYuRSCTo06cPvvnmG4M/nEFERER1X7XcCDQ1NRVXr16FEAJNmzY12CurEhERUf3Du54TERGRQavy2VhERERE9QHDDhERERk0hh0iIiIyaAw7REREZNAYdoiIiMigMewQEZVBIpFgx44d+i6DiKoBww4R1TljxoyBRCIp9ejbt6++SyOieqjK98YiIqpJffv2xdq1a7Xa5HK5nqohovqMPTtEVCfJ5XI4OztrPUquzi6RSLBy5Ur069cPZmZmaNSoEbZt26b1/nPnzqFXr14wMzNDgwYNMH78eGRlZWnNs2bNGvj6+kIul8PFxQVTpkzRmn7v3j28+OKLMDc3R9OmTbFr166a3WgiqhEMO0RUL3388ccYOnQozp49i6CgIIwYMQIxMTEAgOzsbPTp0we2trYICwvD1q1bsX//fq0ws3LlSkyePBnjx4/HuXPnsGvXLjRp0kRrHXPnzsWwYcMQFRWF/v37IygoCCkpKbW6nURUDfR3D1IiorIFBwcLIyMjYWFhofWYP3++EEIIAGLChAla7/H39xcTJ04UQgjx3XffCVtbW5GVlaWZvnv3biGVSkViYqIQQgilUik+/PDDcmsAID766CPN66ysLAFA/PXXX9W2nURUOzhmh4jqpJ49e2LlypVabXZ2dprnAQEBWtMCAgIQGRkJAIiJiYGfnx8sLCw00zt37gy1Wo1Lly5BIpEgISEBvXv3fmwNrVq10jy3sLCAQqFAcnJyVTeJiPSEYYeI6iQLC4tSh5Wqi5mZWYXmMzEx0XotkUigVqtroiQiqkEcs0NE9dLJkydLvW7WrBkAoFmzZjh79iyys7M1048dOwapVApvb29YWVnB09MToaGhtVozEekHe3aIqE7Kz89HYmKiVpuxsTHs7e0BAFu3bkX79u3RpUsXbNy4EadPn8aPP/4IAAgKCsLs2bMRHByMOXPm4O7du3jrrbcwatQoODk5AQDmzJmDCRMmwNHREf369UNmZiaOHTuGt956q3Y3lIhqHMMOEdVJe/bsgYuLi1abt7c3Ll68CKD4TKnNmzdj0qRJcHFxwS+//ILmzZsDAMzNzbF3715MnToVHTp0gLm5OYYOHYrFixdrlhUcHIy8vDx8/fXXePfdd2Fvb4+XX3659jaQiGqNRAgh9F0EEVFlSCQSbN++HUOGDNF3KURUD3DMDhERERk0hh0iIiIyaByzQ0T1Do++E1FlsGeHiIiIDBrDDhERERk0hh0iIiIyaAw7REREZNAYdoiIiMigMewQERGRQWPYISIiIoPGsENEREQGjWGHiIiIDNr/A5B3Db1BSjGAAAAAAElFTkSuQmCC\n"
},
"metadata": {}
}
]
},
{
"cell_type": "code",
"source": [
"predictions = net.predict(test_images)\n",
"print(\"Accuracy: \", sum(predictions == test_labels) / len(predictions) * 100, \"%\")"
],
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/"
},
"id": "rs9WKsLCnheg",
"outputId": "5cd5586c-9af2-4796-978e-fe8c0cb8de59"
},
"execution_count": 8,
"outputs": [
{
"output_type": "stream",
"name": "stdout",
"text": [
"Accuracy: 91.62 %\n"
]
}
]
},
{
"cell_type": "code",
"source": [
"sampling_indices = np.random.choice(10000, 10)\n",
"x_test = test_images[sampling_indices]\n",
"y_test = test_labels[sampling_indices]\n",
"predictions_sample = predictions[sampling_indices]\n",
"\n",
"rotated_images = np.array(list(map(lambda i: x_test[i].reshape(28, 28), range(len(x_test)))))\n",
"labels_mapping = [str(i) for i in range(10)]\n",
"\n",
"fig = plt.figure(0)\n",
"fig.set_size_inches(30, 30)\n",
"for i in range(len(x_test)):\n",
" fig.add_subplot(5, 5, i + 1)\n",
" plt.imshow(rotated_images[i])\n",
" plt.title(f\"Label: {labels_mapping[y_test[i]]} / Prediction: {labels_mapping[predictions_sample[i]]}\")"
],
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/",
"height": 566
},
"id": "aMy6TkGqoGU1",
"outputId": "23caf72a-7153-450b-a9b1-1b1b8b489378"
},
"execution_count": 9,
"outputs": [
{
"output_type": "display_data",
"data": {
"text/plain": [
"<Figure size 3000x3000 with 10 Axes>"
],
"image/png": "iVBORw0KGgoAAAANSUhEUgAACUEAAAOuCAYAAAAjQEQKAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/bCgiHAAAACXBIWXMAAA9hAAAPYQGoP6dpAAC+WklEQVR4nOzdeXhV9Z0/8E/CEkA2kU0W2RSKG1oURKWgUJDWHaZqF0GtjgrWtYutFVxaZlwq1bq1VdT56ai1LlUZl6rgqCxqq9aNKoKACorKLmvO7w+HlEgCySFwcpLX63nuU3Nz3vd8803KOzf55NyCJEmSAAAAAAAAAAAAyKnCrBcAAAAAAAAAAACwNQxBAQAAAAAAAAAAuWYICgAAAAAAAAAAyDVDUAAAAAAAAAAAQK4ZggIAAAAAAAAAAHLNEBQAAAAAAAAAAJBrhqAAAAAAAAAAAIBcMwQFAAAAAAAAAADkmiEoAAAAAAAAAAAg1wxBAQAAAAAAAAAAuWYIimpjzpw5UVBQEFdddVWVPebkyZOjoKAgJk+eXGWPWVPddtttUVBQEHPmzCm5b+DAgTFw4MAqO8e4ceOioKCgyh4PgKqhg7OlgwFqLx2cLR0MUHvp4GyV1Y+dO3eOUaNGVdk5Ro0aFZ07d66yxwOgaujgbOlgagNDUGyVDT8wfOmll7JeyjbxwAMPxNChQ6Ndu3ZRVFQUHTp0iBEjRsTrr79eqcd5+OGHo7CwMBYsWFDuMZ07d46CgoKSW+vWraN///7xwAMPbO2HsV2tXLkyxo0bl4tvND788MP4/ve/Hz169IgmTZpE8+bNo0+fPnH77bdHkiRZLw9gs2p6B8+cOTPOPffcOPDAA6NBgwab/IKyonRw9fWrX/0qjjzyyGjTpk0UFBTEuHHjsl4SQIXU9A72PLjy8tTBngcDeVbTO3iDe+65J/r16xc77LBDNG/ePA488MB4+umnK5y/7rrrolmzZrF27dpyj9m4fwsLC6Ndu3YxZMiQXHTZxj788MMYN25cvPLKK1kvZYs2/IK+rNu0adOyXh7AZtX0Dv7qc9ONb7vttluFH0cHV0+jRo0q9/NbUFAQH3zwQdZLpIrVzXoBUJ394x//iB133DHOPvvsaNmyZSxYsCBuvfXW6NOnT0ydOjV69epVocd59NFHo3fv3tG2bdvNHrfPPvvE+eefHxFflsfNN98cxx57bNx4441x+umnb/XHU1lPPPFEpTMrV66MSy65JCJik7+eveiii+JnP/tZVSytSixatCjmz58fI0aMiF122SXWrl0bTz75ZIwaNSpmzpwZv/71r7NeIkCtNXXq1Lj22mtj9913j549e6Z+MqWDv1TdOjjiyzW1bds29t1333j88cezXg4A/8fz4JrdwZ4HA1Rv48aNi0svvTRGjBgRo0aNirVr18brr79eqV/OPfroozFkyJCoV6/eZo/75je/GSeeeGIkSRKzZ8+OG264IQ499NB49NFHY9iwYVv7oVTazJkzo7Cwcn+3/+GHH8Yll1wSnTt3jn322afU+/7whz9EcXFxFa6wavzoRz+K/fffv9R9u+66a0arASAiYsKECbF8+fJS973//vtx0UUXxZAhQyr8ODr4S9Wtg//93/89Bg8eXOq+JEni9NNPj86dO0f79u0zWhnbiiEo2IyLL754k/t++MMfRocOHeLGG2+Mm266qUKPM2nSpDj55JO3eFz79u3j+9//fsnbJ554Yuy6665xzTXXlPvD33Xr1kVxcXHUr1+/QmupjKp+zLp160bdutXnn5299957k8nqMWPGxBFHHBHXXnttXHbZZVGnTp1sFgdQyx155JGxePHiaNKkSVx11VWph6B08JeqWwdHRMyePTs6d+4cixYtilatWmW9HAD+j+fBNbuDPQ8GqL6mTZsWl156aVx99dVx7rnnpnqMlStXxpQpU+LGG2/c4rHdu3cv1cHHHHNM7L333jFhwoRyfwG7atWqqF+/fqV/UVoRRUVFVfp4W/oFdFb69+8fI0aMyHoZAGzk6KOP3uS+yy+/PCIivve971XoMXTwv1S3Du7Xr1/069ev1H3PPfdcrFy5ssKfX/LFy+Gxza1ZsyYuvvji6N27dzRr1ix22GGH6N+/fzzzzDPlZq655pro1KlTNGzYMAYMGFDmZffffvvtGDFiRLRo0SIaNGgQ++23X/zlL3/Z4npWrlwZb7/9dixatCjVx9O6deto1KhRLF68uELH/+Mf/4h58+bFt7/97Uqfq23bttGzZ8+YPXt2RJR+ndwJEyZEt27doqioKN58882IqPievPHGG3HooYdGw4YNo0OHDnH55ZeXOZE7cODATf6KddWqVTFu3Ljo3r17NGjQIHbeeec49thjY9asWTFnzpySX2JecsklJZcR3PDyNmW9zuy6devisssuK/lYOnfuHD//+c9j9erVpY7r3LlzHH744fHcc89Fnz59okGDBtG1a9e44447Nln3rFmzYtasWRXb5DJ07tw5Vq5cGWvWrEn9GADVQZ47uEWLFtGkSZMtHrc5Orh6d7DXhQdqsjx3cFk8D65ZHVwWz4OBmiLPHTxhwoRo27ZtnH322ZEkySZXpKiIp556KlavXp3qKhJ77bVXtGzZsqSDN7x829133x0XXXRRtG/fPho1ahRLly6NiIjp06fHYYcdFs2aNYtGjRrFgAED4vnnn9/kcZ977rnYf//9o0GDBtGtW7e4+eabyzx/586dY9SoUaXuW7x4cZx77rnRuXPnkpfpPfHEE2PRokUxefLkkisqnXTSSSUdfNttt0XEly9989XnnStWrIjzzz8/OnbsGEVFRdGjR4+46qqrNnlJ2IKCghgzZkw8+OCDseeee0ZRUVHsscce8dhjj22y7rfffjvmzp27xf3d2LJly2LdunWVygBUd3nu4LLcdddd0aVLlzjwwAMrdLwOzkcHb3DXXXdFQUFBfPe7302Vp3qrPn+KRo21dOnS+OMf/xgnnHBCnHrqqbFs2bK45ZZbYujQoTFjxoxNLpF3xx13xLJly2L06NGxatWq+O1vfxuHHnpo/OMf/4g2bdpExJc/vDzooIOiffv28bOf/Sx22GGHuPfee+Poo4+OP//5z3HMMceUu54ZM2bEIYccEmPHji35oeSWLF68ONauXRsLFiyICRMmxNKlS2PQoEEVyk6aNClat24d++23X4WO39jatWtj3rx5sdNOO5W6f+LEibFq1ao47bTToqioKFq0aFHhPVmwYEEccsghsW7dupLjfv/730fDhg23uJ7169fH4YcfHk899VQcf/zxcfbZZ8eyZcviySefjNdffz0GDx4cN954Y5xxxhlxzDHHxLHHHhsRX/6laXl++MMfxu233x4jRoyI888/P6ZPnx7jx4+Pt956Kx544IFSx7777rsxYsSIOOWUU2LkyJFx6623xqhRo6J3796xxx57lBy34XMzZ86cCu3zF198EStWrIjly5fHlClTYuLEidGvX78K7QlAdVYTOnhr6ODq38EANVVN6GDPg79UUzvY82CgpspzBz/11FNx4IEHxrXXXhuXX355fPrpp9G2bdv4xS9+EWPGjKnQxz9p0qTo3bt3ydor4/PPP4/PP/98k5dmu+yyy6J+/fpxwQUXxOrVq6N+/frx9NNPx7Bhw6J3794xduzYKCwsjIkTJ8ahhx4a//u//xt9+vSJiC8Ho4cMGRKtWrWKcePGxbp162Ls2LEVWt/y5cujf//+8dZbb8XJJ58cX//612PRokXxl7/8JebPnx89e/aMSy+9NC6++OI47bTTon///hER5f6yOkmSOPLII+OZZ56JU045JfbZZ594/PHH48c//nF88MEHcc0115Q6/rnnnov7778/zjzzzGjSpElce+21MXz48Jg7d26p71N69uwZAwYM2ORKi+U56aSTYvny5VGnTp3o379/XHnllam+ZwKobvLcwV/197//Pd566634xS9+UeGMDq7+HbzB2rVr4957740DDzzQH+rWVAlshYkTJyYRkbz44ovlHrNu3bpk9erVpe77/PPPkzZt2iQnn3xyyX2zZ89OIiJp2LBhMn/+/JL7p0+fnkREcu6555bcN2jQoGSvvfZKVq1aVXJfcXFxcuCBBya77bZbyX3PPPNMEhHJM888s8l9Y8eOrfDH2aNHjyQikohIGjdunFx00UXJ+vXrK5Tt379/MnLkyC0e16lTp2TIkCHJJ598knzyySfJq6++mhx//PFJRCRnnXVWkiT/2qOmTZsmH3/8cal8RffknHPOSSIimT59esl9H3/8cdKsWbMkIpLZs2eX3D9gwIBkwIABJW/feuutSUQkv/nNbzZZf3FxcZIkSfLJJ5+Uu79jx45NNv5n55VXXkkiIvnhD39Y6rgLLrggiYjk6aefLrU/EZE8++yzpdZdVFSUnH/++ZvsZadOnTY5f3nGjx9f8vmNiGTQoEHJ3LlzK5wHyEJt6eAkSZIrr7xyk46qCB38L9W1g7e0boDqqLZ0sOfBX6qpHex5MJBHNbmDP/vssyQikp122ilp3LhxcuWVVyb33HNPcthhhyURkdx0002bzW+wyy67VKjvIyI55ZRTkk8++ST5+OOPk+nTpyeDBg1KIiK5+uqrS629a9euycqVK0t97LvttlsydOjQki5MkiRZuXJl0qVLl+Sb3/xmyX1HH3100qBBg+T9998vue/NN99M6tSpU6ofk+TLLtv4+4eLL744iYjk/vvv32T9G8774osvJhGRTJw4cZNjRo4cWaobH3zwwSQikssvv7zUcSNGjEgKCgqSd999t9T+1K9fv9R9r776ahIRyXXXXbfJXm78vUN5nn/++WT48OHJLbfckjz00EPJ+PHjk5122ilp0KBB8re//W2LeYAs1eQOLsv555+fRETy5ptvVjijg/+lunXwVz388MNJRCQ33HBDpbPkg5fDY5urU6dO1K9fPyIiiouL47PPPot169bFfvvtF3/72982Of7oo4+O9u3bl7zdp0+f6Nu3b0yaNCkiIj777LN4+umn4zvf+U4sW7YsFi1aFIsWLYpPP/00hg4dGu+880588MEH5a5n4MCBkSRJpaZ+J06cGI899ljccMMN0bNnz/jiiy9i/fr1W8wtXrw4pk6dWuGXAHjiiSeiVatW0apVq+jVq1f86U9/ih/84Afxn//5n6WOGz58eMnl9iMqtyeTJk2KAw44oGQSOCKiVatWFXrN0z//+c/RsmXLOOusszZ531cv718RGz6n5513Xqn7zz///IiIePTRR0vdv/vuu5dME29Yd48ePeK9994rddycOXMqdQWKE044IZ588sm46667Si57+MUXX1Q4D1Bd1YQOTksHb1516WCAmqomdLDnwV+qqR3seTBQU+W1gze89N2nn34af/zjH+OCCy6I73znO/Hoo4/G7rvvHpdffvkWP/bXX3895s6dW+EOvuWWW6JVq1bRunXr6Nu3bzz//PNx3nnnxTnnnFPquJEjR5a6UuArr7wS77zzTnz3u9+NTz/9tGRPVqxYEYMGDYpnn302iouLY/369fH444/H0UcfHbvssktJvmfPnjF06NAtru/Pf/5z9OrVq8yrfKTt4Dp16sSPfvSjUveff/75kSRJ/M///E+p+wcPHhzdunUreXvvvfeOpk2bbtLBSZJU6AoUBx54YNx3331x8sknx5FHHhk/+9nPYtq0aVFQUBAXXnhhpT8egOomrx38VcXFxXH33XfHvvvuGz179qxQRgdvXtYd/FV33XVX1KtXL77zne9UOks+eDk8tovbb789rr766nj77bdj7dq1Jfd36dJlk2N32223Te7r3r173HvvvRHx5aXgkySJX/7yl/HLX/6yzPN9/PHHpYpza/Xr16/kv48//viS0rvqqqs2m3v88ccjImLIkCEVOk/fvn3j8ssvj4KCgmjUqFH07NkzmjdvvslxX923yuzJ+++/H3379t3k/T169Nji+mbNmhU9evSIunWr5p+O999/PwoLCze5vGPbtm2jefPm8f7775e6f+Oi3mDHHXeMzz//fKvW0alTp+jUqVNEfPmD4NNOOy0GDx4cM2fO9FIAQO7lvYPT0sGbV106GKAmy3sHex78pZrawZ4HAzVZHjt4w7+99erVixEjRpTcX1hYGMcdd1yMHTs25s6dW2YvbPDoo49GmzZtKvzSakcddVSMGTMmCgoKokmTJrHHHnvEDjvssMlxX923d955JyK+/MVseZYsWRKrV6+OL774osw97tGjR8kvucsza9asGD58eEU+lAp5//33o127dtGkSZNS92/4HieL58G77rprHHXUUXH//ffH+vXro06dOlX22ABZyGMHf9WUKVPigw8+iHPPPbfCGR28edWpg5cvXx4PPfRQDB06tNRL61GzGIJim/t//+//xahRo+Loo4+OH//4x9G6deuoU6dOjB8/PmbNmlXpxysuLo6IiAsuuKDcadWv/jCxKu24445x6KGHxp133rnFH/5OmjQpDjrooGjWrFmFHrtly5YxePDgLR731R9IZr0nW6uiU8PlPQlMkqQqlxMjRoyIP/zhD/Hss89WaCIaoLqqaR1cGTq4YqpbBwPUFDWtgz0PrnrVrYM9DwZqirx2cIsWLaJBgwbRvHnzTf7tb926dUREfP7555sdgpo0aVIcdthhFe6YDh06bFUHX3nllbHPPvuUmWncuHGsXr26QuuorrZXB3fs2DHWrFkTK1asiKZNm1bpYwNsT3nt4K+68847o7CwME444YQKZ3Rw1dqWHfzggw/GypUrK3RlaPLLEBTb3H333Rddu3aN+++/v9Q//mPHji3z+A1TrBv75z//GZ07d46IiK5du0bEl38VU5GC2Ba++OKLWLJkyWaPSZIkHnvssbjgggu2+XoqsyedOnUqc49nzpy5xfN069Ytpk+fHmvXro169eqVeUxlLoPYqVOnKC4ujnfeeafUJSUXLlwYixcvLvmr1O1tw0sAbOlzDFDd1cQOrggdvGXVtYMBaoqa2MGeB9fsDvY8GKgp8trBhYWFsc8++8SLL74Ya9asKXk5oYiIDz/8MCKi1MvCftXixYvjhRdeiDFjxmyzNW6w4eVpmjZtutk9adWqVTRs2HCrOvj111/f7DGV7eC//vWvsWzZslJXonj77bdL3p+F9957Lxo0aBCNGzfO5PwAVSWvHbyx1atXx5///OcYOHBgtGvXrkIZHbxl1amD77zzzmjcuHEceeSR2+2cbH+FWS+Amm/DtObG05nTp0+PqVOnlnn8gw8+WOo1XGfMmBHTp0+PYcOGRcSXf/kycODAuPnmm+Ojjz7aJP/JJ59sdj0rV66Mt99+OxYtWrTFtX/88ceb3Ddnzpx46qmntnhJwxdffDE+/vjjCr/+69aozJ5861vfimnTpsWMGTNKvf/OO+/c4nmGDx8eixYtit/97nebvG/D57dRo0YR8WXpb8m3vvWtiIiYMGFCqft/85vfRESk3rtZs2ZVaKq8vK+VW265JQoKCuLrX/96qvMDVBd57uCtoYMXb/Hxsu5ggJouzx3seXBpNa2DPQ8Garo8d/Bxxx0X69evj9tvv73kvlWrVsWdd94Zu++++2Z/GfvEE09ERMVfjnZr9O7dO7p16xZXXXVVLF++fJP3b9iTOnXqxNChQ+PBBx+MuXPnlrz/rbfeKnn53M0ZPnx4vPrqq/HAAw9s8r4Nn98NLx1U0Q5ev379Jp1+zTXXREFBQcnnvLLefvvtUh9fecr6Wnn11VfjL3/5SwwZMiQKC/26Dsi3PHfwBpMmTYrFixdX6ipBOnjxFh8v6w7e4JNPPom//vWvccwxx5Q8j6dmciUoqsStt94ajz322Cb3n3322XH44YfH/fffH8ccc0x8+9vfjtmzZ8dNN90Uu+++e5n/QO+6665x8MEHxxlnnBGrV6+OCRMmxE477RQ/+clPSo65/vrr4+CDD4699torTj311OjatWssXLgwpk6dGvPnz49XX3213LXOmDEjDjnkkBg7dmyMGzdusx/XXnvtFYMGDYp99tkndtxxx3jnnXfilltuibVr18Z//Md/bDb76KOPRufOnWP33Xff7HFVpaJ78pOf/CT+67/+Kw477LA4++yzY4cddojf//730alTp3jttdc2e44TTzwx7rjjjjjvvPNixowZ0b9//1ixYkX89a9/jTPPPDOOOuqoaNiwYey+++5xzz33RPfu3aNFixax5557xp577rnJ4/Xq1StGjhwZv//972Px4sUxYMCAmDFjRtx+++1x9NFHxyGHHJJqLwYNGhQRX/6gfnN+9atfxfPPPx+HHXZY7LLLLvHZZ5/Fn//853jxxRfjrLPOqtYvnQCwQU3t4CVLlsR1110XERHPP/98RET87ne/i+bNm0fz5s03+5c1Orj6d3BExH/913/F+++/HytXroyIiGeffTYuv/zyiIj4wQ9+4GpUQLVXUzvY8+DSaloHex4M1AQ1tYP//d//Pf74xz/G6NGj45///GfssssuJc+bHn744c1mH3300Tj44IMr/HK0W6OwsDD++Mc/xrBhw2KPPfaIk046Kdq3bx8ffPBBPPPMM9G0adOS9V5yySXx2GOPRf/+/ePMM8+MdevWxXXXXRd77LHHFjv4xz/+cdx3333xb//2b3HyySdH796947PPPou//OUvcdNNN0WvXr2iW7du0bx587jpppuiSZMmscMOO0Tfvn2jS5cumzzeEUccEYccckj84he/iDlz5kSvXr3iiSeeiIceeijOOeeckqtrVFbPnj1jwIABMXny5M0ed9xxx0XDhg3jwAMPjNatW8ebb74Zv//976NRo0Zb/B4LoLqoqR28wZ133hlFRUUxfPjwCh0foYPz0MEb3HPPPbFu3TovhVcbJLAVJk6cmEREubd58+YlxcXFya9//eukU6dOSVFRUbLvvvsmjzzySDJy5MikU6dOJY81e/bsJCKSK6+8Mrn66quTjh07JkVFRUn//v2TV199dZNzz5o1KznxxBOTtm3bJvXq1Uvat2+fHH744cl9991XcswzzzyTRETyzDPPbHLf2LFjt/jxjR07Ntlvv/2SHXfcMalbt27Srl275Pjjj09ee+21LWb322+/5Mwzz9zicRt06tQp+fa3v73ZYzbeo7JUZE+SJElee+21ZMCAAUmDBg2S9u3bJ5dddllyyy23JBGRzJ49u+S4AQMGJAMGDCiVXblyZfKLX/wi6dKlS1KvXr2kbdu2yYgRI5JZs2aVHPPCCy8kvXv3TurXr19qr8eOHZt89Z+dtWvXJpdccknJ43Xs2DG58MILk1WrVlVof8paY6dOnUp9bZXniSeeSA4//PCkXbt2Sb169ZImTZokBx10UDJx4sSkuLh4i3mALNX0Dt6wprJuW/o3XgdX/w7ekC/vc7zx1w1AdVPTO9jz4JrdwZ4HA3lW0zs4SZJk4cKFyciRI5MWLVokRUVFSd++fZPHHntss5ni4uKkdevWyRVXXFGhcyRJkkREMnr06M0es2Htf/rTn8p8/9///vfk2GOPTXbaaaekqKgo6dSpU/Kd73wneeqpp0odN2XKlJKO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TjW5u9dee0XLli1j9uzZEfGvl2+7++6746KLLor27dtHo0aNYunSpRERMX369DjssMOiWbNm0ahRoxgwYEA8//zzmzzuc889F/vvv380aNAgunXrFjfffHOZ5y/rNWAXL14c5557bnTu3Lnk5YlOPPHEWLRoUUyePLnkm4OTTjqp5HKOt912W0SU/RqwK1asiPPPPz86duwYRUVF0aNHj7jqqqs22esNl35+8MEHY88994yioqLYY4894rHHHttk3W+//XbMnTt3i/u7sWXLlsW6desqlQGo7mpCB2+sdevW0ahRo1i8eHGFjv/HP/4R8+bNi29/+9uVPlfbtm2jZ8+eJR288WvVT5gwIbp16xZFRUXx5ptvRkTF9+SNN96IQw89NBo2bBgdOnSIyy+/vMy/ihk4cOAmV3NatWpVjBs3Lrp37x4NGjSInXfeOY499tiYNWtWzJkzJ1q1ahUREZdccklJB48bNy4iyn6t93Xr1sVll11W8rF07tw5fv7zn8fq1atLHde5c+c4/PDD47nnnos+ffpEgwYNomvXrnHHHXdssu5Zs2bFrFmzKrbJZejcuXOsXLky1qxZk/oxAKqDPHfwhAkTom3btnH22WdHkiSxfPnyLWa+yvPg6vs8+K677oqFCxfGr371qygsLIwVK1ZUu7/QBdgaee7gDa644oooLi4u+SVdZejg6tvBGzz77LNx3333xYQJEyqcAciDPHfwfffdF/vvv3+pV4352te+FoMGDYp77713i/kIHVydO/i+++6LOnXqxGmnnVZyX4MGDeKUU06JqVOnxrx587b4GORL9flzcGqspUuXxh//+Mc44YQT4tRTT41ly5bFLbfcEkOHDo0ZM2Zscom8O+64I5YtWxajR4+OVatWxW9/+9s49NBD4x//+Ee0adMmIr78BeJBBx0U7du3j5/97Gexww47xL333htHH310/PnPf45jjjmm3PXMmDEjDjnkkBg7dmzJLwa3pGvXrrF8+fLYYYcd4uijj46rr766ZC1bMmnSpOjdu3eFj9/Y559/Hp9//vkmL8122WWXRf369eOCCy6I1atXR/369ePpp5+OYcOGRe/evWPs2LFRWFgYEydOjEMPPTT+93//N/r06RMRX/5CeMiQIdGqVasYN25crFu3LsaOHVuh9S1fvjz69+8fb731Vpx88snx9a9/PRYtWhR/+ctfYv78+dGzZ8+49NJL4+KLL47TTjst+vfvHxERBx54YJmPlyRJHHnkkfHMM8/EKaecEvvss088/vjj8eMf/zg++OCDuOaaa0od/9xzz8X9998fZ555ZjRp0iSuvfbaGD58eMydO7fUpSh79uwZAwYMqPDr55500kmxfPnyqFOnTvTv3z+uvPLK2G+//SqUBajOakIHL168ONauXRsLFiyICRMmxNKlS2PQoEEVyk6aNClat26d6t/0tWvXxrx58za51PHEiRNj1apVcdppp0VRUVG0aNGiwnuyYMGCOOSQQ2LdunUlx/3+97+Phg0b/v/27jzOyrLuH/h32AZQFhHZFBDcRcVyIUVFgwSXcsEtW7BMS9Fcs4fKyPKJ0ic1zTRTUftZlnsumYqITwm4a2oiIggugKIssgnM/fvDh8mROTBzceCem3m/X6955Zxzf+a65p5pPpwz37nPGvezYsWKOPTQQ2PMmDFx3HHHxRlnnBELFiyIhx56KF588cUYNGhQXHXVVXHKKafEEUccEUceeWREfHzFpVK+9a1vxY033hhHHXVUnHPOOTFx4sQYNWpU/Pvf/44777yzxrGvvfZaHHXUUXHiiSfGsGHD4vrrr48TTjghdtttt+jTp0/1cSu/NtOmTavTeV68eHEsXLgwPvzwwxg3blyMHj069tprrzqdE4CGrMgdPGbMmNh7773j8ssvjwsvvDDmzJkTXbp0iR/+8Idx2mmn1enz9zi44T4Ofvjhh6Nt27bx1ltvxeGHHx6vvvpqbLTRRvG1r30tLr300mjZsuUazwlAQ1bkDo6ImD59evziF7+I66+/PulxkQ5uuB0c8fFj+9NPPz2+9a1vxc4777zG4wGKpKgdXFVVFS+88EKtryaw5557xoMPPhgLFiyINm3arPbz18ENt4OfffbZ2HbbbaNt27Y1bl95rp577rno3r37Gs8LBZLBWhg9enQWEdmTTz5Z8pjly5dnS5curXHbBx98kHXu3Dn75je/WX3b1KlTs4jIWrVqlb355pvVt0+cODGLiOyss86qvm3gwIHZzjvvnC1ZsqT6tqqqqmzvvffOttlmm+rbxo4dm0VENnbs2FVuGzly5Bo/v8suuyw77bTTsptvvjm77bbbsjPOOCNr1qxZts0222Tz5s1bYz7LsqxHjx51WisishNPPDF79913s9mzZ2cTJ07MBg4cmEVE9qtf/arG3nv37p0tWrSoxue+zTbbZIMHD86qqqqqb1+0aFHWq1ev7Atf+EL1bYcffnjWsmXL7I033qi+7eWXX86aNm2affpHQs+ePbNhw4ZVv//jH/84i4jsjjvuWGX/K9d98skns4jIRo8evcoxw4YNy3r27Fn9/l133ZVFRHbhhRfWOO6oo47KKioqstdee63G+WnRokWN255//vksIrIrrrhilXM5YMCAVdb/tH/+85/Z0KFDs+uuuy67++67s1GjRmWbbrpp1rJly+yZZ55ZYx4gTxt6B6+03XbbZRGRRUS28cYbZz/60Y+yFStW1Cm777771uixUnr27JkdeOCB2bvvvpu9++672fPPP58dd9xxWURkp59+epZl/zlHbdu2zWbPnl0jX9dzcuaZZ2YRkU2cOLH6ttmzZ2ft2rXLIiKbOnVq9e0DBgyo0WXXX399FhHZJZdcssr+V3bwu+++W/L8jhw5skbPP/fcc1lEZN/61rdqHHfuuedmEZE98sgjNc5PRGSPPfZYjX1XVlZm55xzzirn8pNdvyajRo2q/vpGRDZw4MBs+vTpdc4D5GFD7uD3338/i4hs0003zTbeeOPs4osvzv785z9nQ4YMySIiu/rqq1ebX8nj4P9oaI+Dd9lll6x169ZZ69ats9NPPz27/fbbs9NPPz2LiOy4445bYx4gTxtyB6901FFHZXvvvXf1+xGRDR8+vE7ZLNPBn9TQOjjLsuw3v/lN1q5du+rnFQYMGJD16dOnTlmAPG3IHbzyOdWf/vSnq9x35ZVXZhGRvfLKK6v9GFmmgz+poXVwnz59ss9//vOr3P7SSy/V67kOisPL4bHONW3aNFq0aBERH0/Tvv/++7F8+fLYfffd45lnnlnl+MMPPzw233zz6vf33HPP6NevX9x///0REfH+++/HI488Esccc0wsWLAg3nvvvXjvvfdizpw5MXjw4Jg8eXK89dZbJfez//77R5ZldfrLmzPOOCOuuOKKOP7442Po0KFx2WWXxY033hiTJ0+O3/72t2vMv/jiizF9+vQ6vwzPddddF5tttll06tQp+vXrF//85z/j7LPPjjPPPLPGccOGDavxl0DPPfdcTJ48OY4//viYM2dO9TlZuHBhDBw4MB577LGoqqqKFStWxN///vc4/PDDo0ePHtX5HXbYIQYPHrzG/d1+++3Rt2/fWierP/0SO3Vx//33R9OmTeO73/1ujdvPOeecyLIs/va3v9W4fdCgQbHVVltVv7/LLrtE27Zt4/XXX69xXJZldfrLm7333jtuu+22+OY3vxlf+tKX4r/+679iwoQJUVFRESNGjKj35wPQ0BS5g1caPXp0PPDAA/Hb3/42dthhh1i8eHGsWLFijbm5c+fG+PHj69zBDz74YGy22Wax2WabRd++fePWW2+Nr33ta/HLX/6yxnFDhw6tftm5iPqdk/vvvz8+97nPVf+FSUTEZpttFl/5ylfWuL/bb789OnbsGKeffvoq96V2cETE2WefXeP2c845JyIi7rvvvhq377jjjtV/0bNy39ttt90qHTxt2rQ6XwUqIuLLX/5yPPTQQ/HHP/4xjj/++Ij4+OpQAEVX1A5e+dJ3c+bMiWuvvTbOPffcOOaYY+K+++6LHXfcMS688MI1fu4eB69e3o+DP/zww1i0aFF8/etfj8svvzyOPPLIuPzyy+Pb3/523HLLLTF58uR6f04ADUlROzgiYuzYsXH77bcnv0yaDl69vDt4zpw58eMf/zjOP//8Gs8rAGwoitrBK5+LrKysXOW+lVfKXdPzlTp49fLu4MWLF6/V15fi8XJ4rBc33nhj/OpXv4pXXnklli1bVn17r169Vjl2m222WeW2bbfdtvo1V1977bXIsizOP//8OP/882tdb/bs2TWKs5yOP/74OOecc+Lhhx+O//qv/1rtsffdd1907ty5zi/Dc9hhh8Vpp50WFRUV0aZNm+jTp09stNFGqxz36fO28knKYcOGlfzY8+bNi6VLl8bixYtrPcfbbbdd9T8sSpkyZUoMHTq0Lp9KnbzxxhvRrVu3VS4hucMOO1Tf/0mfLOqVNtlkk/jggw/Ktqett946DjvssLjjjjtixYoV0bRp07J9bIA8FL2D99prr+r/Pu6446o74n/+539Wm/v73/8eEREHHnhgndbp169fXHjhhVFRURGtW7eOHXbYIdq3b7/KcZ8+b/U5J2+88Ub069dvlfu32267Ne5vypQpsd1220WzZuX55/sbb7wRTZo0WeUSy126dIn27duvtw7u2bNn9OzZMyI+Hog6+eSTY9CgQTFp0iQviQcUXhE7eOXP3ubNm8dRRx1VfXuTJk3i2GOPjZEjR8b06dNr7YWVPA5evbwfB6/8Gn/5y1+ucfvxxx8fv/vd72L8+PG1niuAIiliBy9fvjy++93vxte+9rXYY489kj6GDl69vDv4Rz/6UXTo0KHWP24C2FAUsYNXPkZaunTpKvctWbKkxjGl6ODVy7uDW7VqtVZfX4rHEBTr3P/7f/8vTjjhhDj88MPje9/7XnTq1CmaNm0ao0aNiilTptT741VVVUVExLnnnltyWvXTv9Art+7du8f777+/xuPuv//+GDJkSJ2nYrfYYosYNGjQGo/79A/jlefk4osvXuU1dVfaeOONa/0BXySlBpKyLCvrOt27d4+PPvooFi5cuMrrwwIUyYbWwZtsskl8/vOfj5tvvnmNQ1D3339/9O/fP9q1a1enj92xY8e16uA8/12yNur6b5T11cFHHXVU/P73v4/HHnusTn+VBNBQFbWDO3ToEC1btoz27duv8rO/U6dOERHxwQcfrHYIyuPg8ip3B3fr1i1eeuml6Ny5c43bP/n1BSiyonbwTTfdFJMmTYrf/e53q1xdd8GCBTFt2rTo1KlTtG7duuTH0MHlVc4Onjx5clxzzTVx2WWXxdtvv119+5IlS2LZsmUxbdq0aNu2bXTo0CF5vwB5K2oHd+jQISorK+Odd95Z5b6Vt3Xr1m21H0MHl1e5Hwd37dq11quG1fXrS/EYgmKdu+2226J3795xxx131PjhP3LkyFqPr+3S66+++mpsueWWERHRu3fviPj4L1PrUhDllmVZTJs2LT7zmc+s9ri5c+fG448/Hqeddto639PKSwK2bdt2tedks802i1atWtV6jidNmlSndV588cXVHlOfyyD27NkzHn744ViwYEGN6d9XXnml+v48vP7669GyZcvYeOONc1kfoFw2tA6O+PjStPPmzVvtMVmWxQMPPBDnnnvuOt9Pfc5Jz54916qDJ06cGMuWLYvmzZvXekx9O7iqqiomT55c/Rc3ERGzZs2KuXPn5tbBKy89vKavMUBDV9QObtKkSey6667x5JNPxkcffVT9UgYRUf0Lu9W9fIvHwWuW9+Pg3XbbLR566KF46623alyNsi5fX4AiKGoHT58+PZYtWxb9+/df5b6bbropbrrpprjzzjvj8MMPrzWvg9cszw5+6623oqqqKr773e+u8lJAER9f6eOMM85IfilEgIagqB3cpEmT2HnnneOpp55a5b6JEydG7969V7mC0Sfp4DXL+3HwrrvuGmPHjo358+fXuPjFxIkTq+9nw9Ik7w2w4Vs5rfnJ6cyJEyfG+PHjaz3+rrvuqjGN+cQTT8TEiRPjoIMOioiP/zpx//33j9/97ne1TuW+++67q93PokWL4pVXXon33ntvjXuv7WNdddVV8e6778aQIUNWm33wwQcjou4vw7M2dtttt9hqq63if/7nf+LDDz9c5f6Vn0fTpk1j8ODBcdddd8X06dOr7//3v/9d/bJBqzN06NB4/vnn484771zlvpVf35WXa5w7d+4aP97BBx8cK1asiN/85jc1br/00kujoqKi+mteX6+88kqNz6+U2r6+zz//fPz1r3+NAw88MJo08SMSKLYid/Ds2bNXuW3atGkxZsyYNV5W+Mknn4zZs2fX+TXY10Z9zsnBBx8cEyZMiCeeeKLG/TfffPMa1xk6dGi89957q3RmxH++viv/IriuHRwRqzzBeskll0REJJ+7KVOm1Okvu0p9r1x33XVRUVERn/3sZ5PWB2goitzBxx57bKxYsSJuvPHG6tuWLFkSN998c+y4446r/QtJj4PnrvHj5f04+JhjjomIjzv3k6699tpo1qxZ7L///knrAzQURe3g4447Lu68885V3iI+7o4777yz1pdXX0kHz13jx8uzg3faaadav759+vSJHj16xJ133hknnnhi0voADUVROzji46vTP/nkkzUGoSZNmhSPPPJIHH300avN6uC5a/x4eT8OPuqoo2LFihVxzTXXVN+2dOnSGD16dPTr1y+6d++etD4NlytBURbXX399PPDAA6vcfsYZZ8Shhx4ad9xxRxxxxBFxyCGHxNSpU+Pqq6+OHXfcsdYf0FtvvXXss88+ccopp8TSpUvjsssui0033TTOO++86mOuvPLK2GeffWLnnXeOk046KXr37h2zZs2K8ePHx5tvvhnPP/98yb0+8cQTccABB8TIkSPjJz/5yWo/r549e8axxx4bO++8c7Rs2TL+8Y9/xC233BK77rprfPvb315t9r777ot99tmnzi/DszaaNGkS1157bRx00EHRp0+f+MY3vhGbb755vPXWWzF27Nho27Zt3HPPPRERccEFF8QDDzwQ++67b5x66qmxfPnyuOKKK6JPnz7xwgsvrHad733ve3HbbbfF0UcfHd/85jdjt912i/fffz/++te/xtVXXx19+/aNrbbaKtq3bx9XX311tGnTJjbaaKPo169fra/3+8UvfjEOOOCA+OEPfxjTpk2Lvn37xoMPPhh33313nHnmmdUTzfW1ww47xIABA+LRRx9d7XHHHntstGrVKvbee+/o1KlTvPzyy3HNNddE69at4xe/+EXS2gDr24bawTvvvHMMHDgwdt1119hkk01i8uTJcd1118WyZcvW+DP6vvvuiy233DJ23HHH1R5XLnU9J+edd1784Q9/iCFDhsQZZ5wRG220UVxzzTXRs2fPNXbw17/+9bjpppvi7LPPjieeeCL23XffWLhwYTz88MNx6qmnxmGHHRatWrWKHXfcMf785z/HtttuGx06dIiddtopdtppp1U+Xt++fWPYsGFxzTXXxNy5c2PAgAHxxBNPxI033hiHH354HHDAAUnnYuDAgRERq7x8w6f993//d/zzn/+MIUOGRI8ePeL999+P22+/PZ588sk4/fTTG/RLCAKstKF28Le//e249tprY/jw4fHqq69Gjx494g9/+EO88cYb1Y8rS/E4uOE/Dv7MZz4T3/zmN+P666+P5cuXV2duvfXWGDFihJcBAAphQ+zg7bffPrbffvta7+vVq1fJK0CtpIMbdgd37Nix1q/hyj9MWtPXF6Ch2BA7OCLi1FNPjd///vdxyCGHxLnnnhvNmzePSy65JDp37hznnHPOarM6uGF3cEREv3794uijj44RI0bE7NmzY+utt44bb7wxpk2btsofCLGByGAtjB49OouIkm8zZszIqqqqsp///OdZz549s8rKyuwzn/lMdu+992bDhg3LevbsWf2xpk6dmkVEdvHFF2e/+tWvsu7du2eVlZXZvvvumz3//POrrD1lypTs61//etalS5esefPm2eabb54deuih2W233VZ9zNixY7OIyMaOHbvKbSNHjlzj5/etb30r23HHHbM2bdpkzZs3z7beeuvs+9//fjZ//vzV5qqqqrJOnTplF1100RrXWCkisuHDh6/2mJV7v/XWW2u9/9lnn82OPPLIbNNNN80qKyuznj17Zsccc0w2ZsyYGseNGzcu22233bIWLVpkvXv3zq6++ups5MiR2ad/JPTs2TMbNmxYjdvmzJmTnXbaadnmm2+etWjRIttiiy2yYcOGZe+99171MXfffXe24447Zs2aNcsiIhs9enSWZdkqX/Msy7IFCxZkZ511Vtat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\n"
},
"metadata": {}
}
]
},
{
"cell_type": "code",
"source": [
"# Usage\n",
"https://mco-mnist-draw-rwpxka3zaa-ue.a.run.app/"
],
"metadata": {
"id": "8C7gUhiIpZZE"
},
"execution_count": 9,
"outputs": []
}
]
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment