{"cells":[{"metadata":{"_uuid":"8f2839f25d086af736a60e9eeb907d3b93b6e0e5","_cell_guid":"b1076dfc-b9ad-4769-8c92-a6c4dae69d19","trusted":true},"cell_type":"code","source":"import os\nprint(os.listdir(\"../input\"))","execution_count":null,"outputs":[]},{"metadata":{"_cell_guid":"79c7e3d0-c299-4dcb-8224-4455121ee9b0","_uuid":"d629ff2d2480ee46fbb7e2d37f6b5fab8052498a","trusted":true},"cell_type":"code","source":"import numpy as np\nimport pandas as pd\nimport matplotlib.pyplot as plt\n\nfrom sklearn.model_selection import train_test_split\nimport keras\nfrom keras.utils import to_categorical\nfrom keras.models import Sequential\nfrom keras.layers import Dense, Flatten, Dropout, Conv2D, MaxPooling2D\nfrom keras.optimizers import Adam\nfrom keras.losses import categorical_crossentropy\nfrom keras.callbacks import ReduceLROnPlateau","execution_count":null,"outputs":[]},{"metadata":{"trusted":true,"_uuid":"b7292326ecb49849b150fba18a2ef29c0273e8d4"},"cell_type":"code","source":"batch_size = 128\nnum_classes = 10\nimg_rows, img_cols = 28, 28\nnp.random.seed(11)\n\ntrain = pd.read_csv('../input/train.csv')\ntest = pd.read_csv('../input/test.csv')","execution_count":null,"outputs":[]},{"metadata":{"trusted":true,"_uuid":"9898c6d4a6c5307173dc72dc05e3b2117668c6d5"},"cell_type":"code","source":"x_train = train.iloc[:,1:785]\ny_train = train.iloc[:,0]\nx_test = test\nx_train = x_train.values\nx_test = x_test.values ","execution_count":null,"outputs":[]},{"metadata":{"trusted":true,"_uuid":"4e078346240993141d3d10f14e962447e0e6e373"},"cell_type":"code","source":"x_train = x_train.reshape(x_train.shape[0], img_rows, img_cols, 1)\nx_test = x_test.reshape(x_test.shape[0], img_rows, img_cols, 1)\ninput_shape = (img_rows, img_cols, 1)\nx_train = x_train.astype('float32')\nx_test = x_test.astype('float32')\nx_train /= 255\nx_test /= 255\ny_train = keras.utils.to_categorical(y_train, num_classes)","execution_count":null,"outputs":[]},{"metadata":{"trusted":true,"_uuid":"e4eb63dc44ee6d1ef28ff6a1d73bb8e1f93197eb"},"cell_type":"code","source":"model = Sequential()\nmodel.add(Conv2D(32, kernel_size=(3, 3),\n                 activation='relu',\n                 input_shape=input_shape))\nmodel.add(Conv2D(64, (3, 3), activation='relu'))\n\nmodel.add(MaxPooling2D(pool_size=(2, 2)))\nmodel.add(Dropout(0.25))\nmodel.add(Flatten())\n\nmodel.add(Dense(128, activation='relu')) \nmodel.add(Dropout(0.5))\nmodel.add(Dense(num_classes, activation='softmax'))","execution_count":null,"outputs":[]},{"metadata":{"trusted":true,"_uuid":"4d3927552dcd764964e274a8f3692789a267d93d"},"cell_type":"code","source":"model.compile(loss=keras.losses.categorical_crossentropy,\n              optimizer=keras.optimizers.Adadelta(),\n              metrics=['accuracy'])","execution_count":null,"outputs":[]},{"metadata":{"trusted":true,"_uuid":"dcc142a5e8c032fb94098cdb97af72a6d543443b"},"cell_type":"code","source":"history = model.fit(x_train, y_train,\n          batch_size=batch_size,\n          epochs=12,\n          verbose=1,\n          validation_split=0.001)","execution_count":null,"outputs":[]},{"metadata":{"trusted":true,"_uuid":"1f9b9e6ddd32c20b77feedbd797fe4f9e7753a5b"},"cell_type":"code","source":"fig = plt.figure()\nplt.plot(history.history['acc'])\nplt.plot(history.history['val_acc'])\nplt.title('model accuracy')\nplt.ylabel('accuracy')\nplt.xlabel('epoch')\nplt.legend(['train', 'test'], loc='lower right')","execution_count":null,"outputs":[]},{"metadata":{"trusted":true,"_uuid":"651e23f7556cfd1aa5adb8a1e8b37613d9cb2633"},"cell_type":"code","source":"predictions = model.predict_classes(x_test, verbose=0)\nsubmissions = pd.DataFrame({\"ImageId\" : list(range(1, len(predictions)+1)), \"Label\" : predictions})\nsubmissions.to_csv(\"digit_recognizer.csv\", index=False, header=True)","execution_count":null,"outputs":[]}],"metadata":{"kernelspec":{"display_name":"Python 3","language":"python","name":"python3"},"language_info":{"name":"python","version":"3.6.6","mimetype":"text/x-python","codemirror_mode":{"name":"ipython","version":3},"pygments_lexer":"ipython3","nbconvert_exporter":"python","file_extension":".py"}},"nbformat":4,"nbformat_minor":1}