{"metadata":{"kernelspec":{"language":"python","display_name":"Python 3","name":"python3"},"language_info":{"pygments_lexer":"ipython3","nbconvert_exporter":"python","version":"3.6.4","file_extension":".py","codemirror_mode":{"name":"ipython","version":3},"name":"python","mimetype":"text/x-python"}},"nbformat_minor":4,"nbformat":4,"cells":[{"cell_type":"code","source":"from tensorflow.keras.models import Sequential\nfrom tensorflow.keras.layers import Flatten,Conv2D,MaxPool2D,Dense,ZeroPadding2D\nfrom tensorflow.keras.utils import to_categorical\nfrom sklearn.model_selection import train_test_split\nimport matplotlib.pyplot as plt\nimport numpy as np \nimport pandas as pd \n\n","metadata":{"_uuid":"8f2839f25d086af736a60e9eeb907d3b93b6e0e5","_cell_guid":"b1076dfc-b9ad-4769-8c92-a6c4dae69d19","execution":{"iopub.status.busy":"2022-05-17T19:44:16.213430Z","iopub.execute_input":"2022-05-17T19:44:16.214084Z","iopub.status.idle":"2022-05-17T19:44:22.099996Z","shell.execute_reply.started":"2022-05-17T19:44:16.213955Z","shell.execute_reply":"2022-05-17T19:44:22.099274Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"X_data = pd.read_csv(\"../input/digit-recognizer/train.csv\")\nY_data = X_data.iloc[:,0]\nX_data.drop(\"label\", axis=1, inplace=True)","metadata":{"execution":{"iopub.status.busy":"2022-05-17T19:44:28.409203Z","iopub.execute_input":"2022-05-17T19:44:28.409468Z","iopub.status.idle":"2022-05-17T19:44:31.414139Z","shell.execute_reply.started":"2022-05-17T19:44:28.409438Z","shell.execute_reply":"2022-05-17T19:44:31.413389Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"X_data = X_data / 225\nX_train = X_data.values.reshape(-1,28,28,1)","metadata":{"execution":{"iopub.status.busy":"2022-05-17T19:44:34.363169Z","iopub.execute_input":"2022-05-17T19:44:34.366104Z","iopub.status.idle":"2022-05-17T19:44:34.521592Z","shell.execute_reply.started":"2022-05-17T19:44:34.366048Z","shell.execute_reply":"2022-05-17T19:44:34.520824Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"Y_train = to_categorical(Y_data)","metadata":{"execution":{"iopub.status.busy":"2022-05-17T19:44:38.418794Z","iopub.execute_input":"2022-05-17T19:44:38.419037Z","iopub.status.idle":"2022-05-17T19:44:38.424274Z","shell.execute_reply.started":"2022-05-17T19:44:38.419009Z","shell.execute_reply":"2022-05-17T19:44:38.423559Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"**Final Model:**","metadata":{}},{"cell_type":"code","source":"fm = Sequential([\n    ZeroPadding2D(padding=(1,1),input_shape=(28,28,1)),\n    Conv2D(32,3,activation='relu'),\n    MaxPool2D(pool_size=2,strides=2),\n    ZeroPadding2D(padding=(1,1)),\n    Conv2D(64,3,activation='relu'),\n    MaxPool2D(pool_size=2,strides=2),\n    Flatten(),\n    Dense(128,activation=\"relu\"),\n    Dense(10,activation=\"softmax\")\n])","metadata":{"execution":{"iopub.status.busy":"2022-05-17T19:44:42.158063Z","iopub.execute_input":"2022-05-17T19:44:42.158601Z","iopub.status.idle":"2022-05-17T19:44:44.844637Z","shell.execute_reply.started":"2022-05-17T19:44:42.158563Z","shell.execute_reply":"2022-05-17T19:44:44.843888Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"fm.compile(\"adam\",loss=\"categorical_crossentropy\",metrics=[\"accuracy\"])\n","metadata":{"execution":{"iopub.status.busy":"2022-05-17T19:44:59.837207Z","iopub.execute_input":"2022-05-17T19:44:59.837464Z","iopub.status.idle":"2022-05-17T19:44:59.851789Z","shell.execute_reply.started":"2022-05-17T19:44:59.837435Z","shell.execute_reply":"2022-05-17T19:44:59.850987Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"history = fm.fit(X_train,Y_train,epochs=10,batch_size=256)","metadata":{"execution":{"iopub.status.busy":"2022-05-17T19:45:08.951352Z","iopub.execute_input":"2022-05-17T19:45:08.951911Z","iopub.status.idle":"2022-05-17T19:45:24.947248Z","shell.execute_reply.started":"2022-05-17T19:45:08.951867Z","shell.execute_reply":"2022-05-17T19:45:24.946537Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"testdf = pd.read_csv(\"../input/digit-recognizer/test.csv\")\ntest = testdf / 255\ntest = test.values.reshape(-1,28,28,1)\nX_prediction = fm.predict(test)\npred = pd.Series([np.argmax(i) for i in X_prediction], name='Label')\npred.head()\n\nindex_list = []\n\nfor i, item in enumerate(pred):\n    index_list.append(i+1)\n    \nimage_id = pd.Series(index_list, name='ImageId')\n\nsubmit = pd.concat([image_id, pred], axis=1)\n\nsubmit.to_csv('submission.csv', index=False)\n\nsubmit.tail()","metadata":{"execution":{"iopub.status.busy":"2022-05-17T19:50:14.238184Z","iopub.execute_input":"2022-05-17T19:50:14.238445Z","iopub.status.idle":"2022-05-17T19:50:17.076867Z","shell.execute_reply.started":"2022-05-17T19:50:14.238415Z","shell.execute_reply":"2022-05-17T19:50:17.076164Z"},"trusted":true},"execution_count":null,"outputs":[]}]}