{"cells":[{"metadata":{"_uuid":"8f2839f25d086af736a60e9eeb907d3b93b6e0e5","_cell_guid":"b1076dfc-b9ad-4769-8c92-a6c4dae69d19","trusted":true},"cell_type":"code","source":"import numpy as np \nimport pandas as pd \nimport matplotlib.pyplot as plt\n%matplotlib inline\n\nfrom keras.models import Sequential\nfrom keras.layers import Dense , Dropout , 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\n\n\nimport warnings \nwarnings.filterwarnings('ignore')","execution_count":31,"outputs":[]},{"metadata":{"_cell_guid":"79c7e3d0-c299-4dcb-8224-4455121ee9b0","_uuid":"d629ff2d2480ee46fbb7e2d37f6b5fab8052498a","trusted":true},"cell_type":"code","source":"from subprocess import check_output\nprint(check_output([\"ls\", \"../input\"]).decode(\"utf8\"))","execution_count":32,"outputs":[{"output_type":"stream","text":"sample_submission.csv\ntest.csv\ntrain.csv\n\n","name":"stdout"}]},{"metadata":{"trusted":true},"cell_type":"code","source":"train = pd.read_csv(\"../input/train.csv\")\nprint(train.shape)\ntrain.head()","execution_count":33,"outputs":[{"output_type":"stream","text":"(42000, 785)\n","name":"stdout"},{"output_type":"execute_result","execution_count":33,"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()\n","execution_count":34,"outputs":[{"output_type":"stream","text":"(28000, 784)\n","name":"stdout"},{"output_type":"execute_result","execution_count":34,"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":35,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"X_train","execution_count":36,"outputs":[{"output_type":"execute_result","execution_count":36,"data":{"text/plain":"array([[0., 0., 0., ..., 0., 0., 0.],\n       [0., 0., 0., ..., 0., 0., 0.],\n       [0., 0., 0., ..., 0., 0., 0.],\n       ...,\n       [0., 0., 0., ..., 0., 0., 0.],\n       [0., 0., 0., ..., 0., 0., 0.],\n       [0., 0., 0., ..., 0., 0., 0.]], dtype=float32)"},"metadata":{}}]},{"metadata":{"trusted":true},"cell_type":"code","source":"y_train","execution_count":37,"outputs":[{"output_type":"execute_result","execution_count":37,"data":{"text/plain":"array([1, 0, 1, ..., 7, 6, 9], dtype=int32)"},"metadata":{}}]},{"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":38,"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":"X_train = X_train.reshape(X_train.shape[0], 28, 28,1)\nX_train.shape","execution_count":39,"outputs":[{"output_type":"execute_result","execution_count":39,"data":{"text/plain":"(42000, 28, 28, 1)"},"metadata":{}}]},{"metadata":{"trusted":true},"cell_type":"code","source":"X_test = X_test.reshape(X_test.shape[0], 28, 28,1)\nX_test.shape\n","execution_count":40,"outputs":[{"output_type":"execute_result","execution_count":40,"data":{"text/plain":"(28000, 28, 28, 1)"},"metadata":{}}]},{"metadata":{"trusted":true},"cell_type":"code","source":"mean_px = X_train.mean().astype(np.float32)\nstd_px = X_train.std().astype(np.float32)\n\ndef standardize(x): \n    return (x-mean_px)/std_px","execution_count":41,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"from keras.utils.np_utils import to_categorical\ny_train= to_categorical(y_train)\nnum_classes = y_train.shape[1]\nnum_classes\n","execution_count":42,"outputs":[{"output_type":"execute_result","execution_count":42,"data":{"text/plain":"10"},"metadata":{}}]},{"metadata":{"trusted":true},"cell_type":"code","source":"plt.title(y_train[9])\nplt.plot(y_train[9])\nplt.xticks(range(10));","execution_count":43,"outputs":[{"output_type":"display_data","data":{"text/plain":"<Figure size 432x288 with 1 Axes>","image/png":"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\n"},"metadata":{}}]},{"metadata":{"trusted":true},"cell_type":"code","source":"# fix random seed for reproducibility\nseed = 43\nnp.random.seed(seed)","execution_count":44,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"from keras.models import  Sequential\nfrom keras.layers.core import  Lambda , Dense, Flatten, Dropout\nfrom keras.callbacks import EarlyStopping\nfrom keras.layers import BatchNormalization, Convolution2D , MaxPooling2D","execution_count":45,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"model= Sequential()\nmodel.add(Lambda(standardize,input_shape=(28,28,1)))\nmodel.add(Flatten())\nmodel.add(Dense(10, activation='softmax'))\nprint(\"input shape \",model.input_shape)\nprint(\"output shape \",model.output_shape)","execution_count":46,"outputs":[{"output_type":"stream","text":"input shape  (None, 28, 28, 1)\noutput shape  (None, 10)\n","name":"stdout"}]},{"metadata":{"trusted":true},"cell_type":"code","source":"from keras.optimizers import RMSprop\nmodel.compile(optimizer=RMSprop(lr=0.001),loss='categorical_crossentropy',metrics=['accuracy'])","execution_count":47,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"from keras.preprocessing import image\ngen = image.ImageDataGenerator()","execution_count":48,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"from sklearn.model_selection import train_test_split\nX = X_train\ny = y_train\nX_train, X_val, y_train, y_val = train_test_split(X_train, y_train, test_size=0.10, random_state=42)\nbatches = gen.flow(X_train, y_train, batch_size=64)\nval_batches=gen.flow(X_val, y_val, batch_size=64)","execution_count":49,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"history=model.fit_generator(generator=batches, steps_per_epoch=batches.n, epochs=3, \n                    validation_data=val_batches, validation_steps=val_batches.n)","execution_count":50,"outputs":[{"output_type":"stream","text":"Epoch 1/3\n37800/37800 [==============================] - 112s 3ms/step - loss: 0.2400 - acc: 0.9342 - val_loss: 0.3307 - val_acc: 0.9110\nEpoch 2/3\n37800/37800 [==============================] - 116s 3ms/step - loss: 0.2157 - acc: 0.9417 - val_loss: 0.3473 - val_acc: 0.9126\nEpoch 3/3\n37800/37800 [==============================] - 113s 3ms/step - loss: 0.2098 - acc: 0.9437 - val_loss: 0.3753 - val_acc: 0.9081\n","name":"stdout"}]},{"metadata":{"trusted":true},"cell_type":"code","source":"history_dict = history.history\nhistory_dict.keys()","execution_count":51,"outputs":[{"output_type":"execute_result","execution_count":51,"data":{"text/plain":"dict_keys(['val_loss', 'val_acc', 'loss', 'acc'])"},"metadata":{}}]},{"metadata":{"trusted":true},"cell_type":"code","source":"import matplotlib.pyplot as plt\n%matplotlib inline\nloss_values = history_dict['loss']\nval_loss_values = history_dict['val_loss']\nepochs = range(1, len(loss_values) + 1)\n\n# \"bo\" is for \"blue dot\"\nplt.plot(epochs, loss_values, 'bo')\n# b+ is for \"blue crosses\"\nplt.plot(epochs, val_loss_values, 'b+')\nplt.xlabel('Epochs')\nplt.ylabel('Loss')\n\nplt.show()","execution_count":52,"outputs":[{"output_type":"display_data","data":{"text/plain":"<Figure size 432x288 with 1 Axes>","image/png":"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\n"},"metadata":{}}]},{"metadata":{"trusted":true},"cell_type":"code","source":"plt.clf()   # clear figure\nacc_values = history_dict['acc']\nval_acc_values = history_dict['val_acc']\n\nplt.plot(epochs, acc_values, 'bo')\nplt.plot(epochs, val_acc_values, 'b+')\nplt.xlabel('Epochs')\nplt.ylabel('Accuracy')\n\nplt.show()","execution_count":53,"outputs":[{"output_type":"display_data","data":{"text/plain":"<Figure size 432x288 with 1 Axes>","image/png":"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\n"},"metadata":{}}]},{"metadata":{},"cell_type":"markdown","source":"# Fully Connected Model "},{"metadata":{"trusted":true},"cell_type":"code","source":"def get_fc_model():\n    model = Sequential([\n        Lambda(standardize, input_shape=(28,28,1)),\n        Flatten(),\n        Dense(512, activation='relu'),\n        Dense(10, activation='softmax')\n        ])\n    model.compile(optimizer='Adam', loss='categorical_crossentropy',\n                  metrics=['accuracy'])\n    return model","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"fc = get_fc_model()\nfc.optimizer.lr=0.01","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"history=fc.fit_generator(generator=batches, steps_per_epoch=batches.n, epochs=1, \n                    validation_data=val_batches, validation_steps=val_batches.n)","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"# Convolutional Neural Network "},{"metadata":{},"cell_type":"markdown","source":"## Convolutional neural networks are highly effective for dealing with images"},{"metadata":{"trusted":true},"cell_type":"code","source":"from keras.layers import Convolution2D, MaxPooling2D","execution_count":54,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"def get_cnn_model():\n    model = Sequential([\n        Lambda(standardize, input_shape=(28,28,1)),\n        Convolution2D(32,(3,3), activation='relu'),\n        Convolution2D(32,(3,3), activation='relu'),\n        MaxPooling2D(),\n        Convolution2D(64,(3,3), activation='relu'),\n        Convolution2D(64,(3,3), activation='relu'),\n        MaxPooling2D(),\n        Flatten(),\n        Dense(512, activation='relu'),\n        Dense(10, activation='softmax')\n        ])\n    model.compile(Adam(), loss='categorical_crossentropy',\n                  metrics=['accuracy'])\n    return model","execution_count":55,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"model= get_cnn_model()\nmodel.optimizer.lr=0.01","execution_count":56,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"history=model.fit_generator(generator=batches, steps_per_epoch=batches.n, epochs=1, \n                    validation_data=val_batches, validation_steps=val_batches.n)","execution_count":null,"outputs":[{"output_type":"stream","text":"Epoch 1/1\n17564/37800 [============>.................] - ETA: 35:19 - loss: 0.0684 - acc: 0.9804","name":"stdout"}]},{"metadata":{},"cell_type":"markdown","source":"# Data Augmentation techniques --> \n1. cropping \n2. Rotating \n3. Scale \n4. Translate \n5. Flip \n6. Adding Gausian Noise to input images \n"},{"metadata":{"trusted":true},"cell_type":"code","source":"gen =ImageDataGenerator(rotation_range=8, width_shift_range=0.08, shear_range=0.3,\n                               height_shift_range=0.08, zoom_range=0.08)\nbatches = gen.flow(X_train, y_train, batch_size=64)\nval_batches = gen.flow(X_val, y_val, batch_size=64)","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"model.optimizer.lr=0.001\nhistory=model.fit_generator(generator=batches, steps_per_epoch=batches.n, epochs=1, \n                    validation_data=val_batches, validation_steps=val_batches.n)","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"from keras.layers.normalization import BatchNormalization\n\ndef get_bn_model():\n    model = Sequential([\n        Lambda(standardize, input_shape=(28,28,1)),\n        Convolution2D(32,(3,3), activation='relu'),\n        BatchNormalization(axis=1),\n        Convolution2D(32,(3,3), activation='relu'),\n        MaxPooling2D(),\n        BatchNormalization(axis=1),\n        Convolution2D(64,(3,3), activation='relu'),\n        BatchNormalization(axis=1),\n        Convolution2D(64,(3,3), activation='relu'),\n        MaxPooling2D(),\n        Flatten(),\n        BatchNormalization(),\n        Dense(512, activation='relu'),\n        BatchNormalization(),\n        Dense(10, activation='softmax')\n        ])\n    model.compile(Adam(), loss='categorical_crossentropy', metrics=['accuracy'])\n    return model","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"model= get_bn_model()\nmodel.optimizer.lr=0.01\nhistory=model.fit_generator(generator=batches, steps_per_epoch=batches.n, epochs=1, \n                    validation_data=val_batches, validation_steps=val_batches.n)","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"model.optimizer.lr=0.01\ngen = image.ImageDataGenerator()\nbatches = gen.flow(X, y, batch_size=64)\nhistory=model.fit_generator(generator=batches, steps_per_epoch=batches.n, epochs=3)","execution_count":null,"outputs":[]},{"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}