{"cells":[{"metadata":{"_uuid":"8f2839f25d086af736a60e9eeb907d3b93b6e0e5","_cell_guid":"b1076dfc-b9ad-4769-8c92-a6c4dae69d19","trusted":true},"cell_type":"code","source":"# This Python 3 environment comes with many helpful analytics libraries installed\n# It is defined by the kaggle/python docker image: https://github.com/kaggle/docker-python\n# For example, here's several helpful packages to load in \n\nimport numpy as np # linear algebra\nimport pandas as pd # data processing, CSV file I/O (e.g. pd.read_csv)\nimport matplotlib.pyplot as plt\n%matplotlib inline\n\nfrom keras.models import Sequential\nfrom tensorflow.keras.layers import Dense, Flatten, Dropout, Activation, Conv2D, MaxPooling2D,Dense  , Lambda, Flatten\nfrom keras.optimizers import Adam ,RMSprop\nfrom sklearn.model_selection import train_test_split\nfrom keras import  backend as K\nfrom keras.preprocessing.image import ImageDataGenerator\nfrom keras.callbacks import ReduceLROnPlateau\n# Input data files are available in the \"../input/\" directory.\n# For example, running this (by clicking run or pressing Shift+Enter) will list the files in the input directory\n\nimport os\nprint(os.listdir(\"../input\"))\n\n# Any results you write to the current directory are saved as output.","execution_count":88,"outputs":[{"output_type":"stream","text":"['train.csv', 'test.csv', 'sample_submission.csv']\n","name":"stdout"}]},{"metadata":{"_cell_guid":"79c7e3d0-c299-4dcb-8224-4455121ee9b0","_uuid":"d629ff2d2480ee46fbb7e2d37f6b5fab8052498a","trusted":true},"cell_type":"code","source":"train = pd.read_csv(\"../input/train.csv\")\nprint(train.shape)\ntrain.head()","execution_count":89,"outputs":[{"output_type":"stream","text":"(42000, 785)\n","name":"stdout"},{"output_type":"execute_result","execution_count":89,"data":{"text/plain":"   label  pixel0  pixel1    ...     pixel781  pixel782  pixel783\n0      1       0       0    ...            0         0         0\n1      0       0       0    ...            0         0         0\n2      1       0       0    ...            0         0         0\n3      4       0       0    ...            0         0         0\n4      0       0       0    ...            0         0         0\n\n[5 rows x 785 columns]","text/html":"<div>\n<style scoped>\n    .dataframe tbody tr th:only-of-type {\n        vertical-align: middle;\n    }\n\n    .dataframe tbody tr th {\n        vertical-align: top;\n    }\n\n    .dataframe thead th {\n        text-align: right;\n    }\n</style>\n<table border=\"1\" class=\"dataframe\">\n  <thead>\n    <tr style=\"text-align: right;\">\n      <th></th>\n      <th>label</th>\n      <th>pixel0</th>\n      <th>pixel1</th>\n      <th>pixel2</th>\n      <th>pixel3</th>\n      <th>pixel4</th>\n      <th>pixel5</th>\n      <th>pixel6</th>\n      <th>pixel7</th>\n      <th>pixel8</th>\n      <th>pixel9</th>\n      <th>pixel10</th>\n      <th>pixel11</th>\n      <th>pixel12</th>\n      <th>pixel13</th>\n      <th>pixel14</th>\n      <th>pixel15</th>\n      <th>pixel16</th>\n      <th>pixel17</th>\n      <th>pixel18</th>\n      <th>pixel19</th>\n      <th>pixel20</th>\n      <th>pixel21</th>\n      <th>pixel22</th>\n      <th>pixel23</th>\n      <th>pixel24</th>\n      <th>pixel25</th>\n      <th>pixel26</th>\n      <th>pixel27</th>\n      <th>pixel28</th>\n      <th>pixel29</th>\n      <th>pixel30</th>\n      <th>pixel31</th>\n      <th>pixel32</th>\n      <th>pixel33</th>\n      <th>pixel34</th>\n      <th>pixel35</th>\n      <th>pixel36</th>\n      <th>pixel37</th>\n      <th>pixel38</th>\n      <th>...</th>\n      <th>pixel744</th>\n      <th>pixel745</th>\n      <th>pixel746</th>\n      <th>pixel747</th>\n      <th>pixel748</th>\n      <th>pixel749</th>\n      <th>pixel750</th>\n      <th>pixel751</th>\n      <th>pixel752</th>\n      <th>pixel753</th>\n      <th>pixel754</th>\n      <th>pixel755</th>\n      <th>pixel756</th>\n      <th>pixel757</th>\n      <th>pixel758</th>\n      <th>pixel759</th>\n      <th>pixel760</th>\n      <th>pixel761</th>\n      <th>pixel762</th>\n      <th>pixel763</th>\n      <th>pixel764</th>\n      <th>pixel765</th>\n      <th>pixel766</th>\n      <th>pixel767</th>\n      <th>pixel768</th>\n      <th>pixel769</th>\n      <th>pixel770</th>\n      <th>pixel771</th>\n      <th>pixel772</th>\n      <th>pixel773</th>\n      <th>pixel774</th>\n      <th>pixel775</th>\n      <th>pixel776</th>\n      <th>pixel777</th>\n      <th>pixel778</th>\n      <th>pixel779</th>\n      <th>pixel780</th>\n      <th>pixel781</th>\n      <th>pixel782</th>\n      <th>pixel783</th>\n    </tr>\n  </thead>\n  <tbody>\n    <tr>\n      <th>0</th>\n      <td>1</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>...</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n    </tr>\n    <tr>\n      <th>1</th>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>...</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n    </tr>\n    <tr>\n      <th>2</th>\n      <td>1</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>...</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n    </tr>\n    <tr>\n      <th>3</th>\n      <td>4</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>...</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n    </tr>\n    <tr>\n      <th>4</th>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>...</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n    </tr>\n  </tbody>\n</table>\n</div>"},"metadata":{}}]},{"metadata":{"trusted":true},"cell_type":"code","source":"test= pd.read_csv(\"../input/test.csv\")\nprint(test.shape)\ntest.head()","execution_count":90,"outputs":[{"output_type":"stream","text":"(28000, 784)\n","name":"stdout"},{"output_type":"execute_result","execution_count":90,"data":{"text/plain":"   pixel0  pixel1  pixel2    ...     pixel781  pixel782  pixel783\n0       0       0       0    ...            0         0         0\n1       0       0       0    ...            0         0         0\n2       0       0       0    ...            0         0         0\n3       0       0       0    ...            0         0         0\n4       0       0       0    ...            0         0         0\n\n[5 rows x 784 columns]","text/html":"<div>\n<style scoped>\n    .dataframe tbody tr th:only-of-type {\n        vertical-align: middle;\n    }\n\n    .dataframe tbody tr th {\n        vertical-align: top;\n    }\n\n    .dataframe thead th {\n        text-align: right;\n    }\n</style>\n<table border=\"1\" class=\"dataframe\">\n  <thead>\n    <tr style=\"text-align: right;\">\n      <th></th>\n      <th>pixel0</th>\n      <th>pixel1</th>\n      <th>pixel2</th>\n      <th>pixel3</th>\n      <th>pixel4</th>\n      <th>pixel5</th>\n      <th>pixel6</th>\n      <th>pixel7</th>\n      <th>pixel8</th>\n      <th>pixel9</th>\n      <th>pixel10</th>\n      <th>pixel11</th>\n      <th>pixel12</th>\n      <th>pixel13</th>\n      <th>pixel14</th>\n      <th>pixel15</th>\n      <th>pixel16</th>\n      <th>pixel17</th>\n      <th>pixel18</th>\n      <th>pixel19</th>\n      <th>pixel20</th>\n      <th>pixel21</th>\n      <th>pixel22</th>\n      <th>pixel23</th>\n      <th>pixel24</th>\n      <th>pixel25</th>\n      <th>pixel26</th>\n      <th>pixel27</th>\n      <th>pixel28</th>\n      <th>pixel29</th>\n      <th>pixel30</th>\n      <th>pixel31</th>\n      <th>pixel32</th>\n      <th>pixel33</th>\n      <th>pixel34</th>\n      <th>pixel35</th>\n      <th>pixel36</th>\n      <th>pixel37</th>\n      <th>pixel38</th>\n      <th>pixel39</th>\n      <th>...</th>\n      <th>pixel744</th>\n      <th>pixel745</th>\n      <th>pixel746</th>\n      <th>pixel747</th>\n      <th>pixel748</th>\n      <th>pixel749</th>\n      <th>pixel750</th>\n      <th>pixel751</th>\n      <th>pixel752</th>\n      <th>pixel753</th>\n      <th>pixel754</th>\n      <th>pixel755</th>\n      <th>pixel756</th>\n      <th>pixel757</th>\n      <th>pixel758</th>\n      <th>pixel759</th>\n      <th>pixel760</th>\n      <th>pixel761</th>\n      <th>pixel762</th>\n      <th>pixel763</th>\n      <th>pixel764</th>\n      <th>pixel765</th>\n      <th>pixel766</th>\n      <th>pixel767</th>\n      <th>pixel768</th>\n      <th>pixel769</th>\n      <th>pixel770</th>\n      <th>pixel771</th>\n      <th>pixel772</th>\n      <th>pixel773</th>\n      <th>pixel774</th>\n      <th>pixel775</th>\n      <th>pixel776</th>\n      <th>pixel777</th>\n      <th>pixel778</th>\n      <th>pixel779</th>\n      <th>pixel780</th>\n      <th>pixel781</th>\n      <th>pixel782</th>\n      <th>pixel783</th>\n    </tr>\n  </thead>\n  <tbody>\n    <tr>\n      <th>0</th>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>...</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n    </tr>\n    <tr>\n      <th>1</th>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>...</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n    </tr>\n    <tr>\n      <th>2</th>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>...</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n    </tr>\n    <tr>\n      <th>3</th>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>...</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n    </tr>\n    <tr>\n      <th>4</th>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>...</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n    </tr>\n  </tbody>\n</table>\n</div>"},"metadata":{}}]},{"metadata":{"trusted":true},"cell_type":"code","source":"X_train = (train.iloc[:,1:].values).astype('float32') # all pixel values\ny_train = train.iloc[:,0].values.astype('int32') # only labels i.e targets digits\nX_test = test.values.astype('float32')","execution_count":91,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"X_train = X_train.reshape(X_train.shape[0], 28, 28)\n\nfor i in range(6, 9):\n    plt.subplot(330 + (i+1))\n    plt.imshow(X_train[i], cmap=plt.get_cmap('gray'))\n    plt.title(y_train[i]);","execution_count":92,"outputs":[{"output_type":"display_data","data":{"text/plain":"<Figure size 432x288 with 3 Axes>","image/png":"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\n"},"metadata":{}}]},{"metadata":{"trusted":true},"cell_type":"code","source":"y_train[:10]","execution_count":93,"outputs":[{"output_type":"execute_result","execution_count":93,"data":{"text/plain":"array([1, 0, 1, 4, 0, 0, 7, 3, 5, 3], dtype=int32)"},"metadata":{}}]},{"metadata":{"trusted":true},"cell_type":"code","source":"from sklearn.model_selection import train_test_split\nX_train, X_val, y_train, y_val = train_test_split(X_train, y_train, test_size=0.1, random_state=42)","execution_count":94,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"X_train.shape","execution_count":95,"outputs":[{"output_type":"execute_result","execution_count":95,"data":{"text/plain":"(37800, 28, 28)"},"metadata":{}}]},{"metadata":{"trusted":true},"cell_type":"code","source":"X_test.shape","execution_count":96,"outputs":[{"output_type":"execute_result","execution_count":96,"data":{"text/plain":"(28000, 784)"},"metadata":{}}]},{"metadata":{"trusted":true},"cell_type":"code","source":"X_val.shape","execution_count":97,"outputs":[{"output_type":"execute_result","execution_count":97,"data":{"text/plain":"(4200, 28, 28)"},"metadata":{}}]},{"metadata":{"trusted":true},"cell_type":"code","source":"#learning_rate_reduction = ReduceLROnPlateau(monitor='val_acc', \n#                                            patience=3,\n#                                            verbose=1, \n#                                            factor=0.5, \n#                                            min_lr=0.00001)","execution_count":98,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"#optimizer = RMSprop(lr=0.001, rho=0.9, epsilon=1e-08, decay=0.0)","execution_count":99,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"import tensorflow as tf\n# class myCallback(tf.keras.callbacks.Callback):\n#     def on_epoch_end(self, epoch, logs={}):\n#         if(logs.get('val_acc')>0.998):\n#             print(\"\\nReached 99.8% accuracy so cancelling training!\")\n#             self.model.stop_training = True\n\n#callbacks = myCallback()\ntraining_images=X_train.reshape(37800, 28, 28, 1)\ntraining_images=training_images / 255.0\ntest_images = X_test.reshape(28000, 28, 28, 1)\ntest_images=test_images/255.0\nval_images = X_val.reshape(4200,28,28,1)\nval_images = val_images/255.0\n\nmodel = tf.keras.models.Sequential([\n  tf.keras.layers.Conv2D(32, (5,5), activation='relu',padding='same', input_shape=(28, 28, 1)),\n  tf.keras.layers.Conv2D(32,(5,5), activation='relu',padding='same'),\n  tf.keras.layers.MaxPooling2D(2, 2),\n  tf.keras.layers.Dropout((0.25)),\n  tf.keras.layers.Conv2D(64, (3,3), activation='relu',padding='same'),\n  tf.keras.layers.Conv2D(64, (3,3), activation='relu',padding='same'),\n  tf.keras.layers.MaxPooling2D(pool_size=(2, 2),strides=(2,2)),\n  tf.keras.layers.Dropout((0.25)),\n  tf.keras.layers.Flatten(),\n  tf.keras.layers.Dense(512, activation='relu'),\n  tf.keras.layers.Dropout((0.5)),\n  tf.keras.layers.Dense(10, activation='softmax')\n])\nmodel.compile(optimizer=tf.keras.optimizers.RMSprop(lr=0.001, rho=0.9, epsilon=1e-08, decay=0.0), loss='sparse_categorical_crossentropy', metrics=['accuracy'])\n#model.fit(training_images, y_train,validation_split=0.2, epochs=15, callbacks=[callbacks])","execution_count":107,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"model.compile(optimizer = tf.keras.optimizers.Adam( epsilon=1e-08), loss='sparse_categorical_crossentropy', metrics=['accuracy'])","execution_count":108,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"train_datagen = ImageDataGenerator(\n        featurewise_center=False,  # set input mean to 0 over the dataset\n        samplewise_center=False,  # set each sample mean to 0\n        featurewise_std_normalization=False,  # divide inputs by std of the dataset\n        samplewise_std_normalization=False,  # divide each input by its std\n        zca_whitening=False,  # apply ZCA whitening\n        rotation_range=10,  # randomly rotate images in the range (degrees, 0 to 180)\n        zoom_range = 0.1, # Randomly zoom image \n        width_shift_range=0.1,  # randomly shift images horizontally (fraction of total width)\n        height_shift_range=0.1,  # randomly shift images vertically (fraction of total height)\n        horizontal_flip=False,  # randomly flip images\n        vertical_flip=False)  # randomly shift images horizontally (fraction of total width)\ntrain_datagen.fit(training_images)","execution_count":109,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"# val_datagen = ImageDataGenerator(\n#       rotation_range=40,\n#       width_shift_range=0.2,\n#       height_shift_range=0.2,\n#       shear_range=0.2,\n#       zoom_range=0.2,\n#       horizontal_flip=True,\n#       fill_mode='nearest')\n# val_datagen.fit(val_images)","execution_count":110,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"history = model.fit_generator(train_datagen.flow(training_images,y_train,batch_size = 86),\n                              epochs=35,\n                              verbose=2,\n                              steps_per_epoch=training_images.shape[0] // 86,\n                              validation_data=(val_images,y_val),\n                              callbacks=[tf.keras.callbacks.ReduceLROnPlateau(monitor='val_acc', \n                                            patience=3,\n                                            verbose=1, \n                                            factor=0.5, \n                                            min_lr=0.00001)])","execution_count":111,"outputs":[{"output_type":"stream","text":"Epoch 1/35\n4200/4200 [==============================] - 0s 93us/sample - loss: 0.0597 - acc: 0.9829\n - 10s - loss: 0.3684 - acc: 0.8793 - val_loss: 0.0596 - val_acc: 0.9829\nEpoch 2/35\n4200/4200 [==============================] - 0s 53us/sample - loss: 0.0403 - acc: 0.9888\n - 9s - loss: 0.1230 - acc: 0.9633 - val_loss: 0.0402 - val_acc: 0.9888\nEpoch 3/35\n4200/4200 [==============================] - 0s 54us/sample - loss: 0.0386 - acc: 0.9874\n - 9s - loss: 0.0889 - acc: 0.9728 - val_loss: 0.0385 - val_acc: 0.9874\nEpoch 4/35\n4200/4200 [==============================] - 0s 49us/sample - loss: 0.0291 - acc: 0.9898\n - 9s - loss: 0.0762 - acc: 0.9766 - val_loss: 0.0291 - val_acc: 0.9898\nEpoch 5/35\n4200/4200 [==============================] - 0s 58us/sample - loss: 0.0308 - acc: 0.9902\n - 9s - loss: 0.0673 - acc: 0.9797 - val_loss: 0.0307 - val_acc: 0.9902\nEpoch 6/35\n4200/4200 [==============================] - 0s 50us/sample - loss: 0.0382 - acc: 0.9879\n - 9s - loss: 0.0596 - acc: 0.9826 - val_loss: 0.0381 - val_acc: 0.9879\nEpoch 7/35\n4200/4200 [==============================] - 0s 59us/sample - loss: 0.0343 - acc: 0.9902\n - 10s - loss: 0.0517 - acc: 0.9835 - val_loss: 0.0342 - val_acc: 0.9902\nEpoch 8/35\n4200/4200 [==============================] - 0s 57us/sample - loss: 0.0249 - acc: 0.9919\n - 9s - loss: 0.0507 - acc: 0.9837 - val_loss: 0.0248 - val_acc: 0.9919\nEpoch 9/35\n4200/4200 [==============================] - 0s 50us/sample - loss: 0.0215 - acc: 0.9919\n - 10s - loss: 0.0482 - acc: 0.9854 - val_loss: 0.0215 - val_acc: 0.9919\nEpoch 10/35\n4200/4200 [==============================] - 0s 50us/sample - loss: 0.0255 - acc: 0.9917\n - 9s - loss: 0.0461 - acc: 0.9861 - val_loss: 0.0255 - val_acc: 0.9917\nEpoch 11/35\n4200/4200 [==============================] - 0s 51us/sample - loss: 0.0326 - acc: 0.9900\n\nEpoch 00011: ReduceLROnPlateau reducing learning rate to 0.0005000000237487257.\n - 10s - loss: 0.0399 - acc: 0.9875 - val_loss: 0.0325 - val_acc: 0.9900\nEpoch 12/35\n4200/4200 [==============================] - 0s 48us/sample - loss: 0.0235 - acc: 0.9933\n - 9s - loss: 0.0336 - acc: 0.9893 - val_loss: 0.0235 - val_acc: 0.9933\nEpoch 13/35\n4200/4200 [==============================] - 0s 55us/sample - loss: 0.0200 - acc: 0.9931\n - 9s - loss: 0.0302 - acc: 0.9908 - val_loss: 0.0199 - val_acc: 0.9931\nEpoch 14/35\n4200/4200 [==============================] - 0s 49us/sample - loss: 0.0226 - acc: 0.9926\n - 9s - loss: 0.0311 - acc: 0.9903 - val_loss: 0.0225 - val_acc: 0.9926\nEpoch 15/35\n4200/4200 [==============================] - 0s 55us/sample - loss: 0.0262 - acc: 0.9921\n\nEpoch 00015: ReduceLROnPlateau reducing learning rate to 0.0002500000118743628.\n - 9s - loss: 0.0267 - acc: 0.9919 - val_loss: 0.0261 - val_acc: 0.9921\nEpoch 16/35\n4200/4200 [==============================] - 0s 51us/sample - loss: 0.0189 - acc: 0.9948\n - 9s - loss: 0.0238 - acc: 0.9927 - val_loss: 0.0189 - val_acc: 0.9948\nEpoch 17/35\n4200/4200 [==============================] - 0s 50us/sample - loss: 0.0206 - acc: 0.9938\n - 10s - loss: 0.0226 - acc: 0.9937 - val_loss: 0.0205 - val_acc: 0.9938\nEpoch 18/35\n4200/4200 [==============================] - 0s 54us/sample - loss: 0.0239 - acc: 0.9933\n - 10s - loss: 0.0222 - acc: 0.9935 - val_loss: 0.0239 - val_acc: 0.9933\nEpoch 19/35\n4200/4200 [==============================] - 0s 52us/sample - loss: 0.0197 - acc: 0.9950\n - 9s - loss: 0.0183 - acc: 0.9944 - val_loss: 0.0197 - val_acc: 0.9950\nEpoch 20/35\n4200/4200 [==============================] - 0s 45us/sample - loss: 0.0221 - acc: 0.9936\n - 9s - loss: 0.0181 - acc: 0.9942 - val_loss: 0.0221 - val_acc: 0.9936\nEpoch 21/35\n4200/4200 [==============================] - 0s 48us/sample - loss: 0.0186 - acc: 0.9948\n - 9s - loss: 0.0213 - acc: 0.9937 - val_loss: 0.0186 - val_acc: 0.9948\nEpoch 22/35\n4200/4200 [==============================] - 0s 53us/sample - loss: 0.0205 - acc: 0.9933\n\nEpoch 00022: ReduceLROnPlateau reducing learning rate to 0.0001250000059371814.\n - 9s - loss: 0.0183 - acc: 0.9942 - val_loss: 0.0206 - val_acc: 0.9933\nEpoch 23/35\n4200/4200 [==============================] - 0s 55us/sample - loss: 0.0234 - acc: 0.9936\n - 9s - loss: 0.0173 - acc: 0.9944 - val_loss: 0.0235 - val_acc: 0.9936\nEpoch 24/35\n4200/4200 [==============================] - 0s 55us/sample - loss: 0.0205 - acc: 0.9943\n - 10s - loss: 0.0165 - acc: 0.9950 - val_loss: 0.0205 - val_acc: 0.9943\nEpoch 25/35\n4200/4200 [==============================] - 0s 54us/sample - loss: 0.0183 - acc: 0.9938\n\nEpoch 00025: ReduceLROnPlateau reducing learning rate to 6.25000029685907e-05.\n - 9s - loss: 0.0151 - acc: 0.9948 - val_loss: 0.0182 - val_acc: 0.9938\nEpoch 26/35\n4200/4200 [==============================] - 0s 51us/sample - loss: 0.0194 - acc: 0.9938\n - 10s - loss: 0.0151 - acc: 0.9951 - val_loss: 0.0194 - val_acc: 0.9938\nEpoch 27/35\n4200/4200 [==============================] - 0s 50us/sample - loss: 0.0186 - acc: 0.9948\n - 9s - loss: 0.0146 - acc: 0.9954 - val_loss: 0.0186 - val_acc: 0.9948\nEpoch 28/35\n4200/4200 [==============================] - 0s 49us/sample - loss: 0.0183 - acc: 0.9945\n\nEpoch 00028: ReduceLROnPlateau reducing learning rate to 3.125000148429535e-05.\n - 9s - loss: 0.0142 - acc: 0.9954 - val_loss: 0.0183 - val_acc: 0.9945\nEpoch 29/35\n4200/4200 [==============================] - 0s 50us/sample - loss: 0.0183 - acc: 0.9950\n - 9s - loss: 0.0144 - acc: 0.9956 - val_loss: 0.0183 - val_acc: 0.9950\nEpoch 30/35\n4200/4200 [==============================] - 0s 55us/sample - loss: 0.0180 - acc: 0.9950\n - 9s - loss: 0.0130 - acc: 0.9958 - val_loss: 0.0180 - val_acc: 0.9950\nEpoch 31/35\n4200/4200 [==============================] - 0s 53us/sample - loss: 0.0179 - acc: 0.9950\n\nEpoch 00031: ReduceLROnPlateau reducing learning rate to 1.5625000742147677e-05.\n - 9s - loss: 0.0135 - acc: 0.9961 - val_loss: 0.0179 - val_acc: 0.9950\nEpoch 32/35\n4200/4200 [==============================] - 0s 48us/sample - loss: 0.0179 - acc: 0.9950\n - 9s - loss: 0.0135 - acc: 0.9960 - val_loss: 0.0178 - val_acc: 0.9950\nEpoch 33/35\n4200/4200 [==============================] - 0s 55us/sample - loss: 0.0179 - acc: 0.9950\n - 9s - loss: 0.0134 - acc: 0.9962 - val_loss: 0.0179 - val_acc: 0.9950\nEpoch 34/35\n4200/4200 [==============================] - 0s 61us/sample - loss: 0.0180 - acc: 0.9950\n\nEpoch 00034: ReduceLROnPlateau reducing learning rate to 1e-05.\n - 9s - loss: 0.0132 - acc: 0.9958 - val_loss: 0.0179 - val_acc: 0.9950\nEpoch 35/35\n4200/4200 [==============================] - 0s 53us/sample - loss: 0.0184 - acc: 0.9952\n - 10s - loss: 0.0115 - acc: 0.9965 - val_loss: 0.0184 - val_acc: 0.9952\n","name":"stdout"}]},{"metadata":{"trusted":true},"cell_type":"code","source":"%matplotlib inline\n\nimport matplotlib.image  as mpimg\nimport matplotlib.pyplot as plt\n\n#-----------------------------------------------------------\n# Retrieve a list of list results on training and test data\n# sets for each training epoch\n#-----------------------------------------------------------\nacc=history.history['acc']\nval_acc=history.history['val_acc']\nloss=history.history['loss']\nval_loss=history.history['val_loss']\n\nepochs=range(len(acc)) # Get number of epochs\n\n#------------------------------------------------\n# Plot training and validation accuracy per epoch\n#------------------------------------------------\nplt.plot(epochs, acc, 'r', \"Training Accuracy\")\nplt.plot(epochs, val_acc, 'b', \"Validation Accuracy\")\nplt.title('Training and validation accuracy')\nplt.figure()\n\n#------------------------------------------------\n# Plot training and validation loss per epoch\n#------------------------------------------------\nplt.plot(epochs, loss, 'r', \"Training Loss\")\nplt.plot(epochs, val_loss, 'b', \"Validation Loss\")\nplt.figure()","execution_count":114,"outputs":[{"output_type":"execute_result","execution_count":114,"data":{"text/plain":"<Figure size 432x288 with 0 Axes>"},"metadata":{}},{"output_type":"display_data","data":{"text/plain":"<Figure size 432x288 with 1 Axes>","image/png":"iVBORw0KGgoAAAANSUhEUgAAAcsAAAEICAYAAAAwft9dAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDMuMC4zLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvnQurowAAHf1JREFUeJzt3XmYZXV95/H3p6q6eqObZhMRhRZhgo6i0VaziCMZorhMjBMlgiZi4hY1kSRGHY1KFBKdGJxoMkTiuIOIC2pMNLhgXGKAZlMENQooomzd9AJ00111v/PHObf7dlFVp7ppqOru9+t5znPOPfcs33uq6n7u73fOrZOqQpIkTW1otguQJGmuMywlSepgWEqS1MGwlCSpg2EpSVIHw1KSpA6GpTQDSYaT3J7kkJ257GxKcniSnf7dsSTHJrlu4PH3kxw9k2V3YF/vTfL6HV1fmqmR2S5AujckuX3g4SLgLmC8ffzSqjpre7ZXVePAXjt72T1BVf3CzthOkhcBz6+qJw1s+0U7Y9tSF8NSu6Wq2hJWbcvlRVX1pamWTzJSVWP3RW1SF38f5x67YbVHSnJqko8l+WiS9cDzk/xykv9IsibJz5O8K8m8dvmRJJVkefv4I+3zn0+yPsm3kjx4e5dtn39qkh8kWZvk3Um+meSkKeqeSY0vTfLDJLcledfAusNJ3plkVZJrgOOmOT5vSHLOhHl/n+T0dvpFSa5uX8+P2lbfVNv6aZIntdOLkny4re27wGMmLPvnSa5pt/vdJL/Rzn8E8HfA0W0X960Dx/aUgfVf1r72VUk+neSgmRyb7TnO/XqSfCnJ6iQ3JnnNwH7e2B6TdUlWJnnAZF3eSb7R/zm3x/Nr7X5WA3+e5IgkF7T7uLU9bnsPrH9o+xpvaZ//2yQL2pofOrDcQUnuTLLfVK9X3QxL7cmeBZwN7A18DBgDXgXsD/wqTZi8dJr1TwTeCOwL/AR46/Yum+R+wLnAn7X7vRZ43DTbmUmNT6MJoV+k+RBwbDv/D4AnA48EHgscP81+Pgo8I8nits4R4Dk0xwvgJuDpwFLgxcC7kxw1zfb63gI8CDisrfMFE57/Qfu69gZOA85OcmBVfQd4JfD1qtqrqvafuOEkT263/2zgYOBnwMTu9qmOzURTHuc2sL4E/BNwEPBfgK+26/1Zu//jgGXAi4CN0x2QAb8CXA0cALwdCHAqcH/gYTTH7I1tDSPAPwM/BJbTHNNzq2ojze/T8we2eyLwr1W1aoZ1aDJV5eCwWw/AdcCxE+adCnylY71XAx9vp0eAApa3jz8C/MPAsr8BXLkDy/4eTQD0nwvwc+CkGb62yWr8pYHnPwW8up3+Gk13dP+5pzVvAVNu+z+AE9vppwLfn2bZzwGvaKePBa4beO6nwJPa6Z8M/iyAlw8uO8l2rwSe3k6/CPjqhOc/ApzSTn8Q+MuB55bSnKd+YNex2c7j/DvAxVMs96N+vRPmHz7xWAPf6P+c29d2TUcNz+7vFzgauBEYnmS5X6X50JX28eXA/9zZf1d72mDLUnuy6wcfJDkyyT+33WrraFopd2vBDLhxYPpOpr+oZ6plHzBYRzXvbj+daiMzrHFG+wJ+PE290LQiT2inT2Rrq5Ikz0hyYdtFuIamxTrdseo7aLoakpyU5Iq2K3ENcOQMtwvN69uyvapaB9xG08rsm9HPrOM4P4gmFCcz3XNdJv4+3j/JuUluaGv4wIQarqvmYrJtVNU3aVrGT0jycOAQmlao7gHDUnuyiV+beA9NS+bwqloKvImmpXdv+jlNyweAJGHbN/eJ7kmNP6d5k+3r+mrLucCxSQ4GnkkblkkWAp8A/go4sKqWAefPsI4bp6ohyWHAGTTdxfu12/3ewHa7vubyM+DQge0tAfYBbphBXRNNd5yvBx4yxXpTPXdHW9OigXn3n7DMxNf3dpqruB/R1nDShBoOTTI8RR0foumK/R2a7tm7plhOM2RYSlstAdYCd7QXSEx3vnJn+Rzw6CT/oz0P9Sqac1b3Ro3nAicnObi92OO10y1cVTfSdBV+gKYL9j/bp+YDo8AtwHiSZwD/fTtqeH2SZWm+h/rKgef2ogmMW2g+N7yYpmXZdxPwwMELbSb4KPD7SY5KMp8mzL9eVVO21Kcx3XH+LHBIklcmmZ9kaZL+eeb3AqcmeUgaj0qyL82HhBtpzpMOJ3kJA8E+TQ13AGuTPIimK7jvW8Aq4C/TXDS1MMmvDjz/YZpu2xNpglP3kGEpbfWnNBecrKdpWXzs3t5hVd0E/DZwOs2b30OAy2haFDu7xjOALwPfAS6maR12OZvmHOSWLtiqWgP8MXAesJrmTflzM6zhzTQt3OuAzzPwRl5V3wbeDVzULvMLwIUD634R+E/gpiSD3an99b9A0116Xrv+IcDzZljXRFMe56paC/w68Fs0Af4D4L+1T/818Gma47wOOBNY0Havvxh4PXArzTnMwdc2mTfTXOy1liagPzlQwxjwDOChNK3Mn9D8HPrPX0fzc76rqv59O1+7JtE/ASxpDmi71X4GPLuqvj7b9WjXleRDNBcNnTLbtewO/KcE0ixLchzNlacbgP8FbKZpXUk7pD3/+0zgEbNdy+7Cblhp9j0BuIbmXN1TgGd5QYZ2VJK/Aq6g+RrNT2a7nt2F3bCSJHWwZSlJUgfPWe4m9t9//1q+fPlslyFJu4xLLrnk1qqa7qtaWxiWu4nly5ezcuXK2S5DknYZSbr+i9UWdsNKktTBsJQkqYNhKUlSB8NSkqQOhqUkSR2mDcskFyR5yoR5Jyc5o2O929vxA5JM+s+ak3w1yYqO7Zw8eEubJP+SZNl062yPJJcnOWdnbU+StHvqall+FHjuhHnPbed3qqqfVdWzu5ec0snAlrCsqqe1dzy4x9rb7gwDRydZvDO2OcV+/HqOJO3iusLyE8DTk4wCJFlOczfyryfZK8mXk1ya5DtJnjlx5STLk1zZTi9Mck6Sq5OcBywcWO6MJCuTfDfJX7Tz/qjd1wVJLmjnXZdk/3b6T5Jc2Q4nD+zv6iT/2G7r/PZGtZM5geaeb+fT/MPhfi2HJ/lSe7f2S5M8pJ3/2vZ1XpHkbe28La3jJPsnua6dPinJZ5N8BfjydMcqye8m+Xa73Q8nWZLk2v49+9p75W15LEm6703b6qmq1UkuAp4KfIamVXluVVWSjTT/8HldG2D/keSzNfU/m/0D4M6qemiSo4BLB557Q7uvYZpwOaqq3pXkT4BjqurWwQ0leQzwQuDxNHcOvzDJvwG3AUcAJ1TVi5OcS3PPuY9MUs9v09yT7kjgD9l6v76zgLdV1XlJFgBDSZ5KE6iPr6o725u5dnk0cFT7ukYmO1bAw4A/B36lqm5Nsm9VrU/yVeDpNPfFey7wqaraPHEH7Q1kXwJwyCFdN73XXFQFa9fCqlWwfj0kzTA0NPX08PDW8Uynk7vvd8OGZt/r1jXjtWuKtavHWXtbj7Vremze2GNexhgdGmNextrpzcxjjFE2MY/NjGR86/6Gs2V6y+ORMLapx4Y7izvvqK3jDXDnhmwZh2LB6DgL5vVYOL8ZLxjddqgMcdf4CHf1RrhrfB6beiPcNTbczBsfZtPYMMNDxYKRsa3D8GYWzmvG/SHVo6qoHvR6UL2iekWvaOaNF+PjMLa5tg5jbB23QyiGh4vhofZYDxXDQ7X1uA8VoZqdQDsumh01Q/WKzeNDbB4Lm8aG2Dw+dLfx5l7Tphmimt8DiqHU1nGKAOO90Ksw3gvjFXrteLw3RK9Cr5rdQ00xZktd20xXu2INLL9Fmnfg/vTAiGJgXSbfRv8Xe8swtM3jAnrj/Z9Rb2C66PWan+GSReOc+uPf2cG/wJmbSRdhvyu2H5a/384PzV26nwj0gIOBA2nuBj6ZJwLvguYmr0m+PfDc8e0b/whwEE2IfPvum9jiCcB5VXUHQJJPAUfT3CD12qq6vF3uEmD5xJXb1uCtVfWTJDcA72sDcDNwcFWd19a5sV3+WOD9VXVnO3/1NLX1fXFguamO1a8BH+9/GBhY/r3Aa2jC8oU0N429m6o6k+bmsqxYsWKn/0f8TZvgJz+B665r/s4XLICFC5vxxGH+/ObNd/365s13/fptp9etg9tvh82bYXx869Drbfu4ChYtgqVLYcmSyceLF8Odd06+j8F93XlnM2zYMPl448aZHYfBv+XJQmx4uDkuCxc2tU+cXrSwx1BvnNtuHWPVLcWqVbDqtrBqzTC3rR9hvHffXGc3zBjD6THMOJtrhDEmdlYE/6nX7mmIcUIb3tttMBDvAxMCeZsPBu0HhiF67QcHOHDTek69D8qayV/GZ4B3Jnk0sKiqLmnnPw84AHhMVW1uuyAXbG8BSR4MvBp4bFXdluQDO7KdAYO3NhpnoLt3wAnAkf1uU2ApTQt0ey/2GWNrV/bEmu8YmN6uY1VV32y7lJ8EDFfVldtZ14xUwS23wDXXNMO11247ff31Wz8U72wTWz79x0kTZHfdgxtUzRvpsWTROIvmj7NoftNSWTjaY9H8MfYe7bFo/3EWjo6xYN44Ge83FcbZptnQH8bHmk+x/U+01U4PtEzGx2HDLfPYMDaPDePzuGV8Pht687mzt4ANtYANLGSMEfbhNvZjFfuxiqPa8X6sYl9Wsx+rWMo6AHpNG4IanU9v3gJqdLQZzxulNzxv6weMXprpXrZ+8OiF8QzTG5nP+Mh8xufN3zo9PEpvZJTx4VGG54W9F2xi70Wb2HvhZpYu3Mzei8e2DEv36jF/Qdg8spBNmc/moflbxs30KJsZZaw3dPcPPWO1zeOReWHhorBocVi4eIhFS4ZZuHiIhUtGWLR0hAV7jVCETXcVGzfCxg3FxruydXpj8wEnFPNHxpk/PMbo8PiW6fnDTet3dGiMHkNsHBth4/i8ZtwfNg+zcfMwGzY3+8pQmt+34aHmzXc4zXikeTwyOtQM84cnHQ8PN38/E197b7wYH9s63K3lNNnv6zwYHZ16PNK+S1fbSO039iZOT9W70PxdDe/4H9Scd69dcrKNzrCsqtvbc4bvY9sLe/YGbm7f/I8BDu3Y1NeAE4GvJHk4cFQ7fylNsKxNciBNl+9X2+fWA0uAW7fdFF8HPtCeOwzwLGBG7fAkQ8DxwCOq6mftvGOAN1bVPyb5aZLfrKpPJ5lPcxHQF4E3JTmr3w3btgKvAx5Dc6Pe6S5kmupYfQU4L8npVbVqYLsAH6LpGn7rTF7Xjuj14EEPalqQfQcdBA9+MBx9NBx2WDO9fHnzR7txI1veuPrTg8PChVO3BpcsaYZ582BofDPcdlszrF599+k1a9h06zrWr9rEuls3sX7NOOvW9JpW44YR7mAxi7iTJaxnKevuNp4/tok2d3bM0FDTfO03o0dHYf5I86411TDYxJ5qevHiZli0qB0fMDC9aGtTtL/PKd5cd0eh+fR4Tz4l9y3ZCdvYceG+bYbpvjLTPpePAuex7ZWxZwH/lOQ7wErgex3bOAN4f5KrgatpukipqiuSXNaufz3wzYF1zgS+kORnVXVMf2ZVXdq2QPt3k39vVV3WXoDU5Wjghn5Qtr4GPCzJQTSh+54kb6Hpln1OVX0hyaOAlUk2Af8CvB54B3Bu24X8z9Psc9JjVVXfTXIa8G9JxoHLgJMG1jmVGV55vCOGh+HMM2H//ZtgXL68ea/eITfdBDfcADff3AzX37x1enBYvRruuGP6be21F6P77MN+y5ax3z77wJHLYJ99YNmyrcP8+U1IzZu37dCfNzIy+LF68v7ToaGt/aVb+kwXNevvQUElqZs3f56jkjwbeGZVzajFvGLFirrP7jqydi2sXAkXXwwXXdQMN9xw9+VGR+HAA+F+92uGAw6A/fZrgm/ffZvxxOlly5qwkqR7WZJLqmra7/v3eTZ/Dkrybpru6KfNdi0A/OAHcP75W8PxewOdCIcfDk98Ijz2sU2fbT8Y73e/pt/VFpqk3YBhOQdV1R/Odg1bXHMNHHVUc8XNgQfC4x8Pz3sePO5xsGJF0yqUpN2cYanpvfGNzbm9q66CI4+0pShpj+Q/UtfULrsMzj4b/viP4aEPNSgl7bEMS03tda9rullf85rZrkSSZpXdsJrcl77UXNRz+umw996zXY0kzSpblrq7Xq9pVR56KLz85bNdjSTNOluWuruPfxwuuQQ+/OHmy/+StIezZaltbdoEr389PPKRcOKJs12NJM0Jtiy1rTPPbL5b+fnPN18ZkSTZstSA9evhLW+BY46BpzxltquRpDnDsNRWf/M3zT273v52v1MpSQMMSzVuugne8Q54znOa//MqSdrCsFTjrW9tbkp52mmzXYkkzTmGpeCHP4T3vAde8hI44ojZrkaS5hzDUvCGNzT3nnzTm2a7EkmakwzLPd3FF8O558Kf/inc//6zXY0kzUmG5Z6sCl77Wth/f3j1q2e7GkmaswzLPdnatXD77c09K5cune1qJGnO8j/47MmWLYMLL4Tx8dmuRJLmNFuWe7oERvzMJEnTMSwlSepgWEqS1MGwlCSpg2EpSVIHw1KSpA6GpSRJHQxLSZI6GJaSJHUwLCVJ6mBYSpLUwbCUJKmDYSlJUgfDUpKkDoalJEkdDEtJkjoYlpIkdTAsJUnqYFhKktTBsJQkqYNhKUlSB8NSkqQOhqUkSR0MS0mSOhiWkiR1MCwlSepgWEqS1MGwlCSpg2EpSVIHw1KSpA6GpSRJHQxLSZI6GJaSJHUwLCVJ6mBYSpLUwbCUJKmDYSlJUgfDUpKkDoalJEkdDEtJkjoYlpIkdTAsJUnqYFhKktTBsJQkqYNhKUlSB8NSkqQOhqUkSR0MS0mSOhiWkiR1MCwlSepgWEqS1MGwlCSpg2EpSVIHw1KSpA6GpSRJHQxLSZI6GJaSJHUwLCVJ6mBYSpLUwbCUJKmDYSlJUgfDUpKkDoalJEkdDEtJkjoYlpIkdTAsJUnqYFhKktTBsJQkqYNhKUlSB8NSkqQOhqUkSR0MS0mSOhiWkiR1MCwlSepgWEqS1MGwlCSpg2EpSVIHw1KSpA6GpSRJHQxLSZI6GJaSJHUwLCVJ6mBYSpLUwbCUJKmDYSlJUgfDUpKkDoalJEkdDEtJkjoYlpIkdTAsJUnqYFhKktTBsJQkqYNhKUlSB8NSkqQOhqUkSR0MS0mSOhiWkiR1MCwlSepgWEqS1MGwlCSpg2EpSVIHw1KSpA6GpSRJHQxLSZI6GJaSJHUwLCVJ6mBYSpLUwbCUJKmDYSlJUgfDUpKkDoalJEkdDEtJkjoYlpIkdTAsJUnqYFhKktTBsJQkqYNhKUlSB8NSkqQOhqUkSR0MS0mSOhiWkiR1MCwlSepgWEqS1MGwlCSpg2EpSVIHw1KSpA6GpSRJHQxLSZI6GJaSJHUwLCVJ6mBYSpLUwbCUJKmDYSlJUgfDUpKkDoalJEkdDEtJkjoYlpIkdTAsJUnqYFhKktTBsJQkqYNhKUlSB8NSkqQOhqUkSR0MS0mSOhiWkiR1MCwlSepgWEqS1MGwlCSpg2EpSVIHw1KSpA6GpSRJHQxLSZI6GJaSJHUwLCVJ6mBYSpLUwbCUJKmDYSlJUgfDUpKkDoalJEkdDEtJkjoYlpIkdTAsJUnqYFhKktTBsJQkqYNhKUlSB8NSkqQOhqUkSR0MS0mSOhiWkiR1uMdhmWS/JJe3w41Jbhh4PDrDbbw/yS90LPOKJM+7p/UObO/AJGNJXrSztilJ2j2N3NMNVNUq4FEASU4Bbq+qdwwukyRAqqo3xTZeOIP9/P09rXWC44FvAScA793J294iyUhVjd1b25ck3fvutW7YJIcnuSrJWcB3gYOSnJlkZZLvJnnTwLLfSPKoJCNJ1iR5W5Irknwryf3aZU5NcvLA8m9LclGS7yf5lXb+4iSfbPf7iXZfj5qixBOAk4HDkhw0UMvTk1za7v/8dt6SJB9M8u12+M1+rQPrPTfJe9vpjyQ5I8lFwF8m+aX2tVyW5JtJjmiXG0nyziRXttt9eZInJ/nEwHafmuTjO+NnIknaMfe4ZdnhSOB3q2olQJLXVdXqJCPABUk+UVVXTVhnb+Dfqup1SU4Hfg942yTbTlU9LslvAG8CjgP+ELixqn4rySOBSycrKslyYN+quqQNouOBv01yf+AM4Oiq+nGSfdtVTgFuqaqj2lbyshm89oOAX6qqXpK9222OJTkOOBX4beAPgAcAj6yq8XZ/a4C/S7Jf22p/IfC+KV7HS4CXABxyyCEzKEmStCPu7Qt8ftQPytYJSS6lCbGHAg+bZJ0NVfX5dvoSYPkU2/7UJMs8ATgHoKquoGnRTua5wMfa6XNoWpkAvwxcUFU/brexup1/LPD37byqqtum2O6gjw90Oy8DPpnkSuAdwH8d2O4/VNV4f3/tOmcBJ7bh+Rjg/Ml2UFVnVtWKqlpxwAEHzKAkSdKOuLdblnf0J9qux1cBj6uqNUk+AiyYZJ1NA9PjTF3jXTNYZionAPsneUH7+AFJDtvObfSADDye+FruGJg+DfjXqvq/SQ4HvtCx7fcBn2ynP9YPU0nS7LgvvzqyFFgPrGvPET7lXtjHN2m6VEnyCCZpuSZ5GDBSVQdX1fKqWg78NU1r89+BY5Ic2i7b74b9IvCKdl6S7NO2AG9LckSSIeBZ09S1N3BDO33SwPwvAi9LMjy4v6q6HrgVeB3wge05AJKkne++DMtLgauA7wEfogm2ne3dwMFJrgLe3O5v7YRlTgDOmzDvk8AJVXUTzXnEzyS5gqY7FOAvgAPbbtTLgaPb+a8F/pUmZH86TV1vB/667YIebI2+B7gR+Ha7v+MHnjsbuLaqfjD9S5Yk3dtSVbNdw07TXjg0UlUb227f84EjdsWvbiT5B+BbVfXBmSy/YsWKWrlyZfeCkiQAklxSVStmsuy9fc7yvrYX8OU2NAO8dBcNysuB24A/mu1aJEm7WVhW1Rqaq0d3aVU11XdDJUmzwP8NK0lSB8NSkqQOu9UFPnuyJLcAP97B1fen+arKrmRXq3lXqxes+b6yq9W8q9ULU9d8aFXN6D+6GJYiycqZXhE2V+xqNe9q9YI131d2tZp3tXph59RsN6wkSR0MS0mSOhiWAjhztgvYAbtazbtavWDN95VdreZdrV7YCTV7zlKSpA62LCVJ6mBYSpLUwbDcgyU5Lsn3k/wwyetmu56ZSHJdku8kuTzJnPzP8Unel+Tm9i41/Xn7Jvlikv9sx/vMZo0TTVHzKUluaI/15UmeNps1DkryoCQXJLkqyXeTvKqdP2eP8zQ1z+XjvCDJRUmuaGv+i3b+g5Nc2L53fCzJ6GzX2jdNzR9Icu3Acd6ufyvqOcs9VHsPzR8Av05ze7GLaW5TdtWsFtYhyXXAiqqas1+KTvJE4HbgQ1X18Hbe/wZWV9Xb2g8m+1TVa2ezzkFT1HwKcHtVvWM2a5tMe0/cg6rq0iRLgEuA36S5X+ycPM7T1Hw8c/c4B1hcVbcnmQd8A3gV8CfAp6rqnPYOSVdU1RmzWWvfNDW/DPhcVX1iR7Zry3LP9Tjgh1V1TVVtAs4BnjnLNe0WquprwOoJs58J9G+39kGaN8k5Y4qa56yq+nlVXdpOrweuBg5mDh/naWqes6pxe/twXjsU8GtAP3Tm2nGequZ7xLDccx0MXD/w+KfM8T/cVgHnJ7kkyUtmu5jtcGBV/bydvhE4cDaL2Q6vTPLttpt2znRpDkqyHPhF4EJ2keM8oWaYw8c5yXB728CbgS8CPwLWDNz+cM69d0ysuar6x/m09ji/M8n87dmmYaldzROq6tHAU4FXtN2Hu5Rqzn3sCuc/zgAeAjwK+DnwN7Nbzt0l2Qv4JHByVa0bfG6uHudJap7Tx7mqxtvbBj6QpkfqyFkuqdPEmpM8HPhfNLU/FtgX2K7uecNyz3UD8KCBxw9s581pVXVDO74ZOI/mj3dXcFN7zqp/7urmWa6nU1Xd1L7p9IB/ZI4d6/Z81CeBs6rqU+3sOX2cJ6t5rh/nvvZ+wRcAvwwsS9K/H/Kcfe8YqPm4thu8quou4P1s53E2LPdcFwNHtFe1jQLPBT47yzVNK8ni9sIIkiwGngxcOf1ac8ZngRe00y8APjOLtcxIP3Raz2IOHev2Io7/B1xdVacPPDVnj/NUNc/x43xAkmXt9EKaCwKvpgmgZ7eLzbXjPFnN3xv4EBWac6zbdZy9GnYP1l6i/n+AYeB9VXXaLJc0rSSH0bQmAUaAs+dizUk+CjyJ5rZANwFvBj4NnAscQnMrteOras5cUDNFzU+i6Ros4DrgpQPnA2dVkicAXwe+A/Ta2a+nOQc4J4/zNDWfwNw9zkfRXMAzTNO4Oreq3tL+LZ5D0515GfD8tsU266ap+SvAAUCAy4GXDVwI1L1dw1KSpOnZDStJUgfDUpKkDoalJEkdDEtJkjoYlpIkdTAsJUnqYFhKktTh/wMW3YqYmQD5ugAAAABJRU5ErkJggg==\n"},"metadata":{}},{"output_type":"display_data","data":{"text/plain":"<Figure size 432x288 with 1 Axes>","image/png":"iVBORw0KGgoAAAANSUhEUgAAAbMAAAD8CAYAAAD9lEqKAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDMuMC4zLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvnQurowAAGWVJREFUeJzt3XuUXWd53/HvMzMaaTSakWRJ2JZtItsytoztEbYwi5YkXBZgSFeBJotC6AqkaYE2kLisLEoDi5Bb4zQkTSErpk4DgXAxXsTUNICBGhNMQsGSb7Il323wRRePbF1G17k8/eM9xzOS56brOa/8/az1rr3PnnP2ebQlnd+87373PpGZSJJUs45WFyBJ0tEyzCRJ1TPMJEnVM8wkSdUzzCRJ1TPMJEnVM8wkSdUzzCRJ1TPMJEnV62p1Ac8XS5cuzRUrVrS6DEmqyrp16wYzc9lMzzPMTpAVK1awdu3aVpchSVWJiJ/M5nkOM0qSqmeYSZKqZ5hJkqpnmEmSqmeYSZKqN22YRcTNEfH6Q7ZdGRFXz/C6ocZyeUR8ZYrnfC8i1sywnysjYv6Ex9+IiEXTvWY2IuJjEfFbR7sfSVJ7mKln9iXgbYdse1tj+4wy88nM/KUjKazhSuDZMMvMN2bm9qPYnyTpJDRTmH0F+IWI6AaIiBXAcuCWiFgQETdFxG0RsT4i3nToiyNiRUTc3VjviYhrI2JjRHwV6JnwvKsjYm1E3BMRv9vY9huN97o5Im5ubHs0IpY21j8QEXc32pUT3m9jRPxVY1/fjogeZmmKffZGxNcj4s7G9n/d2H5VRGyIiLsi4uOzfQ9J0rE37UXTmfl0RPwYeANwA6VXdl1mZkTsA96SmTsbAfP/IuJrmZlT7O4/AHsyc1VEXALcNuFnH268VydwU0RckpmfiIgPAK/KzMGJO4qIy4BfBV4GBPCjiPgH4BngPODtmfnvI+I64BeBz890IKbZ5znAk5n5C43nLYyIJcBbgAsax2LSoc+IeDfwboAXvvCFM5UgSTpCs5kAMnGoceIQYwD/NSLuAv4vcAZw6jT7+TkaoZKZdwF3TfjZWyPiNuB24MXAhTPU9Argq5m5OzOHgOuBn2387JHMvKOxvg5YMcO+ZtrneuC1EfHHEfGzmbkD2AHsA/46Iv4VsGeyHWbmNZm5JjPXLFs2491YJElHaDZhdgPwmoi4FJifmesa298BLAMuy8zVwBZg3uEWEBFnA78FvCYzLwG+fiT7mWD/hPVRjvKWXZl5P3ApJdT+ICI+mpkjwOWUYdh/Adx4NO8hSTo6M4ZZo5dyM/BpDp74sRDYmpnDEfEq4Gdm2NX3gV8GiIiLgEsa2/uB3cCOiDiVMqTZtAvom2RftwBvjoj5EdFLGfK7ZaY/ywwm3WdELKcMj34e+BPg0ohYACzMzG8A/wkYOMr3liQdhdn2Wr4EfJWDZzZ+Afg/EbEeWAvcO8M+rgY+ExEbgY2UIUAy886IuL3x+seAf5zwmmuAGyPiycx8VXNjZt4WEX8D/Lix6X9l5u2NCSqz9ZHmJI/GPs+cYp+vB/4kIsaAYcq5vz7ghoiYRxlu/cBhvK8k6RiLqedr6Fhas2ZNetd8STo8EbEuM6e9Jhm8A4gk6SRgmEmSqmeYSZKqZ5hJkqpnmEmSqmeYSZKqZ5hJkqpnmEmSqmeYSZKqZ5hJkqpnmEmSqmeYSZKqZ5hJkqpnmEmSqmeYSZKqZ5hJkqpnmEmSqmeYSZKqZ5hJkqpnmEmSqmeYSZKqZ5hJkqpnmEmSqmeYSZKqZ5hJkqpnmEmSqmeYSZKqZ5hJkqpnmEmSqmeYSZKqZ5hJkqpnmEmSqmeYSZKqZ5hJkqpnmEmSqmeYSZKqZ5hJkqpnmEmSqmeYSZKqZ5hJkqpnmEmSqmeYSZKqZ5hJkqpnmEmSqmeYSZKqZ5hJkqpnmEmSqmeYSZKqZ5hJkqpnmEmSqmeYSZKqZ5hJkqpnmEmSqmeYSZKqZ5hJkqpnmEmSqmeYSZKqZ5hJkqpnmEmSqmeYSZKqZ5hJkqpnmEmSqmeYSZKqZ5hJkqpnmEmSqmeYSZKqZ5hJkqpnmEmSqmeYSZKqZ5hJkqpnmEmSqmeYSZKqZ5hJkqpnmEmSqmeYSZKqZ5hJkqpnmEmSqmeYSZKqZ5hJkqpnmEmSqmeYSZKqZ5hJkqpnmEmSqmeYSZKqZ5hJkqpnmEmSqmeYSZKqZ5hJkqpnmEmSqmeYSZKqZ5hJkqpnmEmSqmeYSZKqZ5hJkqpnmEmSqmeYSZKqZ5hJkqpnmEmSqmeYSZKqZ5hJkqpnmEmSqmeYSZKqZ5hJkqpnmEmSqmeYSZKqZ5hJkqpnmEmSqmeYSZKqZ5hJkqpnmEmSqmeYSZKqZ5hJkqpnmEmSqmeYSZKqZ5hJkqpnmEmSqmeYSZKqZ5hJkqpnmLW7D38Y/vIvW12FJLU1w6zd3XQTXHddq6uQpLZmmLW7gQG4807IbHUlktS2DLN2t3o1bN8Ojz3W6kokqW0ZZu1uYKAs77yztXVIUhszzNrdxReX5R13tLYOSWpjhlm76+uDlSvtmUnSNAyzGjQngUiSJmWY1WBgAB58EHbtanUlktSWDLMarF5dluvXt7YOSWpThlkNnNEoSdMyzGpw1lmwaJEzGiVpCoZZDSKcBCJJ0zDMarF6dTlnNjra6kokqe0YZrUYGIA9e+Chh1pdiSS1HcOsFs1JIJ43k6TnMMxqceGF0NXleTNJmoRhVot58+CCCwwzSZqEYVaTgQGHGSVpEoZZTVavhieegG3bWl2JJLUVw6wm3glEkiZlmNXEMJOkSRlmNXnBC+C00zxvJkmHMMxqs3q1PTNJOoRhVpuBAdiwAQ4caHUlktQ2DLPaDAzA8DBs3NjqSiSpbRhmtWl+UadDjZL0LMOsNuedV+4GYphJ0rMMs9p0dcFFFzmjUZImMMxq1JzRmNnqSiSpLRhmNRoYKLe0evLJVlciSW3BMKuRdwKRpIMYZjW65JKy9LyZJAGGWZ0WLoSzz7ZnJkkNhlmtBgYMM0lqMMxqNTAA998Pu3e3uhJJajnDrFarV5ep+Xff3epKJKnlDLNaOaNRkp5lmNVqxQro73dGoyRhmNUrwkkgktRgmNVsYADuugvGxlpdiSS1lGFWs4EBGBqCRx5pdSWS1FKGWc2a323meTNJz3OGWc1e/GLo6PC8maTnPcOsZj09cP75hpmk5z3DrHYDAw4zSnreM8xqt3o1/PSn8Mwzra5EklrGMKtd804gd93V2jokqYUMs9p5WytJMsyqd9ppsHw5/MVfwD33tLoaSWoJw6x2EfCFL8COHXD55fDZz7a6Ikk64Qyzk8ErX1lmNF5+ObzrXfBrvwZ79rS6Kkk6YQyzk8Xpp8N3vgMf+Qh85jPwspfBvfe2uipJOiEMs5NJVxf8/u/DjTfC5s2wZg188YutrkqSjjvD7GT0uteVYcdLL4V3vAPe8x7Yu7fVVUnScWOYnazOOAO++1340Ifgmmvg5S8vjw8caHVlknTMGWYns64u+KM/gq9/HR5/HF7zGliyBN78ZvjUp+DRR1tdoSQdE12tLkAnwBvfWILru98t59O++U244Ybys/PPhyuuKO3nf77cvFiSKhOZ2eoanhfWrFmTa9eubXUZRSbcf38JthtvhO99D/btg3nz4LLLSrv00rK84ILSw5OkFoiIdZm5ZsbnGWYnRluF2aH27oXvfx++9S348Y/h9tvHr1Pr6Sm3zJoYcKtWQXd3a2uW9LxgmLWZtg6zQ42Own33wW23wbp1pd1+OwwNlZ93dsJ555UvB53YzjvPkJN0TBlmbeZIw+yjH4Vly+Cd74T+/uNQ2GyNjcEDD5SAu/vuch/Ie+6Bhx4qw5ZQhiObIXfRRXDxxaWdc04JQEk6TIZZmzmSMBsbKxMQv/c9WLCg3Knqfe8rczbaxt69pRfXDLdme/jh8ZDr6YELLzw44C68EBYtgjlzSutwYq2k5zLM2szRDDPeeit88pNw7bUwPFwmHr7//WXZthmwezds2FB6cXffDevXl+WmTZM/v6urhFp39/iyuxv6+mDhwtIt7e+ffL2vr6T9ggXQ2zu+vmABzJ9fbsYsqUqGWZs5FufMtmwp1z9ffXXJhJUrS0/tXe8qn+tVGBwsPbeNG8s5uOHhciF3czlxff/+8pwdO2DnzoOX+/bN7v0iStitWAHnnntwW7kSzjrL2ZpSGzPM2syxnABy4ABcfz184hPwwx+WDshLXlJG8+bPL22y9XPPhZe+FM488/h0VvbtKyOODzxQZvm/4AWlnXrqcbh87cAB2LWrBNvQ0PTtmWfgkUfK+b1HHikh2dTVdXDQrVw5vn7OOV53J7WYYdZmjtdsxrVry808Hn64zKbfu7csJ65P/OyGEi6XX16CrdmWLJn9e+7aVTpWGzeWkcTm8pFHynm+ySxYMB5uzYC76KLy3qtXn8DMGBuDJ54owfbQQ4w9+DCPr3+GJx/cwwWbbmbRzp8e/PwzzhgPuLPPLsUvXVrasmVlecopTnCRjhPDrM20cmr+6GgJtQ0byvm3W28tl5Pdd9/4HI2zzy7BsmDBeAju3fvc9d27YevW8X3PmVMmpKxaVeZ0rFoFL3pRGSncunW8bdly8OMnnoBt28o+urrGg63ZLrro2I7+DQ2V68Tvu698M05zef/9B9+D+dyzR7ns3O1ctuwxLutez6X7f8jix+4q4bd58+Q7j4DFi0uwLVwIIyPjw6TNodOJLaJ8Q/jppz+3LV9elqeeWvY5b96xOwhShQyzNtOO15nt3FkuIWsG3Lp15bO2OSzZ0zP5+ooV4+F1zjlHFjqZJdCa733rraWXuX17+fm8eaXHtnx56TVObKecMr7e319GEZthuWXLc9c3bSrv1dTRUcL7/PNLu+CCki333DN+Wd3E21aec065VnzgxcOc1ruLpZ3bWRrbWDq2laXDm1i0+wk6t20t5wN37CgJP3cudHcz0jWPHSxkJ/3syH52jPWxfU83g5tHGByEp57uZHBoLoMH+hlkKU+xjEGWMkonL+J+Luh4gFXzf8KqhU+yaulTnHf6EN1L+spM0P7+Mkmm8V6TLufMYTQ72L53Ltt2z2Pb0FyeHupm265mm8NYZzenrZjHaef2cuqZczjttHI8+vunH44eHi699J07y7KjY7yjOmfOFC+ImNU/mNHRcii3by9/vxOX27eXXSxeXA7D4sUHr/f2OufnZGKYtZl2DLN2kwkPPjgebnfcUUJp27bSRkZmt5+urvGhzGZ70YvGg2vlyvI5P51t2w6+ZnzdujKMOpmOjvIBvnRp6dk2T+Xt3DnzF37Pm9cYrVwyxrK+/SztGWJp1w5i7x7ue7yXjVsW85Odpzz7/E5GOHfOT1nFRpaPPMa+7GYvPexh/qTLXfTxDIvJKe4p3sEoQTI6yW1a53Xs59T5Q5y2cA9z58Ku/d3s3DeXXfvnsHP/XPYNTx1Ki+YMsbRrO0vjaZaMPcXSkc0sHdlEJ6PsnrOY3d2LGZqziN2d/eyOPnYzn6Gx+ewencfO/XPZuW+Gv6BpdHUli/rH6O+Dvn7o64/S+oK+Pg5qcHAHurk+cVtHR/k3NVXr7Cwtojy3o2Py9WbATgzaQ7dNfO506xNb83WTbT/0fQ7V/PifGAOTbZtKZvnFY3S0jOBPtf7BDx75SMsJC7OIWALc1Hh4GjAKPNV4fHlmzvidIxHxGeCqzLxvmuf8OrA9M79wVAWXff0AeF9m3nG0+5otw+zoZJaQePrp8XDbtq0ExuLFB4fX4sXH5zfzPXtK56vZtm07+PHgYKmxr2/8yoFmO/Rx83Tb/Pkzv+/u3WVYtHme8t57y3LzZujpSeb3JD3zkvlzx+iZO8b8uSP0dI8yf84IC+aNsGThMEv6hlnSf4BTFgyzpO9AaQv2s7DnAAwN8fSjO9j8yD62PD7M5k3J5sEuNm+fy5ahXjbtP4X9zGUhO+hjF/3spJ+dz1kfpZNtHS9gsOcsBruXM9h5KoMsZXBsMYPDCxnct4CxDHq79tPbsY/ejj305m4W5E56R3bSO7yd3iz7XMwzLGL7pMuF7GCELraziGdYzDMsPmi92XbRd3CL/mfXh3LBc47z3NjP3DhAdwzTHcPMjWHmxAhJMEInI3Qxkp2MZFd5nKUNZxdJMJYx5S8Nz3d7d48xb/6RHZuW9Mwi4mPAUGZ+/JDt0XivKaYHnFiGmXQYRkbKicXM8QbPfTx37tGN8WWOz14aHp6+jYyML5tt4uPm5R379k3axvbuZ8/uMWJsjO6OEboYGS/70G7KVF2Oia3ZRRkbI0fHGBvj2eXYaDI2mhBBxnh3LeOQJUEeGCb3H2Bs3wFy3/6yfmC4/IxgjI5n15sNmHTbs38Envv3kQRB+XMeupxq21Q6GX22dTA26fqc3TuI+Uc2y2u2YXbcLrCJiJXA14DbgZcAr42I3wEuBXqAL2fm7zWe+wPgfcDdwCDwKeANwB7gTZm5NSL+ABjMzD9vPP8HwKuBhcCvZuY/RUQv8DlgFbABWAH8u9mEVkT0NN73UmAYuDIzvx8RFwOfBuZQvv/tzZSe53XAcqAT+FhmfuVojpfUtrq6xsfkjqeIEoa9vcf9rTqA5/bNjo2gfCgcM2NjBwdzR0cZ12wuJ7aJY5uzMdUvJtOtT1yOjh48hXqqNu/Ih41n63hfLXoB8CuZuRYgIj6UmU9HRBdwc0R8JTM3HPKahcA/ZOaHIuLPgH8LXDXJviMzL4+Ifwl8FLgCeD+wOTN/MSIGgNsOo9bfAPZn5sUR8WLgGxFxHvAfgY9n5pcjYi7l3+qbgEcz8w2NP1ctlyxLqk1HRzm5ejxmtk52Iu9wnYhfdGbheA/wPtQMsoa3R8RtlJBZBVw4yWv2ZuY3G+vrKL2ryVw/yXNeAVwLkJl3AvccRq2vAD7feO09wJPASuCfgI9ExAeBszJzH3AXcEVEXBUR/zwzd0y2w4h4d0SsjYi1Tz311GRPkSQdA8c7zHY3Vxq9nN8EXp2ZlwA3ApP9qjFxwsgoU/ce98/iOUctM/8WeEvj/W6MiJ/LzI3AGkpYXhURvz3Fa6/JzDWZuWbZsmXHq0RJet47kVNv+oFdwM6IOB14/XF4j38E3grQONc1Wc9vKrcA72i8dhVwOvBgRJyTmQ9m5v8A/h64JCLOoEx0+VvgTynn2SRJLXIi77B6G2VSxr3ATyjBc6x9EvhcRGxovNcGYNIhQOBbETHcWL+Fcm7uf0bEesoEkF/JzAMR8csR8fbGtieBjwH/jNIjG6P0JN97HP4skqRZOqkumm5MLOnKzH2NYc1vA+dl5iwvtz1+nJovSYev5VPzW2QBcFMj1AJ4TzsEmSTp+DqpwiwztwOXtboOSdKJ5b1XJEnVM8wkSdUzzCRJ1TupZjO2s4h4inJJwpFYSrlnZU1qq7m2esGaT5Taaq6tXpi+5p/JzBnvOmGYVSAi1s5mamo7qa3m2uoFaz5Raqu5tnrh2NTsMKMkqXqGmSSpeoZZHa5pdQFHoLaaa6sXrPlEqa3m2uqFY1Cz58wkSdWzZyZJqp5h1sYi4oqIuC8iHoyID7W6ntmIiEcjYn1E3BERbXln5Yj4dERsjYi7J2w7JSK+ExEPNJaLW1njoaao+WMR8UTjWN8REW9sZY0TRcRZEXFzRGyIiHsi4jcb29v2OE9Tczsf53kR8eOIuLNR8+82tp8dET9qfHZ8OSK6W11r0zQ1/01EPDLhOK8+rP06zNieIqITuB94LfA4cCvw9szc0NLCZhARjwJrMrNtr3OJiJ8DhoDPZeZFjW3/DXg6M69q/OKwODP/cyvrnGiKmj9G+V69j7eytsk0vrPw9My8LSL6KN8I/2bgXbTpcZ6m5rfSvsc5gN7MHIqIOcAPKF+C/AHg+sy8NiI+BdyZmVe3stamaWp+L/D3mfmVI9mvPbP2dTnwYGY+nJkHgGuBN7W4ppNCZn4fePqQzW8CPttY/yzlQ6xtTFFz28rMTZl5W2N9F7AROIM2Ps7T1Ny2shhqPJzTaAm8GmiGQrsd56lqPiqGWfs6A3hswuPHafP/WA0JfDsi1kXEu1tdzGE4NTM3NdY3A6e2spjD8L6IuKsxDNk2Q3YTRcQK4CXAj6jkOB9SM7TxcY6Izoi4A9gKfAd4CNg+4euv2u6z49CaM7N5nP+wcZz/e0TMPZx9GmY61l6RmZcCbwB+vTE8VpUsY+81jL9fDZwLrAY2AX/a2nKeKyIWAH8HXJmZOyf+rF2P8yQ1t/VxzszRzFwNnEkZ0bmgxSXN6NCaI+Ii4L9Qan8pcApwWMPPhln7egI4a8LjMxvb2lpmPtFYbgW+SvnPVYMtjXMmzXMnW1tcz4wyc0vjQ2EM+Cva7Fg3zof8HfCFzLy+sbmtj/NkNbf7cW5qfJ/jzcDLgUWNLymGNv7smFDzFY1h3szM/cBnOMzjbJi1r1uB8xqzkrqBtwFfa3FN04qI3saJcyKiF3gdcPf0r2obXwPe2Vh/J3BDC2uZlWYoNLyFNjrWjZP8fw1szMw/m/Cjtj3OU9Xc5sd5WUQsaqz3UCaMbaQExC81ntZux3mymu+d8EtOUM7xHdZxdjZjG2tMAf5zoBP4dGb+YYtLmlZEnEPpjUH5FvMvtmPNEfEl4JWUO3VvAX4H+N/AdcALKd9u8NbMbJsJF1PU/ErK0FcCjwLvmXA+qqUi4hXALcB6YKyx+bcp56Da8jhPU/Pbad/jfAllgkcnpXNyXWb+XuP/4rWU4brbgX/T6PG03DQ1fxdYBgRwB/DeCRNFZt6vYSZJqp3DjJKk6hlmkqTqGWaSpOoZZpKk6hlmkqTqGWaSpOoZZpKk6hlmkqTq/X9XnqjF4i99igAAAABJRU5ErkJggg==\n"},"metadata":{}},{"output_type":"display_data","data":{"text/plain":"<Figure size 432x288 with 0 Axes>"},"metadata":{}}]},{"metadata":{"trusted":true},"cell_type":"code","source":"predictions = model.predict_classes(test_images, verbose=0)\n\nsubmissions=pd.DataFrame({\"ImageId\": list(range(1,len(predictions)+1)),\n                         \"Label\": predictions})\nsubmissions.to_csv(\"DR.csv\", index=False, header=True)","execution_count":112,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"submissions.head()","execution_count":113,"outputs":[{"output_type":"execute_result","execution_count":113,"data":{"text/plain":"   ImageId  Label\n0        1      2\n1        2      0\n2        3      9\n3        4      0\n4        5      3","text/html":"<div>\n<style scoped>\n    .dataframe tbody tr th:only-of-type {\n        vertical-align: middle;\n    }\n\n    .dataframe tbody tr th {\n        vertical-align: top;\n    }\n\n    .dataframe thead th {\n        text-align: right;\n    }\n</style>\n<table border=\"1\" class=\"dataframe\">\n  <thead>\n    <tr style=\"text-align: right;\">\n      <th></th>\n      <th>ImageId</th>\n      <th>Label</th>\n    </tr>\n  </thead>\n  <tbody>\n    <tr>\n      <th>0</th>\n      <td>1</td>\n      <td>2</td>\n    </tr>\n    <tr>\n      <th>1</th>\n      <td>2</td>\n      <td>0</td>\n    </tr>\n    <tr>\n      <th>2</th>\n      <td>3</td>\n      <td>9</td>\n    </tr>\n    <tr>\n      <th>3</th>\n      <td>4</td>\n      <td>0</td>\n    </tr>\n    <tr>\n      <th>4</th>\n      <td>5</td>\n      <td>3</td>\n    </tr>\n  </tbody>\n</table>\n</div>"},"metadata":{}}]},{"metadata":{"trusted":true},"cell_type":"code","source":"","execution_count":null,"outputs":[]}],"metadata":{"kernelspec":{"display_name":"Python 3","language":"python","name":"python3"},"language_info":{"name":"python","version":"3.6.4","mimetype":"text/x-python","codemirror_mode":{"name":"ipython","version":3},"pygments_lexer":"ipython3","nbconvert_exporter":"python","file_extension":".py"}},"nbformat":4,"nbformat_minor":1}