{"cells":[{"metadata":{"_uuid":"8f2839f25d086af736a60e9eeb907d3b93b6e0e5","_cell_guid":"b1076dfc-b9ad-4769-8c92-a6c4dae69d19","trusted":true},"cell_type":"code","source":"import tensorflow\nimport pandas as pd\nimport numpy as np\nimport keras\nimport keras.layers as layers\nfrom keras.models import Sequential\nfrom keras.utils.np_utils import to_categorical\nfrom keras.callbacks import TensorBoard\nfrom sklearn.model_selection import train_test_split\nfrom keras.callbacks import CSVLogger, ModelCheckpoint\nfrom skimage.io import imshow, imshow_collection","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"train = pd.read_csv('/kaggle/input/Kannada-MNIST/train.csv')\ntest = pd.read_csv('/kaggle/input/Kannada-MNIST/test.csv')\ntrain.head(3)\n\nX = train.iloc[:,1:].values\ny = train.iloc[:,0].values\nval = test.iloc[:,1:].values\n\ny = keras.utils.to_categorical(y)\n\n# X = np.pad(X, ((0,0),(2,2),(2,2),(0,0)), 'constant')\nX_flattened = X.reshape(X.shape[0],28,28,1)\nX_flattened = np.pad(X_flattened, ((0,0),(2,2),(2,2),(0,0)), 'constant')\nval_flattened = val.reshape(val.shape[0],28,28,1)\nval_flattened = np.pad(val_flattened, ((0,0),(2,2),(2,2),(0,0)), 'constant')\n\nX_rescaled = X_flattened/255.\nval_rescaled = val_flattened/255.\n\nx_train,x_test,y_train,y_test = train_test_split(X_rescaled,y,train_size=0.85,random_state=10)","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"model = keras.Sequential() \nmodel.add(layers.Conv2D(filters=12, kernel_size=(3, 3), activation='tanh', input_shape=(32,32,1)))\nmodel.add(layers.Conv2D(filters=12, kernel_size=(3, 3), activation='tanh', input_shape=(32,32,1)))\nmodel.add(layers.AveragePooling2D())\nmodel.add(layers.BatchNormalization())\n\nmodel.add(layers.Conv2D(filters=32, kernel_size=(3, 3), activation='tanh'))\nmodel.add(layers.Conv2D(filters=32, kernel_size=(3, 3), activation='tanh'))\nmodel.add(layers.AveragePooling2D())\nmodel.add(layers.BatchNormalization())\n\nmodel.add(layers.Flatten())\n\nmodel.add(layers.Dense(units=120, activation='tanh'))\n\nmodel.add(layers.Dense(units=84, activation='tanh'))\n\nmodel.add(layers.Dense(units=10, activation = 'softmax'))\nmodel.compile(loss=keras.losses.categorical_crossentropy, optimizer=keras.optimizers.Adadelta(), metrics=['accuracy'])\nmodel.fit(x_train ,y_train, epochs = 30, batch_size=16, validation_data=[x_test,y_test], callbacks=[ModelCheckpoint('./model.h5', save_best_only=True)])","execution_count":null,"outputs":[]},{"metadata":{"_uuid":"d629ff2d2480ee46fbb7e2d37f6b5fab8052498a","_cell_guid":"79c7e3d0-c299-4dcb-8224-4455121ee9b0","trusted":true},"cell_type":"code","source":"from keras.utils import plot_model\nplot_model(model, show_shapes=True, show_layer_names=True)","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"model.load_weights('./model.h5');\npredictions = model.predict_classes(val_rescaled)","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"submission = pd.read_csv('../input/Kannada-MNIST/sample_submission.csv')","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"submission['label'] = predictions","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"submission.to_csv(\"submission.csv\",index=False)","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}