{"cells":[{"metadata":{"_cell_guid":"c5520c0e-37f9-48d3-bbde-7f895a2351a9","_uuid":"9ce0e56b87b6447846d04552802bfffb577f584c"},"cell_type":"markdown","source":"[](http://)![](http://)## Modules/ Packages to be used","outputs":[],"execution_count":null},{"metadata":{"_cell_guid":"1fec67a5-3a52-4cc8-901b-ee529c909418","_uuid":"604a7994eeee3b379cf1a126dee20c01acbb6b50","trusted":true},"cell_type":"code","source":"import tensorflow as tf\nimport keras\nfrom keras.models import Sequential\nfrom keras.layers import Conv2D\nfrom keras import layers\nimport pandas as pd\nimport numpy as np","execution_count":null,"outputs":[]},{"metadata":{"_cell_guid":"96fef178-f19f-41e4-8be8-58197cb10a70","_uuid":"de6bc9dae0d137f6f943efc3ef448af13f103d6a"},"cell_type":"markdown","source":"\n# MNIST dataset","outputs":[],"execution_count":null},{"metadata":{"_cell_guid":"b5f0dacf-ec27-4a0f-a002-50ad17cce2bd","collapsed":true,"_uuid":"276a146eb9539b2f3523e21ca169d697dd649820","trusted":true},"cell_type":"code","source":"test_data = pd.read_csv('../input/test.csv',delimiter=',')","execution_count":null,"outputs":[]},{"metadata":{"_cell_guid":"368f6ff0-4cf7-4f58-849c-5414434dffaa","collapsed":true,"_uuid":"509c9e87817fde6e96359ca8e020a50366195749","trusted":true},"cell_type":"code","source":"train_data = pd.read_csv('../input/train.csv',delimiter=',')","execution_count":null,"outputs":[]},{"metadata":{"_cell_guid":"32ae1581-42fc-4585-b42d-afae3fa5bef1","_uuid":"20f4401f668cf85734c3b6b10db2b4732d88688c","trusted":true},"cell_type":"code","source":"print('Shape of Test Dataset is {} and Train Dataset is{}.'.format(test_data.shape,train_data.shape))","execution_count":null,"outputs":[]},{"metadata":{"_cell_guid":"110d5c78-d755-4cd3-b769-1f977674ca01","_uuid":"824d033cf282a9675c1e839eae184df3f827eddb","trusted":true},"cell_type":"code","source":"train_data.head() #First columns label is the true output of image.","execution_count":null,"outputs":[]},{"metadata":{"_cell_guid":"dd72a0ae-0ac3-4e01-9a47-1cc27c107313","_uuid":"17e74a2acc46d9a594da9014d802c4ef7332b9f9","trusted":true},"cell_type":"code","source":"test_data.head()","execution_count":null,"outputs":[]},{"metadata":{"_cell_guid":"a707eec2-6f9b-420d-a773-d65b56463c3c","collapsed":true,"_uuid":"8e3bfeef5ba4869711359f3c5c30f36aa6f7a0e6","trusted":true},"cell_type":"code","source":"xtrain = (train_data.iloc[:,1:].values).astype('float16')","execution_count":null,"outputs":[]},{"metadata":{"_cell_guid":"a21febc9-12b5-4605-8165-6db59371475d","collapsed":true,"_uuid":"88f8d6126fa85c2b6db2cc3599c9ff114638ab6f","trusted":true},"cell_type":"code","source":"ytrain = (train_data.iloc[:,0].values).astype('int32')","execution_count":null,"outputs":[]},{"metadata":{"_cell_guid":"302edb6e-6008-4b5d-bfd3-25cc98937934","collapsed":true,"_uuid":"6169b710fd0f44b9021cc5a32865fdad07b7b96b","trusted":true},"cell_type":"code","source":"xtest = (test_data.values).astype('float16')","execution_count":null,"outputs":[]},{"metadata":{"_cell_guid":"b94f37e4-ed6e-4b82-804f-46ed58d06ecb","collapsed":true,"_uuid":"79ab52d21b3f0d4bdf7e111ccd8c6edf1f98b32f","trusted":true},"cell_type":"code","source":"classify = 10","execution_count":null,"outputs":[]},{"metadata":{"_cell_guid":"a04c6ff0-8e07-4535-84cf-0a1506e03dd1","collapsed":true,"_uuid":"624a37d24773b469e763483e6f74dc142dc3730e","trusted":true},"cell_type":"code","source":"def one_hot(ip,classes): #convert label of train data into one-hot encoding\n    one_hot = []\n    for i in range(len(ip)):\n        j = (np.eye(N=ip.shape[0],M=classes,k=ip[i]))[0]\n        one_hot.append(j)\n    return np.array(one_hot)","execution_count":null,"outputs":[]},{"metadata":{"_cell_guid":"d9cbbf47-f8c3-47ca-8f88-ffc59b9a09e3","collapsed":true,"_uuid":"a7da965b3120d6fb8899fb759f57ba94dabe700a","trusted":true},"cell_type":"code","source":"ytrain = one_hot(ytrain,classify)","execution_count":null,"outputs":[]},{"metadata":{"_cell_guid":"8e466344-49bc-4b7d-93fe-18775e5b920a","collapsed":true,"_uuid":"5b1d454c8a38454d950268add7e6c85f287c7343","trusted":true},"cell_type":"code","source":"xtrain = xtrain.reshape(xtrain.shape[0],28,28,1)","execution_count":null,"outputs":[]},{"metadata":{"_cell_guid":"a759fac0-a6bc-4459-8fe4-d39eadbfcb74","collapsed":true,"_uuid":"3585689fd10d220cfc7b0d7eb20963e75703842d","trusted":true},"cell_type":"code","source":"xtest = xtest.reshape(xtest.shape[0],28,28,1)","execution_count":null,"outputs":[]},{"metadata":{"_cell_guid":"73352375-ee53-4c07-a620-cb78b1997e64","collapsed":true,"_uuid":"436ee5a20c99766d0e5bc31d81c3510f5f4b466d","trusted":true},"cell_type":"code","source":"xtrain = xtrain / 255.0\nxtest = xtest / 255.0","execution_count":null,"outputs":[]},{"metadata":{"_cell_guid":"d7d96754-b72b-40cc-b42f-23155ea8d195","_uuid":"d9e2492243300437f6efe2f54b9d540fa043ec85"},"cell_type":"markdown","source":"## Neural Network Architecture","outputs":[],"execution_count":null},{"metadata":{"_cell_guid":"0066c21b-9e42-4b65-8a00-254eb1dd13d4","collapsed":true,"_uuid":"fc886e75e26f2d7ec069e40936a82aff3fcfb1f1","trusted":true},"cell_type":"code","source":"model = Sequential()","execution_count":null,"outputs":[]},{"metadata":{"trusted":true,"_uuid":"630e356ddf7a22b67c3b96d7844d69268dc56d1b"},"cell_type":"code","source":"model.add(layers.InputLayer(input_shape=(28,28,1)))\nmodel.add(Conv2D(16,5,padding='same',activation='relu'))\nmodel.add(layers.MaxPooling2D(padding='same'))\nmodel.add(layers.Flatten())\nmodel.add(layers.Dense(416,activation='relu'))\nmodel.add(layers.Dense(10,activation='softmax'))","execution_count":null,"outputs":[]},{"metadata":{"_cell_guid":"0a4c8e6a-33a9-4828-abba-ca2cbd5d9f8c","_uuid":"84faebfc45b6f2b415a654a5fbe2b017757894ec"},"cell_type":"markdown","source":"## Compile NN","outputs":[],"execution_count":null},{"metadata":{"_cell_guid":"d7ba88fd-8752-437a-9b32-76b76a9a3e4b","collapsed":true,"_uuid":"76f6ccd3997a191329b4c0fd03d1da3747467ee3","trusted":true},"cell_type":"code","source":"from keras.optimizers import Adam","execution_count":null,"outputs":[]},{"metadata":{"_cell_guid":"6ec4a9d3-cf2c-46fb-911d-9af1234eaafc","collapsed":true,"_uuid":"4bb6f9a74f21c39c36f6bf41d549877fc92e6e68","trusted":true},"cell_type":"code","source":"optimizer = Adam(lr = 0.01)","execution_count":null,"outputs":[]},{"metadata":{"_cell_guid":"b8b62c06-72c4-4c7a-9a62-93b32108f1cb","collapsed":true,"_uuid":"94310ab7a78cceedfe9b30d4dbec51662df2fa96","trusted":true},"cell_type":"code","source":"model.compile(optimizer=optimizer,loss='categorical_crossentropy',metrics=['accuracy'])\n#model.compile(optimizer=optimizer,loss='mean_squared_error',metrics=['accuracy'])","execution_count":null,"outputs":[]},{"metadata":{"_cell_guid":"3f939da0-698d-4416-bb9b-4e313acca786","_uuid":"c96ee78c2d1970a830b0bffec987bc4e1eb4526d"},"cell_type":"markdown","source":"## Training/Fitting Model","outputs":[],"execution_count":null},{"metadata":{"_cell_guid":"6c4297f4-009b-4798-9c2e-5d1f569d6a4f","_uuid":"b5c4982aa88536b2f5cb774c7abfb695f6366ac9","trusted":true},"cell_type":"code","source":"model.fit(x=xtrain,y=ytrain,batch_size=64,epochs=1)","execution_count":null,"outputs":[]},{"metadata":{"_cell_guid":"af286a54-a9f3-47a6-8d5f-f8489fdcdba1","collapsed":true,"_uuid":"c58c5f873a2f793ae02fb6ccf17c3b580b35263f","trusted":true},"cell_type":"code","source":"predctions = model.predict(x=xtest)","execution_count":null,"outputs":[]},{"metadata":{"_cell_guid":"f246f19c-a0e7-4107-baf2-2bcc25cd7622","collapsed":true,"_uuid":"7264c92634dca54f03e09cc07947c50f136c691f","trusted":true},"cell_type":"code","source":"pred_cls = np.argmax(predctions,axis=1)","execution_count":null,"outputs":[]},{"metadata":{"_cell_guid":"bbf54b7a-501c-4d8e-b765-e88a69f2c592","collapsed":true,"_uuid":"fccc992c309c15b1456e59b161d66d2d175101f6","trusted":true},"cell_type":"code","source":"submit = pd.DataFrame({'ImageID':list(range(1,xtest.shape[0]+1)),'Label':pred_cls})","execution_count":null,"outputs":[]},{"metadata":{"_cell_guid":"6ebc5ed5-4d50-456a-a4d8-4ff36a363529","collapsed":true,"_uuid":"15f2e6b35a530b1953637ee07277f2399cb091c0","trusted":true},"cell_type":"code","source":"submit.to_csv('kaggel_digit.csv',index=False,header=True)","execution_count":null,"outputs":[]},{"metadata":{"_cell_guid":"d734df30-6711-49ed-a3f0-3c5b67ed7f47","_uuid":"d0d4954b54b5ed138332e8193921c95ab828f8f5","trusted":true},"cell_type":"code","source":"pd.read_csv('kaggel_digit.csv').head()","execution_count":null,"outputs":[]},{"metadata":{"_cell_guid":"c9adf9d0-ae6e-4e43-b3f9-77b34abd9099","_uuid":"c2c6d0b8e0c98f9d8f2f41c661a86722bb2b0248"},"cell_type":"markdown","source":"# Last Check on output. :)","outputs":[],"execution_count":null}],"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}