{"cells":[{"metadata":{"_uuid":"8f2839f25d086af736a60e9eeb907d3b93b6e0e5","_cell_guid":"b1076dfc-b9ad-4769-8c92-a6c4dae69d19","trusted":true},"cell_type":"code","source":"# This Python 3 environment comes with many helpful analytics libraries installed\n# It is defined by the kaggle/python docker image: https://github.com/kaggle/docker-python\n# For example, here's several helpful packages to load in \n\nimport numpy as np # linear algebra\nimport pandas as pd # data processing, CSV file I/O (e.g. pd.read_csv)\n\n# Input data files are available in the \"../input/\" directory.\n# For example, running this (by clicking run or pressing Shift+Enter) will list the files in the input directory\n\nimport os\nprint(os.listdir(\"../input\"))\n\n# Any results you write to the current directory are saved as output.","execution_count":1,"outputs":[{"output_type":"stream","text":"['sample_submission.csv', 'test.csv', 'train.csv']\n","name":"stdout"}]},{"metadata":{"_cell_guid":"79c7e3d0-c299-4dcb-8224-4455121ee9b0","_uuid":"d629ff2d2480ee46fbb7e2d37f6b5fab8052498a","trusted":true},"cell_type":"code","source":"# import some library to use\nfrom tensorflow import keras   # keras for DL\nimport matplotlib.pyplot as plt  # for data visualization\n\nimport sklearn\nfrom sklearn.model_selection import train_test_split\n","execution_count":3,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"# read data\ntrain = pd.read_csv('../input/train.csv')\ntest = pd.read_csv('../input/test.csv')\n","execution_count":4,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"# review the data\nY = train['label']\nX = train.drop(axis=1,columns='label')\nX = X.values.reshape(-1,28,28,1) # convert to ndarray\nY = Y.values\ntest = test.values.reshape(-1,28,28,1)\nX.shape","execution_count":5,"outputs":[{"output_type":"execute_result","execution_count":5,"data":{"text/plain":"(42000, 28, 28, 1)"},"metadata":{}}]},{"metadata":{"trusted":true},"cell_type":"code","source":"#display some data\nplt.figure(figsize=(10,15))\nfor i in range(25):\n    plt.subplot(5,5,i+1)\n    plt.imshow(X[i,:,:,0])\n    plt.title(Y[i])\n    plt.grid(False)\n    \nplt.show()\n","execution_count":6,"outputs":[{"output_type":"display_data","data":{"text/plain":"<Figure size 720x1080 with 25 Axes>","image/png":"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\n"},"metadata":{}}]},{"metadata":{"trusted":true},"cell_type":"code","source":"# normialize the data\n# X= X/255\nY=keras.utils.to_categorical(Y,num_classes=10)# change label from value to one-hot vector\n# Split data\n# Y.shape\n\n# X_train,X_val, Y_train, Y_val = train_test_split(X,Y,test_size = 0.2, random_state = 5)\n# Y_train[:5]","execution_count":7,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"def mlp_model():\n    # Build model for the first time, use MLP model\n    model = keras.Sequential()\n    # Dense(1024) is a full connected layer with 1024 hidden units. If it is the first layers, it should use input_dim as a shape of input\n\n    model.add(keras.layers.Flatten(input_shape=(28,28,1)))\n    model.add(keras.layers.Dense(units=1024, activation='relu'))\n    model.add(keras.layers.Dropout(rate=0.2))\n\n    model.add(keras.layers.Dense(units=1024,activation='relu'))\n    model.add(keras.layers.Dropout(0.2))\n    # use a softmax layers to classification with 10 classs (0-9 digit)\n\n    model.add(keras.layers.Dense(units=10,activation='softmax'))\n\n    # compile the model with loss function, optimizer algorithm\n    model.compile(loss='categorical_crossentropy',optimizer='adam',metrics=['accuracy'])\n\n    return model\n\n","execution_count":8,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"def cnn_model():\n    model= keras.Sequential()\n#     model.add(keras.layers.InputLayer(input_shape=(28,28,1)))\n    model.add(keras.layers.Conv2D(filters=16,kernel_size=(3,3),\n                                  activation='relu',padding ='SAME',input_shape=(28,28,1)))\n    model.add(keras.layers.Conv2D(filters=16,kernel_size=(3,3),\n                                  activation='relu',padding='same'))\n    model.add(keras.layers.MaxPool2D(pool_size=(2,2),padding='SAME'))\n    model.add(keras.layers.Dropout(0.2))\n    \n    model.add(keras.layers.Conv2D(filters=32,kernel_size=(3,3),\n                                  activation='relu',padding='same'))\n    model.add(keras.layers.Conv2D(filters=32,kernel_size=(3,3),\n                                  activation='relu',padding='same'))\n    model.add(keras.layers.MaxPool2D(pool_size=(2,2),padding='SAME'))\n    model.add(keras.layers.Dropout(0.2))\n    \n    model.add(keras.layers.Flatten())\n    model.add(keras.layers.Dense(512,activation='relu'))\n    model.add(keras.layers.Dropout(0.2))\n    model.add(keras.layers.Dense(units=10,activation='softmax'))\n    \n    model.compile(loss='categorical_crossentropy', optimizer='adam',\n                  metrics=['accuracy'])\n    return model","execution_count":9,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"# model = mlp_model()\nmodel_cnn = cnn_model()\n# model_cnn.summary()\n# train the model\n# history_mlp = model.fit(X_train,Y_train,epochs=20,validation_data=(X_val,Y_val))\n\n\n","execution_count":10,"outputs":[{"output_type":"stream","text":"WARNING:tensorflow:From /opt/conda/lib/python3.6/site-packages/tensorflow/python/ops/resource_variable_ops.py:435: colocate_with (from tensorflow.python.framework.ops) is deprecated and will be removed in a future version.\nInstructions for updating:\nColocations handled automatically by placer.\nWARNING:tensorflow:From /opt/conda/lib/python3.6/site-packages/tensorflow/python/keras/layers/core.py:143: calling dropout (from tensorflow.python.ops.nn_ops) with keep_prob is deprecated and will be removed in a future version.\nInstructions for updating:\nPlease use `rate` instead of `keep_prob`. Rate should be set to `rate = 1 - keep_prob`.\n","name":"stdout"}]},{"metadata":{"trusted":true},"cell_type":"code","source":"#data augmentation\n# rescale data to [0,1]\n# split data to validation\n# rotation and zoom\n\ndatagen = keras.preprocessing.image.ImageDataGenerator(rescale=1./255, validation_split=0.2, rotation_range= 20, zoom_range=0.2)\nbatch_size = 32\ntrain_generator = datagen.flow(X,Y,subset='training')\nvalid_generator = datagen.flow(X,Y,subset='validation')\n\n# history_cnn =model_cnn.fit(X_train,Y_train,epochs=20,validation_data=(X_val,Y_val))\nhistory_cnn = model_cnn.fit_generator(train_generator,epochs=20,steps_per_epoch=len(X)/batch_size, validation_data=valid_generator, validation_steps=len(X)/batch_size)\n\n# model_mlp = mlp_model()\n# history_mlp = model_mlp.fit(X_train,Y_train,epochs=20,validation_data=(X_val,Y_val))","execution_count":11,"outputs":[{"output_type":"stream","text":"WARNING:tensorflow:From /opt/conda/lib/python3.6/site-packages/tensorflow/python/ops/math_ops.py:3066: to_int32 (from tensorflow.python.ops.math_ops) is deprecated and will be removed in a future version.\nInstructions for updating:\nUse tf.cast instead.\nEpoch 1/20\n263/263 [==============================] - 2s 9ms/step - loss: 0.0954 - acc: 0.9704\n1050/1050 [==============================] - 15s 15ms/step - loss: 0.2635 - acc: 0.9157 - val_loss: 0.0954 - val_acc: 0.9704\nEpoch 2/20\n263/263 [==============================] - 3s 10ms/step - loss: 0.0645 - acc: 0.9798\n1050/1050 [==============================] - 15s 14ms/step - loss: 0.0961 - acc: 0.9700 - val_loss: 0.0645 - val_acc: 0.9798\nEpoch 3/20\n263/263 [==============================] - 2s 9ms/step - loss: 0.0525 - acc: 0.9825\n1050/1050 [==============================] - 14s 13ms/step - loss: 0.0761 - acc: 0.9757 - val_loss: 0.0525 - val_acc: 0.9825\nEpoch 4/20\n263/263 [==============================] - 2s 9ms/step - loss: 0.0528 - acc: 0.9838\n1050/1050 [==============================] - 14s 13ms/step - loss: 0.0647 - acc: 0.9801 - val_loss: 0.0528 - val_acc: 0.9838\nEpoch 5/20\n263/263 [==============================] - 3s 10ms/step - loss: 0.0447 - acc: 0.9857\n1050/1050 [==============================] - 14s 13ms/step - loss: 0.0580 - acc: 0.9820 - val_loss: 0.0447 - val_acc: 0.9857\nEpoch 6/20\n263/263 [==============================] - 2s 9ms/step - loss: 0.0511 - acc: 0.9839\n1050/1050 [==============================] - 15s 14ms/step - loss: 0.0513 - acc: 0.9834 - val_loss: 0.0511 - val_acc: 0.9839\nEpoch 7/20\n263/263 [==============================] - 2s 9ms/step - loss: 0.0515 - acc: 0.9832\n1050/1050 [==============================] - 14s 13ms/step - loss: 0.0511 - acc: 0.9848 - val_loss: 0.0515 - val_acc: 0.9832\nEpoch 8/20\n263/263 [==============================] - 2s 9ms/step - loss: 0.0494 - acc: 0.9849\n1050/1050 [==============================] - 14s 13ms/step - loss: 0.0471 - acc: 0.9853 - val_loss: 0.0494 - val_acc: 0.9849\nEpoch 9/20\n263/263 [==============================] - 2s 9ms/step - loss: 0.0383 - acc: 0.9874\n1050/1050 [==============================] - 14s 13ms/step - loss: 0.0426 - acc: 0.9866 - val_loss: 0.0383 - val_acc: 0.9874\nEpoch 10/20\n263/263 [==============================] - 2s 9ms/step - loss: 0.0377 - acc: 0.9885\n1050/1050 [==============================] - 14s 13ms/step - loss: 0.0412 - acc: 0.9873 - val_loss: 0.0377 - val_acc: 0.9885\nEpoch 11/20\n263/263 [==============================] - 3s 10ms/step - loss: 0.0374 - acc: 0.9879\n1050/1050 [==============================] - 15s 14ms/step - loss: 0.0387 - acc: 0.9879 - val_loss: 0.0374 - val_acc: 0.9879\nEpoch 12/20\n263/263 [==============================] - 2s 9ms/step - loss: 0.0463 - acc: 0.9875\n1050/1050 [==============================] - 14s 14ms/step - loss: 0.0361 - acc: 0.9886 - val_loss: 0.0463 - val_acc: 0.9875\nEpoch 13/20\n263/263 [==============================] - 2s 9ms/step - loss: 0.0349 - acc: 0.9893\n1050/1050 [==============================] - 14s 13ms/step - loss: 0.0365 - acc: 0.9884 - val_loss: 0.0349 - val_acc: 0.9893\nEpoch 14/20\n263/263 [==============================] - 2s 9ms/step - loss: 0.0348 - acc: 0.9889\n1050/1050 [==============================] - 14s 13ms/step - loss: 0.0348 - acc: 0.9890 - val_loss: 0.0348 - val_acc: 0.9889\nEpoch 15/20\n263/263 [==============================] - 2s 9ms/step - loss: 0.0363 - acc: 0.9892\n1050/1050 [==============================] - 14s 13ms/step - loss: 0.0308 - acc: 0.9904 - val_loss: 0.0363 - val_acc: 0.9892\nEpoch 16/20\n263/263 [==============================] - 2s 9ms/step - loss: 0.0299 - acc: 0.9913\n1050/1050 [==============================] - 14s 13ms/step - loss: 0.0323 - acc: 0.9899 - val_loss: 0.0299 - val_acc: 0.9913\nEpoch 17/20\n263/263 [==============================] - 3s 10ms/step - loss: 0.0429 - acc: 0.9880\n1050/1050 [==============================] - 15s 14ms/step - loss: 0.0295 - acc: 0.9907 - val_loss: 0.0429 - val_acc: 0.9880\nEpoch 18/20\n263/263 [==============================] - 2s 9ms/step - loss: 0.0372 - acc: 0.9886\n1050/1050 [==============================] - 14s 13ms/step - loss: 0.0302 - acc: 0.9905 - val_loss: 0.0372 - val_acc: 0.9886\nEpoch 19/20\n263/263 [==============================] - 2s 9ms/step - loss: 0.0342 - acc: 0.9893\n1050/1050 [==============================] - 14s 13ms/step - loss: 0.0296 - acc: 0.9906 - val_loss: 0.0342 - val_acc: 0.9893\nEpoch 20/20\n263/263 [==============================] - 3s 10ms/step - loss: 0.0384 - acc: 0.9899\n1050/1050 [==============================] - 14s 14ms/step - loss: 0.0273 - acc: 0.9914 - val_loss: 0.0384 - val_acc: 0.9899\n","name":"stdout"}]},{"metadata":{"trusted":true},"cell_type":"code","source":"\n# history_cnn = model_cnn.fit_generator(train_generator,epochs=20,steps_per_epoch=len(X)/batch_size, validation_data=valid_generator, validation_steps=len(X)/batch_size)","execution_count":12,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"def plot_loss_accuracy(history):\n    # plot loss and accuracy of model\n    plt.figure(figsize=(10,10))\n    # loss figure\n    plt.subplot(2,1,1)\n    plt.title(\"Loss\")\n    plt.plot(history.history['loss'])\n    plt.plot(history.history['val_loss'])\n    plt.legend(['train','validation'])\n    plt.xlim(0,20)\n    plt.ylim(0,0.5)\n\n    # acc figure\n    plt.subplot(2,1,2)\n    plt.title(\"Accuracy\")\n    plt.plot(history.history['acc'])\n    plt.plot(history.history['val_acc'])\n    plt.legend(['train','validation'])\n    plt.xlim(0,20)\n    plt.ylim(0.80,1)\n    plt.show()","execution_count":13,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"plot_loss_accuracy(history_cnn)\n# plot_loss_accuracy(history_mlp)","execution_count":14,"outputs":[{"output_type":"display_data","data":{"text/plain":"<Figure size 720x720 with 2 Axes>","image/png":"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TURERGbUnXfeyd133z0y/yd/8if82Z/9GVdffTWbNm1i3bp1PPTQQxO227dvH2vXrgVgcHCQ2267jVWrVvGOd7xjzLNBP/rRj9LW1saaNWv49Kc/DYQPh+/o6ODNb34zb37zmwFYvnw5x48fB+Cuu+5i7dq1rF27ls9//vMjr7dq1So+8pGPsGbNGq699tqSPINUj5sSERGZr757JxzeMb37XLIOrv/zUxZ573vfy+/93u/xsY99DID777+fxx57jE984hPU1tZy/PhxLr/8cm6++WbMbNJ9fPGLX6SyspLnnnuO7du3s2nTppF1n/3sZ2lsbCSfz3P11Vezfft2PvGJT3DXXXfx+OOPs2DBgjH72rp1K//wD//AU089hXOOyy67jF/7tV+joaGB3bt3c9999/HlL3+Z97znPXzzm9/kAx/4wDkepLOjljURERGZURs3buTo0aN0dHTwzDPP0NDQwJIlS/ijP/oj1q9fzzXXXEN7eztHjhyZch8//vGPR0LT+vXrWb9+/ci6+++/n02bNrFx40Z27drFs88+e8r6/PSnP+Ud73gHVVVVVFdX8853vpOf/OQnAKxYsYINGzYAsHnzZvbt23eOP/3ZU8uaiIjIfHWaFrBieve7380DDzzA4cOHee9738tXv/pVjh07xtatW4nH4yxfvpyhoaGz3u/LL7/MX/3VX/H000/T0NDA7bff/qr2MyyZTI5M+75fkm5QtayJiIjIjHvve9/L17/+dR544AHe/e53093dzaJFi4jH4zz++OPs37//lNtfeeWVfO1rXwNg586dbN++HYCenh6qqqqoq6vjyJEjfPe73x3Zpqamht7e3gn7uuKKK3jwwQcZGBigv7+fb33rW1xxxRXT+NOeG7WsiYiIyIxbs2YNvb29tLa20tzczPvf/37e/va3s27dOtra2rj44otPuf1HP/pRPvShD7Fq1SpWrVrF5s2bAbjkkkvYuHEjF198McuWLeONb3zjyDZ33HEH1113HS0tLTz++OMjyzdt2sTtt9/OpZdeCsCHP/xhNm7cWJIuz8mYc67UdThjbW1t7nT3UBEREZGpPffcc6xatarU1ZhzJjuuZrbVOdd2rvtWN6iIiIhIGVNYExERESljCmsiIiLzzGw6BWo2KPbxVFgTERGZR1KpFJ2dnQps08Q5R2dnJ6lUqmivoatBRURE5pGlS5dy8OBBjh07VuqqzBmpVIqlS5cWbf8KayIiIvNIPB5nxYoVpa6GnAV1g4qIiIiUMYU1ERERkTKmsCYiIiJSxhTWRERERMqYwpqIiIhIGVNYExERESljCmsiIiIiZaxoYc3MrjOzF8xsj5ndeYpy7zIzZ2bn/FR6ERERkbmmKGHNzHzgbuB6YDXwPjNbPUm5GuCTwFPFqIeIiIjIbFeslrVLgT3Oub3OuQzwdeCWScr9KfA5YKhI9RARERGZ1YoV1lqBAwXzB6NlI8xsE7DMOfedU+3IzO4wsy1mtkXPMRMREZH5piQXGJiZB9wF/IfTlXXO3eOca3POtS1cuLD4lRMREREpI8UKa+3AsoL5pdGyYTXAWuAJM9sHXA48rIsMRERERMYqVlh7GrjAzFaYWQK4DXh4eKVzrts5t8A5t9w5txx4ErjZObelSPURERERmZWKEtacczng48BjwHPA/c65XWb2GTO7uRivKSIiIjIXxYq1Y+fco8Cj45Z9aoqyVxWrHiIiIiKzmZ5gICIiIlLGFNZEREREypjCmoiIiEgZU1gTERERKWMKayIiIiJlTGFNREREpIwprImIiIiUMYU1ERERkTKmsCYiIiJSxhTWRERERMqYwpqIiIhIGVNYExERESljCmsiIiIiZUxhTURERKSMKayJiIiIlDGFNREREZEyprAmIiIiUsYU1kRERETKmMKaiIiISBlTWBMREREpYwprIiIiImVMYU1ERESkjCmsiYiIiJQxhTURERGRMqawJiIiIlLGFNZEREREypjCmoiIiEgZU1gTERERKWMKayIiIiJlTGFNREREpIwprImIiIiUMYU1ERERkTKmsCYiIiJSxhTWRERERMqYwpqIiIhIGVNYExERESljCmsiIiIiZUxhTURERKSMKayJiIiIlDGFNREREZEyVrSwZmbXmdkLZrbHzO6cZP3vmtkOM9tmZj81s9XFqouIiIjIbFWUsGZmPnA3cD2wGnjfJGHsa865dc65DcBfAHcVoy4iIiIis1mxWtYuBfY45/Y65zLA14FbCgs453oKZqsAV6S6iIiIiMxasSLttxU4UDB/ELhsfCEz+xjwB0ACeMtkOzKzO4A7AM4777xpr6iIiIhIOSvpBQbOubudcyuB/xf4z1OUucc51+aca1u4cOHMVlBERESkxIoV1tqBZQXzS6Nl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TKZPn57CloqIiEh/ZAk6YEZWVVWVV1dXH7Vs48aNTJgwIUUtSk86piIiIifPzFa7e9XJ1pMWw02JiIiIpCuFNREREZEIU1gTERERiTCFNREREZEIU1gTERERiTCFNREREZEIU1jrY4MHDwagrq6O66+/PmGZK664gvhHlMT7yU9+woEDB7rez5o1i8bGxt5rqIiIiESCwlqKjBo1isWLF7/v7ePD2tKlSykqKuqNpomIiEiEJDWCQb/x7DzY9Wrv1jliEsz8frer582bR2VlJXfeeScAd999N5mZmSxbtoz33nuPtrY27rnnHmbPnn3Udtu2bePKK69k/fr1HDx4kDvuuIO1a9dy1llncfDgwa5yX/rSl1i1ahUHDx7k+uuv57vf/S733XcfdXV1fPjDH6a0tJRly5YxduxYqqurKS0t5cc//jELFiwA4POf/zxf+9rX2LZtGzNnzuSSSy7hxRdfpLy8nGeeeYa8vLzePV4iIiLSq3Rm7STdeOONLFq0qOv9okWLuO2223jqqad4+eWXWbZsGd/4xjc43kgRP/vZz8jPz2fjxo1897vfZfXq1V3r7r33Xqqrq1m3bh1//vOfWbduHV/5ylcYNWoUy5YtY9myZUfVtXr1ah5++GFWrlzJihUreOihh3jllVcA2LRpE3feeScbNmygqKiIJ598spePhoiIiPS29DqzdpwzYKfKlClT2L17N3V1ddTX11NcXMyIESP4+te/zgsvvMCgQYPYsWMH77zzDiNGjEhYxwsvvMBXvvIVAM4991zOPffcrnWLFi3iwQcfpL29nZ07d/Laa68dtT7eX/7yF6699loKCgoAuO666/iv//ovrr76asaNG8fkyZMBmDp1Ktu2beuloyAiIiKnSnqFtRS54YYbWLx4Mbt27eLGG2/kscceo76+ntWrV5OVlcXYsWNpaWk54XrfeustfvSjH7Fq1SqKi4u5/fbb31c9nXJycrrmMzIyjrrcKiIiItGky6C94MYbb+SJJ55g8eLF3HDDDTQ1NXHaaaeRlZXFsmXL2L59+3G3v+yyy3j88ccBWL9+PevWrQOgubmZgoICCgsLeeedd3j22We7thkyZAh79+49pq5LL72Up59+mgMHDrB//36eeuopLr300l7cWxEREelLOrPWC84++2z27t1LeXk5I0eO5Oabb+aqq65i0qRJVFVVcdZZZx13+y996UvccccdTJgwgQkTJjB16lQAzjvvPKZMmcJZZ51FZWUlF198cdc2c+fOZcaMGV33rnU6//zzuf3225k2bRoQdDCYMmWKLnmKiIj0U3a8G9+jpqqqyuOfP7Zx40YmTJiQohalJx1TERGRk2dmq9296mTr0WVQERERkQhTWBMRERGJsLQIa/3pUm7U6ViKiIhES78Pa7m5uTQ0NChk9AJ3p6Ghgdzc3FQ3RUREREL9vjdoRUUFtbW11NfXp7opaSE3N5eKiopUN0NERERC/T6sZWVlMW7cuFQ3Q0REROSUSOoyqJnNMLM3zGyzmc1LsH60mS0zs1fMbJ2ZzYpZ961wuzfM7JPJ1ikiIiIiSYQ1M8sA7gdmAhOBOWY2Ma7YPwCL3H0KcBPwQLjtxPD92cAM4AEzy0iyThEREZEBL5kza9OAze6+1d1bgSeA2XFlHBgazhcCdeH8bOAJdz/k7m8Bm8P6kqlTREREZMBL5p61cqAm5n0tcGFcmbuB35nZl4EC4GMx266I27Y8nO+pTgDMbC4wN3x7yMzWJ9HmgaYUeDfVjYgYHZPEdFwS03FJTMflWDomiem4Dw9wsgAABhNJREFUJHZmb1TSWx0M5gCPuPs/m9lFwEIzO6c3Knb3B4EHAcysujeGbUg3Oi7H0jFJTMclMR2XxHRcjqVjkpiOS2JmVt1zqZ4lE9Z2AJUx7yvCZbE+R3BPGu6+3MxyCVL28bbtqU4RERGRAS+Ze9ZWAePNbJyZZRN0GFgSV+Zt4KMAZjYByAXqw3I3mVmOmY0DxgMvJVmniIiIyIDX45k1d283s7uA54AMYIG7bzCz+UC1uy8BvgE8ZGZfJ+hscLsHQwpsMLNFwGtAO3Cnux8GSFRnEu198MR3cUDQcTmWjkliOi6J6bgkpuNyLB2TxHRcEuuV42IapklEREQkuvr92KAiIiIi6UxhTURERCTCIhnWkhjeKsfMfhOuX2lmY/u+lX3HzCrD4bxeM7MNZvbVBGWuMLMmM1sTTt9JRVv7mpltM7NXw30+pou0Be4LPyvrzOz8VLSzL5nZmTGfgzVm1mxmX4srMyA+L2a2wMx2xz6f0cyGmdnvzWxT+Frczba3hWU2mdltfdfqU6+b4/JDM3s9/Dt5ysyKutn2uH9z/VU3x+RuM9sR83cyq5tt03b4xG6Oy29ijsk2M1vTzbZp+VmB7n+XT9n3i7tHaiLocLAFOB3IBtYCE+PK/DXw83D+JuA3qW73KT4mI4Hzw/khwJsJjskVwH+kuq0pODbbgNLjrJ8FPAsYMB1Ymeo29/HxyQB2AWPilg+IzwtwGXA+sD5m2T8B88L5ecAPEmw3DNgavhaH88Wp3p9TfFw+AWSG8z9IdFzCdcf9m+uvUzfH5G7gmz1s1+NvVn+eEh2XuPX/DHxnIH1Wwn1L+Lt8qr5fonhmLZmhqGYDvwznFwMfNTPrwzb2KXff6e4vh/N7gY0cGQlCjm828KgHVgBFZjYy1Y3qQx8Ftrj79lQ3JBXc/QVgT9zi2O+PXwLXJNj0k8Dv3X2Pu78H/J7wWZLpINFxcfffuXt7+HYFwfMvB4xuPivJSOvhE493XMLf3U8Dv+7TRkXAcX6XT8n3SxTDWqLhreKDSVeZ8MulCSjpk9alWHjJdwqwMsHqi8xsrZk9a2Zn92nDUscJhjpbbcHQZPGS+Tyls5vo/ot0IH5eAIa7+85wfhcwPEGZgf65+SuCM9KJ9PQ3l27uCi8NL+jmktZA/qxcCrzj7pu6WT8gPitxv8un5PslimFNumFmg4Enga+5e3Pc6pcJLnWdB/wf4Om+bl+KXOLu5wMzgTvN7LJUNygqLHjg9NXAbxOsHqifl6N4cE1Czy+KYWbfJngu5mPdFBlIf3M/A84AJgM7CS75yRFzOP5ZtbT/rBzvd7k3v1+iGNaSGd6qq4yZZQKFQEOftC5FzCyL4APxmLv/W/x6d292933h/FIgy8xK+7iZfc7dd4Svu4GnCC5JxErm85SuZgIvu/s78SsG6ucl9E7npfDwdXeCMgPyc2NmtwNXAjeHPzTHSOJvLm24+zvuftjdO4CHSLyvA/WzkglcB/ymuzLp/lnp5nf5lHy/RDGsJTMU1RKgs/fE9cCfuvtiSQfhfQH/Cmx09x93U2ZE5317ZjaN4L9tugfYAjMb0jlPcIP0+rhiS4BbLTAdaIo5RZ3uuv2/3oH4eYkR+/1xG/BMgjLPAZ8ws+Lw0tcnwmVpy8xmAH8HXO3uB7opk8zfXNqIu7/1WhLv60AdPvFjwOvuXptoZbp/Vo7zu3xqvl9S3aOim14Wswh6VmwBvh0um0/wJQLB2KO/BTYTjDV6eqrbfIqPxyUEp1LXAWvCaRbwReCLYZm7gA0EPZFWAB9Kdbv74LicHu7v2nDfOz8rscfFgPvDz9KrQFWq291Hx6aAIHwVxiwbcJ8XgrC6E2gjuC/kcwT3t/4R2AT8ARgWlq0CfhGz7V+F3zGbgTtSvS99cFw2E9xH0/kd09njfhSwNJxP+DeXDlM3x2Rh+L2xjuBHeGT8MQnfH/OblS5TouMSLn+k8/skpuyA+KyE+9fd7/Ip+X7RcFMiIiIiERbFy6AiIiIiElJYExEREYkwhTURERGRCFNYExEREYkwhTURERGRCFNYExEREYkwhTURERGRCPv/uA7uGtcfpdAAAAAASUVORK5CYII=\n"},"metadata":{}}]},{"metadata":{"trusted":true},"cell_type":"code","source":"#display some image\n# y_pre = model_cnn.predict(X_val)\n\n# display some image in the data with predict and truth values\ndef display_result(images,image_row,image_column,class_pre,class_real):\n# \"\"\"images: list of image to display\n#     image_row, image_column: quantity of image each row, column to display\n#     class_pre: predict of class\n#     class_real: the truth class of image\n# \"\"\"\n\n    plt.figure(figsize=(15,15))\n    for i in range(image_row * image_column):\n        plt.subplot(image_row,image_column,i+1)        \n        plt.imshow(images[i,:,:,0],cmap='gray')\n        plt.xlabel(\"Predict:{} of {}\".format(class_pre[i],class_real[i]))\n    plt.show()\n    \n    \ndef visualize_result(x_pre,y_pre,y_real):\n#     display the result of model predict the result\n    class_pre = y_pre.argmax(axis =1)\n    class_real = y_real.argmax(axis =1)\n    idx_correct = np.unique(np.nonzero(class_pre == class_real)[0])\n    idx_incorrect = np.unique(np.nonzero(class_pre != class_real)[0])\n#     display correct result\n    display_result(x_pre[idx_correct],5,5,class_pre[idx_correct],class_real[idx_correct])\n    \n#     display incorrect result\n    display_result(x_pre[idx_incorrect],5,5,class_pre[idx_incorrect],class_real[idx_incorrect])\n\n # visualize_result(X_val,y_pre,Y_val)","execution_count":17,"outputs":[{"output_type":"error","ename":"IndentationError","evalue":"unindent does not match any outer indentation level (<ipython-input-17-c0b4fa299ef3>, line 32)","traceback":["\u001b[0;36m  File \u001b[0;32m\"<ipython-input-17-c0b4fa299ef3>\"\u001b[0;36m, line \u001b[0;32m32\u001b[0m\n\u001b[0;31m    visualize_result(X_val,y_pre,Y_val)\u001b[0m\n\u001b[0m                                       ^\u001b[0m\n\u001b[0;31mIndentationError\u001b[0m\u001b[0;31m:\u001b[0m unindent does not match any outer indentation level\n"]}]},{"metadata":{"trusted":true},"cell_type":"code","source":"# predict and submission\npredictions = model_cnn.predict(test)\npredictions = np.argmax(predictions,axis=1)\nsubmissions = pd.DataFrame({'ImageID':list(range(1,len(predictions)+1)),'Label':predictions})\nkeras.utils.plot_model(model_cnn,to_file='model.png')\nmodel_cnn.save(\"model.h5\")\n\n#submission\nsubmissions.to_csv('submission.csv',index = False, header = True)","execution_count":18,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"submissions.head()","execution_count":19,"outputs":[{"output_type":"execute_result","execution_count":19,"data":{"text/plain":"   ImageID  Label\n0        1      2\n1        2      0\n2        3      9\n3        4      9\n4        5      3","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>ImageID</th>\n      <th>Label</th>\n    </tr>\n  </thead>\n  <tbody>\n    <tr>\n      <th>0</th>\n      <td>1</td>\n      <td>2</td>\n    </tr>\n    <tr>\n      <th>1</th>\n      <td>2</td>\n      <td>0</td>\n    </tr>\n    <tr>\n      <th>2</th>\n      <td>3</td>\n      <td>9</td>\n    </tr>\n    <tr>\n      <th>3</th>\n      <td>4</td>\n      <td>9</td>\n    </tr>\n    <tr>\n      <th>4</th>\n      <td>5</td>\n      <td>3</td>\n    </tr>\n  </tbody>\n</table>\n</div>"},"metadata":{}}]}],"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}