{"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":"from google.colab import drive\ndrive.mount(\"/content/gdrive\")","metadata":{"id":"bcVzZmDpMFak","outputId":"a46ff6bc-d5ff-4f07-d163-0fef050161d0"},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"!unzip \"/content/gdrive/My Drive/data_upload_v3.zip\"","metadata":{"id":"76bLzbTQPGX7"},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"train_path = 'data_upload_v3/train'\ntest_path = 'data_upload_v3/test'","metadata":{"id":"LKPZN-s9Qm-8","execution":{"iopub.status.busy":"2021-07-31T15:43:04.624382Z","iopub.execute_input":"2021-07-31T15:43:04.625198Z","iopub.status.idle":"2021-07-31T15:43:04.643823Z","shell.execute_reply.started":"2021-07-31T15:43:04.625091Z","shell.execute_reply":"2021-07-31T15:43:04.642826Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"import numpy as np\nimport matplotlib.pyplot as plt\nimport keras\nfrom keras.layers import *\nfrom keras.models import *\nfrom keras_preprocessing import image","metadata":{"id":"nDpS8ImYQpI4","execution":{"iopub.status.busy":"2021-07-31T15:43:26.774966Z","iopub.execute_input":"2021-07-31T15:43:26.775292Z","iopub.status.idle":"2021-07-31T15:43:31.126617Z","shell.execute_reply.started":"2021-07-31T15:43:26.775263Z","shell.execute_reply":"2021-07-31T15:43:31.125712Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"why layer architecture are helpful.","metadata":{"id":"A6zMkGG8SR1C"}},{"cell_type":"code","source":"# CNN Based Model in keras\n\nmodel = Sequential()\nmodel.add(Conv2D(32 , kernel_size=(3,3) , activation='relu' , input_shape = (224,224,3)))\nmodel.add(Conv2D(64 , (3,3) , activation='relu'))\nmodel.add(MaxPooling2D(pool_size=(2,2)))\nmodel.add(Dropout(0.25))\n\nmodel.add(Conv2D(64 , (3,3) , activation='relu'))\nmodel.add(MaxPooling2D(pool_size=(2,2)))\nmodel.add(Dropout(0.25))\n\nmodel.add(Conv2D(128 , (3,3) , activation='relu'))\nmodel.add(MaxPooling2D(pool_size=(2,2)))\nmodel.add(Dropout(0.25))\n\nmodel.add(Flatten())\nmodel.add(Dense(64,activation='relu'))\nmodel.add(Dropout(0.5))\nmodel.add(Dense(1,activation='sigmoid'))\n\nmodel.compile(loss = keras.losses.binary_crossentropy , optimizer = 'adam' , metrics = ['accuracy'])","metadata":{"id":"Zkbtx751SaAC","execution":{"iopub.status.busy":"2021-07-31T15:43:43.124780Z","iopub.execute_input":"2021-07-31T15:43:43.125151Z","iopub.status.idle":"2021-07-31T15:43:45.347254Z","shell.execute_reply.started":"2021-07-31T15:43:43.125116Z","shell.execute_reply":"2021-07-31T15:43:45.346426Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"model.summary()","metadata":{"id":"W_LnnHEVSKj1","outputId":"9a80da99-7da3-4206-9cbb-426438d1b03e","execution":{"iopub.status.busy":"2021-07-31T15:44:01.078861Z","iopub.execute_input":"2021-07-31T15:44:01.079184Z","iopub.status.idle":"2021-07-31T15:44:01.093628Z","shell.execute_reply.started":"2021-07-31T15:44:01.079153Z","shell.execute_reply":"2021-07-31T15:44:01.092777Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"# Train from scratches\ntrain_datagen = image.ImageDataGenerator(\n    rescale = 1./255 ,\n    shear_range = 0.2 ,\n    zoom_range = 0.2,\n    horizontal_flip = True,\n)\n\ntest_dataset = image.ImageDataGenerator(rescale = 1./255)","metadata":{"id":"wTjncx-2VejG","execution":{"iopub.status.busy":"2021-07-31T15:44:15.979240Z","iopub.execute_input":"2021-07-31T15:44:15.979574Z","iopub.status.idle":"2021-07-31T15:44:15.985219Z","shell.execute_reply.started":"2021-07-31T15:44:15.979544Z","shell.execute_reply":"2021-07-31T15:44:15.984272Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"","metadata":{"id":"iZiOeSmcqnU0"},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"train_generator = train_datagen.flow_from_directory(\n    '../input/siim-covid19-detection/train' ,\n    target_size = (224 ,224) ,\n    batch_size = 32 , \n    class_mode = 'binary')","metadata":{"id":"V-l85BNaXI7y","outputId":"271b6a05-ca61-4fed-a639-e278071cce6d","execution":{"iopub.status.busy":"2021-07-31T15:45:08.305381Z","iopub.execute_input":"2021-07-31T15:45:08.305753Z","iopub.status.idle":"2021-07-31T15:45:23.592037Z","shell.execute_reply.started":"2021-07-31T15:45:08.305723Z","shell.execute_reply":"2021-07-31T15:45:23.591208Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"train_generator.class_indices","metadata":{"id":"fz2LtIvkXryb","outputId":"a1db2235-2baf-4bd9-99e4-7574950c85ba","execution":{"iopub.status.busy":"2021-07-31T15:45:36.704139Z","iopub.execute_input":"2021-07-31T15:45:36.704522Z","iopub.status.idle":"2021-07-31T15:45:36.748662Z","shell.execute_reply.started":"2021-07-31T15:45:36.704488Z","shell.execute_reply":"2021-07-31T15:45:36.747543Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"validation_generator = test_dataset.flow_from_directory(\n    '../input/siim-covid19-detection/test' ,\n    target_size = (224 ,224) ,\n    batch_size = 32 , \n    class_mode = 'binary')","metadata":{"id":"BTjyhwC8XsKa","outputId":"d98c83bb-f6fd-45a3-cedc-63daf4065060","execution":{"iopub.status.busy":"2021-07-31T15:46:05.999493Z","iopub.execute_input":"2021-07-31T15:46:05.999830Z","iopub.status.idle":"2021-07-31T15:46:09.048472Z","shell.execute_reply.started":"2021-07-31T15:46:05.999804Z","shell.execute_reply":"2021-07-31T15:46:09.047660Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"validation_generator.class_indices","metadata":{"id":"_1JajbPzptsP","outputId":"5c2aecf5-7174-4cae-b20f-b2d254055223","execution":{"iopub.status.busy":"2021-07-31T15:46:19.258803Z","iopub.execute_input":"2021-07-31T15:46:19.259188Z","iopub.status.idle":"2021-07-31T15:46:19.295001Z","shell.execute_reply.started":"2021-07-31T15:46:19.259159Z","shell.execute_reply":"2021-07-31T15:46:19.294056Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"hist = model.fit_generator(\n    train_generator , steps_per_epoch = 10 , \n    epochs = 20,\n    validation_data = validation_generator , \n    validation_steps = 2)","metadata":{"id":"xc3WIVaPXsiq","outputId":"a970eb1c-a039-4bdc-d976-6a78e0c5060a","trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":" # Class Activation\n # Grad Cam\n model.save('Base_model_for_covid')","metadata":{"id":"3DyUXqs7XJik","outputId":"d9db6621-5572-4bcf-9d2c-7106d833d655"},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"model.evaluate_generator(train_generator)","metadata":{"id":"Sqj9QGT0seB-","outputId":"b438f62a-28ef-40d7-e789-06cff5c4c428"},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"model.evaluate_generator(validation_generator)","metadata":{"id":"sgaDB3Z5spCl"},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"","metadata":{"id":"KNkMslDoXKiH"},"execution_count":null,"outputs":[]}]}