{"cells":[{"metadata":{"_uuid":"8f2839f25d086af736a60e9eeb907d3b93b6e0e5","_cell_guid":"b1076dfc-b9ad-4769-8c92-a6c4dae69d19","trusted":true},"cell_type":"code","source":"import pandas            as pd\nimport numpy             as np\nimport matplotlib.pyplot as plt\nimport tensorflow        as tf\nfrom tensorflow import keras","execution_count":null,"outputs":[]},{"metadata":{"_uuid":"d629ff2d2480ee46fbb7e2d37f6b5fab8052498a","_cell_guid":"79c7e3d0-c299-4dcb-8224-4455121ee9b0","trusted":true},"cell_type":"code","source":"train=pd.read_csv('../input/Kannada-MNIST/train.csv')\nprint('The Train  dataset has {} rows and {} columns'.format(train.shape[0],train.shape[1]))","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"train.head(3)","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"label = train.pop('label')\nlabel = tf.keras.utils.to_categorical(label, num_classes=10,dtype='float32')","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"train = train.values.reshape(-1,28,28,1)\ntrain = train/255","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"model = tf.keras.models.Sequential([\n        tf.keras.layers.Conv2D(6, (5,5), activation='tanh', input_shape=(28, 28, 1))\n       ,tf.keras.layers.AveragePooling2D(2,2)\n       ,tf.keras.layers.Conv2D(16, (5,5), activation='tanh')\n       ,tf.keras.layers.AveragePooling2D(2,2)\n       ,tf.keras.layers.Flatten()                        # Flatten the results to feed into a DNN\n       ,tf.keras.layers.Dense(120, activation='tanh')    # 120 neuron hidden layer\n       ,tf.keras.layers.Dense(84,  activation='tanh')    # 84  neuron hidden layer\n       ,tf.keras.layers.Dense(10,  activation='softmax')  \n])\nmodel.summary()","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"model.compile(optimizer='adam', loss='categorical_crossentropy', metrics=['accuracy'])","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"history = model.fit(x=train, y=label, shuffle=True, validation_split=0.05, epochs=15)","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"acc         = history.history['acc']\nval_acc     = history.history['val_acc']\nloss        = history.history['loss']\nval_loss    = history.history['val_loss']\nepoch_count = range(1, len(acc)+1)\n\nfig_1, axes = plt.subplots(1,2,figsize=(20,5))\n\naxes[0].set_title(\"Train Accuracy vs Val Accuracy\")\naxes[0].set(xlabel=\"Epoch\", ylabel=\"Accuarcy\")\naxes[0].plot(epoch_count, acc, epoch_count, val_acc)\naxes[0].legend(['Train Acc', 'Val Acc'])\n\naxes[1].set_title(\"Train Loss vs Val Loss\")\naxes[1].set(xlabel=\"Epoch\", ylabel=\"Loss\")\naxes[1].plot(epoch_count, loss, epoch_count, val_loss)\naxes[1].legend(['Train Loss', 'Val Loss'])\n\nplt.show()","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"test=pd.read_csv('../input/Kannada-MNIST/test.csv')\ntest.head()","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"test_id = test.pop('id')\ntest = test.values.reshape(-1, 28, 28, 1)\ntest = test/255","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"Y_pred = model.predict(test)\nY_pred = np.argmax(Y_pred,axis=1)","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"sample_sub=pd.read_csv('../input/Kannada-MNIST/sample_submission.csv')\nprint(sample_sub)","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"sample_sub['label']=Y_pred\nsample_sub.to_csv('submission.csv',index=False)","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"print(sample_sub)","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":1}