{"cells":[{"metadata":{"_uuid":"2b862565-7109-48d3-b274-2cc4be4aee1d","_cell_guid":"350e4622-7029-40d4-8870-6c3fc2100f5b","trusted":true},"cell_type":"code","source":"\nimport numpy as np \nimport pandas as pd \nimport matplotlib.pyplot as plt\nimport cv2\nimport os\n\nimport keras \nfrom keras.layers.core import Dense, Dropout, Activation, Flatten\nfrom keras.layers.convolutional import Conv2D, MaxPooling2D, SeparableConv2D\nfrom keras.regularizers import l2\nfrom keras.optimizers import SGD, RMSprop\nfrom keras.utils import to_categorical\nfrom keras.layers.normalization import BatchNormalization\nfrom keras.utils.vis_utils import plot_model\nfrom keras.layers import Input, GlobalAveragePooling2D\nfrom keras import models\nfrom keras.models import Model\nfrom keras.utils import to_categorical\nfrom sklearn.model_selection import train_test_split","execution_count":null,"outputs":[]},{"metadata":{"_uuid":"e7e3f940-5081-4099-af53-f53f06d20cdb","_cell_guid":"1d5bb48b-2b7a-4ea4-8cb5-80329e22834f","trusted":true},"cell_type":"code","source":"covid_dir='../input/deep-learning-competition-cs-2020/train/train/COVID19 AND PNEUMONIA/'\nnormal_dir='../input/deep-learning-competition-cs-2020/train/train/NORMAL'\ncovid_imgs=[]\nlabels=[]\nimg_width=128\nimg_height=128\nfor  dirname, _, imgs in os.walk(covid_dir):\n    for img in imgs:\n        abs_path = os.path.join(dirname, img)\n        image=cv2.imread(abs_path)\n        image=cv2.resize(image,(img_width,img_height))\n        covid_imgs.append(image)\n        labels.append(1)\nfor  dirname, _, imgs in os.walk(normal_dir):\n    for img in imgs:\n        abs_path = os.path.join(dirname, img)\n        image=cv2.imread(abs_path)\n        image=cv2.resize(image,(img_width,img_height))        \n        covid_imgs.append(image)\n        labels.append(0)\nimgs=covid_imgs","execution_count":null,"outputs":[]},{"metadata":{"_uuid":"8c5ef4ea-8baa-48a3-acb2-36cd55f7caee","_cell_guid":"2aaf9a57-6a09-4e2b-a952-72604f9fe3ce","trusted":true},"cell_type":"code","source":"test_dir='../input/deep-learning-competition-cs-2020/test/test'\ntest_imgs=[]\nimg_names=[]\nfor  dirname, _, imgs in os.walk(test_dir):\n    for img in imgs:\n        abs_path = os.path.join(dirname, img)\n        img_names.append(img)\n        image=cv2.imread(abs_path)\n        image=cv2.resize(image,(img_width,img_height))\n        test_imgs.append(image)","execution_count":null,"outputs":[]},{"metadata":{"_uuid":"aaa1a88c-4708-438a-83fe-22a7ecb28ea5","_cell_guid":"d0c566d6-2064-4a0b-98aa-034af570c738","trusted":true},"cell_type":"code","source":"test_imgs=np.array(test_imgs)","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"print(len(covid_imgs))","execution_count":null,"outputs":[]},{"metadata":{"_uuid":"4329763a-d30e-4204-963e-8de6f6539ed7","_cell_guid":"b99cc356-671e-4bc8-925b-073f16beeca1","trusted":true},"cell_type":"code","source":"X_train, X_test, y_train, y_test = train_test_split(covid_imgs, labels, test_size=0.3, random_state=42,stratify=labels)\nx_train=np.array(X_train)\nx_test=np.array(X_test)\ny_train=np.array(y_train)\ny_test=np.array(y_test)","execution_count":null,"outputs":[]},{"metadata":{"_uuid":"d8dd307a-08e3-4562-bbd6-9183e7948ea9","_cell_guid":"0b632d87-268c-4558-92a0-97cdc8425113","trusted":true},"cell_type":"code","source":"y_train=to_categorical(y_train) \ny_test=to_categorical(y_test)","execution_count":null,"outputs":[]},{"metadata":{"_uuid":"b6d7e08a-bd16-440d-ba80-bdd0814b6dd5","_cell_guid":"b4dfed98-a9de-4a0c-9df0-f5cefa83dc3e","trusted":true},"cell_type":"code","source":"input_img = Input(shape=(img_width, img_height, 3))\nlayer_1 = Conv2D(10, (1,1), padding='same', activation='relu')(input_img)\nlayer_1 = Conv2D(10, (3,3), padding='same', activation='relu')(layer_1)\nlayer_2 = Conv2D(10, (1,1), padding='same', activation='relu')(input_img)\nlayer_2 = Conv2D(10, (5,5), padding='same', activation='relu')(layer_2)\nlayer_3 = MaxPooling2D((3,3), strides=(1,1), padding='same')(input_img)\nlayer_3 = Conv2D(10, (1,1), padding='same', activation='relu')(layer_3)\nmid_1 = keras.layers.concatenate([layer_1, layer_2, layer_3], axis = 3)\nflat_1 = Flatten()(mid_1)\ndense_1 = Dense(400, activation='relu')(flat_1)\ndense_2 = Dense(200, activation='relu')(dense_1)\ndense_3 = Dense(100, activation='relu')(dense_2)\noutput = Dense(2, activation='softmax')(dense_3)","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"model = Model([input_img], output)","execution_count":null,"outputs":[]},{"metadata":{"_uuid":"259cd15e-40d6-4559-9345-9564f778cec0","_cell_guid":"330f2af3-9006-45ff-84fd-9262dd6db839","trusted":true},"cell_type":"code","source":"model.compile(optimizer='adam', loss='categorical_crossentropy', metrics=['accuracy'])\n","execution_count":null,"outputs":[]},{"metadata":{"_uuid":"723513a7-5128-435f-8244-10477c261ce6","_cell_guid":"e089e386-e596-4850-bbdf-1e4a6a31ca16","trusted":true},"cell_type":"code","source":"ThisModel = model.fit(x_train, y_train, epochs=20,batch_size=64,verbose=1,validation_data=(x_test, y_test))","execution_count":null,"outputs":[]},{"metadata":{"_uuid":"63101fa7-d391-4ef6-aec9-6ab6e0dc13c8","_cell_guid":"8fcd7da0-55c6-4fea-8e11-8cd0b4d37153","trusted":true},"cell_type":"code","source":"ModelLoss, ModelAccuracy = model.evaluate(x_test, y_test)","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"print(ModelAccuracy)","execution_count":null,"outputs":[]},{"metadata":{"_uuid":"179caf52-c8e2-4e9e-8ce6-64ded55a6aee","_cell_guid":"e5b7c97d-ed35-4fa1-b092-5e3ad2ef9d8e","trusted":true},"cell_type":"code","source":"y_pred = model.predict(test_imgs)","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"y_pred=[np.argmax(i) for i in y_pred]","execution_count":null,"outputs":[]},{"metadata":{"_uuid":"8dffe11f-23b0-407c-8411-d28dd9c26fe0","_cell_guid":"edce873c-1c08-45d2-bf47-8841071d0c7b","trusted":true},"cell_type":"code","source":"data = list(zip(img_names, y_pred))\nsubmission_df = pd.DataFrame(data, columns=['Image','Label'])\nsubmission_df.head()\nsubmission_df.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":4}