{"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_minor":4,"nbformat":4,"cells":[{"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\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 read-only \"../input/\" directory\n# For example, running this (by clicking run or pressing Shift+Enter) will list all files under the input directory\n\nimport os\nfor dirname, _, filenames in os.walk('/kaggle/input'):\n    for filename in filenames:\n        print(os.path.join(dirname, filename))\n\n# You can write up to 20GB to the current directory (/kaggle/working/) that gets preserved as output when you create a version using \"Save & Run All\" \n# You can also write temporary files to /kaggle/temp/, but they won't be saved outside of the current session","metadata":{"_uuid":"8f2839f25d086af736a60e9eeb907d3b93b6e0e5","_cell_guid":"b1076dfc-b9ad-4769-8c92-a6c4dae69d19","trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"data_train = pd.read_csv(\"/kaggle/input/digit-recognizer/train.csv\")\ndata_test = pd.read_csv(\"/kaggle/input/digit-recognizer/test.csv\")\n\n","metadata":{"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"X_test=data_test.iloc[:,:].values","metadata":{"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"X_test = X_test.reshape(X_test.shape[0],28,28,1)","metadata":{"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"from sklearn.model_selection import train_test_split","metadata":{"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"X_train,X_val,Y_train,Y_val = train_test_split(data_train.iloc[:,1:],data_train.iloc[:,0],train_size=0.8,random_state=42)","metadata":{"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"X_train = X_train.iloc[:,:].values.reshape(X_train.shape[0],int(np.sqrt(X_train.shape[1])),int(np.sqrt(X_train.shape[1])),1)\nY_train = Y_train.iloc[:].values.reshape(Y_train.shape[0],1)\nX_val = X_val.iloc[:,:].values.reshape(X_val.shape[0],int(np.sqrt(X_val.shape[1])),int(np.sqrt(X_val.shape[1])),1)\nY_val = Y_val.iloc[:].values.reshape(Y_val.shape[0],1)\n\n","metadata":{"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"ab = X_train.copy()","metadata":{"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"#np.mean(ab,axis=(0)).shape\ndef standard(x):\n    output =(x-np.mean(x,axis=0))/np.std(x,axis=0)\n    ","metadata":{"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"","metadata":{"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"#X_train= X_train.reshape([X_train.shape[0],X_train.shape[1],X_train.shape[2]])","metadata":{"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"from tensorflow.keras import layers\nfrom tensorflow.keras import Sequential\nimport tensorflow as tf","metadata":{"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"opt = tf.keras.optimizers.Adam(learning_rate=0.001)\n","metadata":{"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"model = Sequential([ layers.experimental.preprocessing.Rescaling(1./255),\n                    layers.Conv2D(128,kernel_size=(3,3),input_shape=(28,28,1),padding=\"same\",activation=\"relu\"),\n                    layers.Conv2D(128,kernel_size=(3,3),padding=\"same\",activation=\"relu\"),\n                    layers.MaxPooling2D(pool_size=(2, 2),strides=(2,2)),\n                    layers.Conv2D(64,kernel_size=(3,3),padding=\"same\",activation=\"relu\"),\n                    layers.Conv2D(64,kernel_size=(3,3),padding=\"same\",activation=\"relu\"),\n\n                    layers.MaxPool2D(pool_size=(2, 2),strides=(2,2)),\n                    layers.Conv2D(32,kernel_size=(3,3),padding=\"same\",activation=\"relu\"),\n                    layers.Conv2D(32,kernel_size=(3,3),padding=\"same\",activation=\"relu\"),\n\n                    layers.MaxPool2D(pool_size=(2, 2)),\n                    #layers.Conv2D(16,kernel_size=(3,3),activation=\"relu\"),\n                    #layers.MaxPool2D(pool_size=(2, 2)),\n                    layers.Flatten(),\n                    layers.Dense(70,activation=\"relu\"),\n                    layers.Dense(len(np.unique(Y_val)),activation=\"softmax\")\n        \n])","metadata":{"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"model.compile(optimizer=opt,loss=tf.losses.SparseCategoricalCrossentropy(from_logits=True),metrics=[\"accuracy\"])","metadata":{"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"model.fit(X_train, Y_train,epochs=5,batch_size=10,validation_data=(X_val,Y_val))\n","metadata":{"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"model.predict_classes(X_test)","metadata":{"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"import matplotlib.pyplot as plt","metadata":{"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"a=model.predict_classes(X_test)\n","metadata":{"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"for i in range(20):\n    plt.figure()\n    plt.imshow(X_test[i])\n    plt.title(\"Image {}\".format(a[i]))\n","metadata":{"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"model.predict_classes(X_train)","metadata":{"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"submission = pd.DataFrame({\n    \"ImageId\": range(1,len(a)+1),\n    \"Label\":a\n})\nsubmission.to_csv(\"sample_submission_.csv\",index=False,header=True)","metadata":{"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"submission ","metadata":{"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"sample = pd.read_csv(\"/kaggle/input/digit-recognizer/sample_submission.csv\")","metadata":{"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"","metadata":{"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"","metadata":{"trusted":true},"execution_count":null,"outputs":[]}]}