{"cells":[{"metadata":{"_cell_guid":"79c7e3d0-c299-4dcb-8224-4455121ee9b0","_uuid":"d629ff2d2480ee46fbb7e2d37f6b5fab8052498a","trusted":true,"collapsed":true},"cell_type":"code","source":"import os\nimport tensorflow as tf\nimport pandas as pd\nimport numpy as np\nfrom sklearn.model_selection import train_test_split","execution_count":null,"outputs":[]},{"metadata":{"trusted":true,"_uuid":"b4f32843a5497a2267c1c7bf81168f525adfe469","collapsed":true},"cell_type":"code","source":"data = pd.read_csv('../input/train.csv')\nlabel = data.label\ndata = data.drop('label', axis = 1)\nX, X_test, Y, Y_test = train_test_split(data, label, test_size = 0.2)\nwith tf.Session() as sess:\n    Y = tf.one_hot(Y,10)\n    Y = sess.run(Y)\nY_test = Y_test.values","execution_count":null,"outputs":[]},{"metadata":{"trusted":true,"collapsed":true,"_uuid":"a06adb4070e51b8b1e2bc4bcd34a85989a56df98"},"cell_type":"code","source":"x = tf.placeholder(dtype = tf.float32, shape=[None,784])\ny = tf.placeholder(dtype = tf.float32, shape=[None,10])\nf1= tf.Variable(tf.random_normal(shape=[3,3,1,16]))\nf2= tf.Variable(tf.random_normal(shape=[3,3,16,32]))\nb1= tf.Variable(tf.random_normal(shape=[28,28,16]))\nb2= tf.Variable(tf.random_normal(shape=[14,14,32]))\nw1 = tf.Variable(tf.random_normal(shape=[1568,1000]))\nb3= tf.Variable(tf.random_normal(shape=[1000]))\nw2 = tf.Variable(tf.random_normal(shape=[1000,10]))\nb4= tf.Variable(tf.random_normal(shape=[10]))\n\nf1_1= tf.Variable(tf.random_normal(shape=[3,3,16,16]))\nb1_1= tf.Variable(tf.random_normal(shape=[28,28,16]))\n\ndef cnn(x):\n    l = tf.reshape(x, [-1,28,28,1])\n    \n    l = tf.nn.conv2d(l, f1, strides = [1,1,1,1], padding= 'SAME')\n    l = tf.nn.relu(l + b1)\n    \n    l = tf.nn.conv2d(l, f1_1, strides = [1,1,1,1], padding= 'SAME')\n    l = tf.nn.relu(l + b1_1)\n    \n    l = tf.nn.max_pool(l, ksize = [1,2,2,1], strides = [1,2,2,1], padding = 'SAME')\n    \n    l = tf.nn.conv2d(l, f2, strides = [1,1,1,1], padding= 'SAME')\n    l = tf.nn.relu(l + b2)\n    l = tf.nn.max_pool(l, ksize = [1,2,2,1], strides = [1,2,2,1], padding = 'SAME')\n    \n    l = tf.reshape(l,[-1,1568])\n    \n    l = tf.matmul(l,w1)\n    l = tf.nn.relu(l + b3)\n    \n    l = tf.matmul(l,w2)\n    l = l + b4\n    \n#     l = tf.nn.softmax(l)\n    return l","execution_count":null,"outputs":[]},{"metadata":{"trusted":true,"scrolled":true,"_uuid":"9f9a2d79a73eaf7a93948cbd12d3025eafb3c9c2"},"cell_type":"code","source":"ep = 50\npred = cnn(x)\ncost = tf.reduce_mean(tf.nn.softmax_cross_entropy_with_logits_v2(labels = y, logits = pred))#tf.square(tf.subtract(pred, y)))\noptimizer = tf.train.AdamOptimizer().minimize(cost)\nsess = tf.Session()\nsess.run([tf.global_variables_initializer(), tf.local_variables_initializer()])\nfor i in range(ep):\n    k = 0\n    epc = 0\n    size = 100\n    for _ in range(336):\n        _, c = sess.run([optimizer, cost], feed_dict = {x: X[k:k+size], y: Y[k:k+size]})\n        k = k+100\n        epc += c\n    print('Epoch: ',i+1,'   Cost: ', epc)\n    p = tf.nn.softmax(pred)\n    p = tf.argmax(p, axis =1)\n    p = sess.run(p, feed_dict = {x: X_test})\n    tr = 0\n    for j in range(8400):\n        if(p[j] == Y_test[j]):\n            tr += 1\n    print('Accuracy: ', tr/8400)\n    print('Correct: ', tr)","execution_count":null,"outputs":[]},{"metadata":{"trusted":true,"_uuid":"5e2a6d977e4b388e7e6d8375730464acf284c08d","collapsed":true},"cell_type":"code","source":"data = pd.read_csv('../input/test.csv')\np1 = tf.argmax(pred, axis = 1)\np1 = sess.run(p1, feed_dict = {x: data})\nsess.close()","execution_count":null,"outputs":[]},{"metadata":{"trusted":true,"_uuid":"34efe702bc6969968820216775682e895ffc6362","collapsed":true},"cell_type":"code","source":"d = pd.read_csv('../input/sample_submission.csv')\nd.head()\nres = pd.DataFrame(p1, columns = ['Label'])\nres.index.names = ['ImageId']\nres.index += 1\nres.head()\nres.to_csv('submit.csv', index_label = 'ImageId')","execution_count":null,"outputs":[]},{"metadata":{"trusted":true,"collapsed":true,"_uuid":"e2bb4df5a86c8c15c7bec164c7e12084e5b8ceb0"},"cell_type":"code","source":"","execution_count":null,"outputs":[]},{"metadata":{"trusted":true,"collapsed":true,"_uuid":"ada71ebdfdb162483df9eb58deb54860a25e4c7d"},"cell_type":"code","source":"","execution_count":null,"outputs":[]}],"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}