{"cells":[{"metadata":{"_uuid":"8f2839f25d086af736a60e9eeb907d3b93b6e0e5","_cell_guid":"b1076dfc-b9ad-4769-8c92-a6c4dae69d19","trusted":true},"cell_type":"code","source":"import keras\nimport numpy as np \nimport pandas as pd \nfrom keras.datasets import mnist\nfrom keras.models import Sequential\nfrom keras.layers import Dense, Dropout, Flatten\nfrom keras.layers import Conv2D, MaxPool2D","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"train_data= pd.read_csv(\"../input/digit-recognizer/train.csv\")\nX_test= pd.read_csv(\"../input/digit-recognizer/test.csv\")\ntrain_data.shape, X_test.shape","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"y_train= train_data['label'].values\nX_train = train_data.drop(labels=['label'], axis=1)","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"X_train.shape, X_test.shape","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"X_train = X_train.astype('float32')\nX_test = X_test.astype('float32')\n\nnum_classes= 10\ny_train = keras.utils.to_categorical(y_train, num_classes)","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"X_train /= 255\nX_test /= 255","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"X_train = X_train.values.reshape(X_train.shape[0], 28, 28, 1)\nX_test = X_test.values.reshape(X_test.shape[0], 28, 28, 1)\ninput_shape = (28, 28, 1)","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"model = Sequential()\nmodel.add(Conv2D(filters=32, kernel_size=3, activation=\"relu\", padding='same',input_shape=input_shape))\nmodel.add(MaxPool2D())\nmodel.add(Conv2D(filters=64, kernel_size=3, activation=\"relu\", padding='same'))\nmodel.add(MaxPool2D())\nmodel.add(Conv2D(filters=128, kernel_size=3, activation=\"relu\", padding='same'))\nmodel.add(MaxPool2D())\nmodel.add(Flatten())\nmodel.add(Dense(units=256, activation=\"relu\"))\nmodel.add(Dropout(0.3))\nmodel.add(Dense(units=num_classes, activation=\"softmax\"))","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"model.compile(\n    loss=keras.losses.categorical_crossentropy,\n    optimizer=keras.optimizers.Adam(),\n    metrics=['accuracy'])","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"history = model.fit(\n    X_train, y_train,\n    batch_size=128,\n    epochs=20,\n    verbose=1,\n) ","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"preds = model.predict(X_test)","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"results = np.argmax(preds,axis = 1)\nresults = pd.Series(results,name=\"Label\")\nresults","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"output = pd.concat([pd.Series(range(1,28001),name = \"ImageId\"),results],axis = 1)\noutput.to_csv('submission.csv',index=False)","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"output","execution_count":null,"outputs":[]}],"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":4,"nbformat_minor":4}