{"cells":[{"metadata":{"_uuid":"8f2839f25d086af736a60e9eeb907d3b93b6e0e5","_cell_guid":"b1076dfc-b9ad-4769-8c92-a6c4dae69d19","trusted":true},"cell_type":"code","source":"import numpy as np \nimport pandas as pd\nimport os\nimport tensorflow as tf\nfrom keras.models import Sequential\nfrom keras.layers import Dense, Activation, Flatten\nfrom keras.layers import Conv2D, MaxPooling2D\nimport cv2\nimport tqdm","execution_count":null,"outputs":[]},{"metadata":{"trusted":true,"_uuid":"1d178af04c6ccb95450b186f7fb2c88588f243bb","collapsed":true},"cell_type":"code","source":"TRAIN_DIR=\"../input/train\"\ndef label_img(img):\n    word_label = img.split('.')[-3]\n    # conversion to one-hot array [cat,dog]\n    #                            [much cat, no dog]\n    if word_label == 'cat': return [1,0]\n    #                             [no cat, very doggo]\n    elif word_label == 'dog': return [0,1]\ndef create_train_data():\n    train_data = []\n    train_label=[]\n    for img in os.listdir(TRAIN_DIR):\n        label = label_img(img)\n        path = os.path.join(TRAIN_DIR,img)\n        img = cv2.imread(path)\n        img = cv2.resize(img, (200,200))\n        train_data.append(np.array(img))\n        train_label.append(np.array(label))\n    return train_data,train_label","execution_count":null,"outputs":[]},{"metadata":{"trusted":true,"_uuid":"0d4f47adb45b173ca54fa8267204df1c6c4e6e07","collapsed":true},"cell_type":"code","source":"X=[]\nY=[]\nX,Y = create_train_data()","execution_count":null,"outputs":[]},{"metadata":{"trusted":true,"_uuid":"e155fd3c082fd32099970f2e2c0a9f3204b2e100","collapsed":true},"cell_type":"code","source":"x =np.array(X)","execution_count":null,"outputs":[]},{"metadata":{"trusted":true,"_uuid":"80ad8d7cc9993a07b3f77fa6de5538f4d4439111"},"cell_type":"code","source":"import tensorflow as tf\nimport tflearn\nfrom tflearn.layers.conv import conv_2d, max_pool_2d\nfrom tflearn.layers.core import input_data, dropout, fully_connected\nfrom tflearn.layers.estimator import regression\ntf.reset_default_graph()\nconvnet = input_data(shape=[None, 200, 200, 3], name='input')\n\nconvnet = conv_2d(convnet, 32, 5, activation='relu')\nconvnet = max_pool_2d(convnet, 5)\n\nconvnet = conv_2d(convnet, 64, 5, activation='relu')\nconvnet = max_pool_2d(convnet, 5)\n\nconvnet = conv_2d(convnet, 128, 5, activation='relu')\nconvnet = max_pool_2d(convnet, 5)\n\nconvnet = conv_2d(convnet, 64, 5, activation='relu')\nconvnet = max_pool_2d(convnet, 5)\n\nconvnet = conv_2d(convnet, 32, 5, activation='relu')\nconvnet = max_pool_2d(convnet, 5)\n\nconvnet = fully_connected(convnet, 1024, activation='relu')\nconvnet = dropout(convnet, 0.8)\n\nconvnet = fully_connected(convnet, 2, activation='softmax')\nconvnet = regression(convnet, optimizer='adam', learning_rate=0.001, loss='categorical_crossentropy', name='targets')\n\nmodel = tflearn.DNN(convnet)\nmodel.fit(x, Y, n_epoch=100, validation_set=0.3,show_metric=True) ","execution_count":null,"outputs":[]},{"metadata":{"trusted":true,"_uuid":"41e357f2f6025912ff38c8d53334b896a734b24b","collapsed":true},"cell_type":"code","source":"TEST_DIR=\"../input/test\"\n\ndef process_test_data():\n    testing_data = []\n    for img in os.listdir(TEST_DIR):\n        path = os.path.join(TEST_DIR,img)\n        img_num = img.split('.')[0]\n        img = cv2.imread(path)\n        img = cv2.resize(img, (200,200))\n        testing_data.append([np.array(img),img_num])\n    return testing_data","execution_count":null,"outputs":[]},{"metadata":{"trusted":true,"_uuid":"ad00f70768c676944dfe2be431344b5ce97300ac"},"cell_type":"code","source":"w=process_test_data()","execution_count":null,"outputs":[]},{"metadata":{"trusted":true,"_uuid":"77caf01f8a07fbf6000e5989497a370af5f3ab69","collapsed":true},"cell_type":"code","source":"z=np.array(w)","execution_count":null,"outputs":[]},{"metadata":{"trusted":true,"_uuid":"a8f869a5debc7680cf1b557211722ae3835dc10c"},"cell_type":"code","source":"pridic=model.predict([z[1][0]])\nprint(pridic)","execution_count":null,"outputs":[]},{"metadata":{"trusted":true,"_uuid":"d65f465c04839a0817246383e25a418cc491bca7"},"cell_type":"code","source":"np.argmax(pridic)","execution_count":null,"outputs":[]},{"metadata":{"trusted":true,"_uuid":"5e78902efbf49a978a973792c2aa3bad0e8e95d2","collapsed":true,"_kg_hide-output":false,"_kg_hide-input":false},"cell_type":"code","source":"with open('submission_file.csv','w') as f:\n    f.write('id,label\\n')\n            \nwith open('submission_file.csv','a') as f:\n    for data in z:\n        img_num = data[1]\n        img_data = data[0]\n        orig = img_data\n        data = img_data.reshape(200,200,3)\n        model_out = model.predict([data])[0]\n        f.write('{},{}\\n'.format(img_num,model_out[1]))","execution_count":null,"outputs":[]},{"metadata":{"_kg_hide-output":true,"trusted":true,"_uuid":"a5b2b7750765d0142263d75836f568bd9ab2a4e8","collapsed":true},"cell_type":"code","source":"import pandas as pd","execution_count":null,"outputs":[]},{"metadata":{"trusted":true,"collapsed":true,"_uuid":"07580cb615526e152c5f84f35d95f926fe08e108"},"cell_type":"code","source":"df2 = pd.read_csv(\"submission_file.csv\")","execution_count":null,"outputs":[]},{"metadata":{"trusted":true,"_uuid":"20410bbfe3f2d84178cffb6f57c4de3accb9c60f"},"cell_type":"code","source":"print(df2.head(5))\n","execution_count":null,"outputs":[]},{"metadata":{"trusted":true,"collapsed":true,"_uuid":"4164f8831b5a8afaf44f12709f9bac5234fdf95e"},"cell_type":"code","source":"from IPython.display import HTML\nimport pandas as pd\nimport numpy as np\nimport base64\n\n# function that takes in a dataframe and creates a text link to  \n# download it (will only work for files < 2MB or so)\ndef create_download_link(df, title = \"Download CSV file\", filename = \"submission_file.csv\"):  \n    csv = df.to_csv()\n    b64 = base64.b64encode(csv.encode())\n    payload = b64.decode()\n    html = '<a download=\"{filename}\" href=\"data:text/csv;base64,{payload}\" target=\"_blank\">{title}</a>'\n    html = html.format(payload=payload,title=title,filename=filename)\n    return HTML(html)\n\ndf2 = pd.read_csv(\"submission_file.csv\")\n\n# create a link to download the dataframe\ncreate_download_link(df2)\n","execution_count":null,"outputs":[]},{"metadata":{"trusted":true,"collapsed":true,"_uuid":"fdef9994e4977519d771f5082e18df2ccd9e9a46"},"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}