{"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\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\n\nimport os\nprint(os.listdir(\"../input\"))\n\nbatch_size = 128\nnum_classes = 10\nimg_rows, img_cols = 28, 28\nnp.random.seed(7)\n\ntrain = pd.read_csv('../input/train.csv')\ntest = pd.read_csv('../input/test.csv')\n\nx_train = train.iloc[:,1:785]\ny_train = train.iloc[:,0]\nx_test = test\nx_train = x_train.values\nx_test = x_test.values \n\nx_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)\n\n\nmodel_2 = Sequential([\n    Conv2D(32, (3, 3), activation='relu', input_shape=(img_rows, img_rows, 1)),\n    Conv2D(32, (3, 3), activation='relu'),\n    MaxPooling2D(pool_size=(2, 2)),\n    Dropout(0.25),\n    \n    Conv2D(64, (3, 3), activation='relu'),\n    Conv2D(64, (3, 3), activation='relu'),\n    MaxPooling2D(pool_size=(2, 2)),\n    Dropout(0.25),\n    \n    Flatten(),\n    Dense(256, activation='relu'),\n    Dropout(0.5),\n    Dense(10, activation='softmax'),])\n\nfrom keras.optimizers import RMSprop\nmodel_2.compile(optimizer=RMSprop(lr=0.001),\n                loss='categorical_crossentropy',\n                metrics=['accuracy'])\n\nhistory = model_2.fit(x_train, y_train,\n          batch_size=batch_size,\n          epochs=12,\n          verbose=1,\n          validation_split=0.3)\n\nfig = 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')\n\n\npredictions = model_2.predict_classes(x_test, verbose=0)\nsubmissions = pd.DataFrame({\"ImageId\" : list(range(1, len(predictions)+1)), \"Label\" : predictions.astype(int)})\nsubmissions.to_csv(\"digit_recognizer.csv\", index=False, header=True)","execution_count":null,"outputs":[]},{"metadata":{"_cell_guid":"79c7e3d0-c299-4dcb-8224-4455121ee9b0","collapsed":true,"_uuid":"d629ff2d2480ee46fbb7e2d37f6b5fab8052498a","trusted":false},"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.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}