{"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":"markdown","source":"# Histopathologic Cancer Detection with CNN Models","metadata":{}},{"cell_type":"markdown","source":"## Exploratory Data Analysis\n\nCancerous cells have at least one tumour cells in the center 32x32 region.","metadata":{}},{"cell_type":"code","source":"import numpy as np\nimport pandas as pd\nfrom collections import defaultdict\nimport matplotlib.pylab as plt\nimport seaborn as sns\n\nfrom tifffile import imread\n\nimport tensorflow as tf\nimport tensorflow.keras as keras\nfrom keras.models import Sequential\nfrom keras.layers import Dense, Conv2D, MaxPool2D , Flatten, BatchNormalization, Activation, Dropout\nfrom keras.preprocessing.image import ImageDataGenerator\nfrom keras.optimizers import Adam\n\nimport os\n#!pip install visualkeras\n#import visualkeras\nfrom skimage import draw","metadata":{"execution":{"iopub.status.busy":"2023-03-25T17:00:51.530805Z","iopub.execute_input":"2023-03-25T17:00:51.532583Z","iopub.status.idle":"2023-03-25T17:00:51.540699Z","shell.execute_reply.started":"2023-03-25T17:00:51.532540Z","shell.execute_reply":"2023-03-25T17:00:51.539162Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"base_dir = '/kaggle/input/histopathologic-cancer-detection'\ntrain_dir, test_dir = f'{base_dir}/train/', f'{base_dir}/test/'\nntrain, ntest = len(os.listdir(train_dir)), len(os.listdir(test_dir))\nprint(f'#training images = {ntrain}, #test inages={ntest}')","metadata":{"execution":{"iopub.status.busy":"2023-03-25T17:00:55.684326Z","iopub.execute_input":"2023-03-25T17:00:55.684998Z","iopub.status.idle":"2023-03-25T17:01:00.643414Z","shell.execute_reply.started":"2023-03-25T17:00:55.684957Z","shell.execute_reply":"2023-03-25T17:01:00.642123Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"train_df = pd.read_csv(f'{base_dir}/train_labels.csv')\ntrain_df['label'] = train_df['label'].astype(str)\ntrain_df['id'] = train_df['id'] + '.tif'\ntrain_df.head()","metadata":{"execution":{"iopub.status.busy":"2023-03-25T17:01:00.645335Z","iopub.execute_input":"2023-03-25T17:01:00.645838Z","iopub.status.idle":"2023-03-25T17:01:01.292629Z","shell.execute_reply.started":"2023-03-25T17:01:00.645798Z","shell.execute_reply":"2023-03-25T17:01:01.291639Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"imread(f'{train_dir}/{train_df.id[0]}').shape","metadata":{"execution":{"iopub.status.busy":"2023-03-24T10:07:34.685531Z","iopub.execute_input":"2023-03-24T10:07:34.687863Z","iopub.status.idle":"2023-03-24T10:07:34.714611Z","shell.execute_reply.started":"2023-03-24T10:07:34.687824Z","shell.execute_reply":"2023-03-24T10:07:34.713657Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"sns.displot(data=train_df, x='label', hue='label')\n#train_df['label'] = train_df['label'].astype(int)\ntrain_df['label'].value_counts()","metadata":{"execution":{"iopub.status.busy":"2023-03-23T21:41:38.884999Z","iopub.execute_input":"2023-03-23T21:41:38.885419Z","iopub.status.idle":"2023-03-23T21:41:39.616969Z","shell.execute_reply.started":"2023-03-23T21:41:38.885385Z","shell.execute_reply":"2023-03-23T21:41:39.615628Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"def plot_images(df, label, n=100):\n  row, col = draw.rectangle_perimeter(start=(96//2-32//2,96//2-32//2), end=(96//2+32//2,96//2+32//2))\n  df_sub = df.loc[df.label == label].sample(n)\n  imfiles = df_sub['id'].values\n  plt.figure(figsize=(15,15))\n  for i in range(n):\n    im = imread(f'{train_dir}/{imfiles[i]}')\n    for j in range(-1,2):\n        im[row+j, col+j, :] = [0, 255, 0]\n    plt.subplot(10,10,i+1)\n    plt.imshow(im)\n    plt.axis('off')\n  plt.suptitle(f'sample train images with label = {label} (highlighting the center 32x32 region)', size=20)\n  plt.tight_layout()\n  plt.show()\n\nfor label in train_df.label.unique():\n  plot_images(train_df, label)","metadata":{"execution":{"iopub.status.busy":"2023-03-23T21:27:21.520203Z","iopub.execute_input":"2023-03-23T21:27:21.520640Z","iopub.status.idle":"2023-03-23T21:27:30.465489Z","shell.execute_reply.started":"2023-03-23T21:27:21.520600Z","shell.execute_reply":"2023-03-23T21:27:30.464326Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"batch_size, im_size = 256, (96,96)\n\ngenerator = ImageDataGenerator(rescale=1./255, validation_split=0.25)\ntrain_data = generator.flow_from_dataframe(\n    dataframe = train_df,\n    x_col = 'id', # filenames\n    y_col = 'label', # labels\n    directory = train_dir,\n    subset = 'training',\n    class_mode = 'binary',\n    batch_size = batch_size,\n    target_size = im_size)\n\nval_data = generator.flow_from_dataframe(\n    dataframe = train_df,\n    x_col = 'id', # filenames\n    y_col = 'label', # labels\n    directory = train_dir,\n    subset = \"validation\",\n    class_mode = 'binary',\n    batch_size = batch_size,\n    target_size = im_size)","metadata":{"execution":{"iopub.status.busy":"2023-03-25T17:01:16.613705Z","iopub.execute_input":"2023-03-25T17:01:16.614105Z","iopub.status.idle":"2023-03-25T17:05:33.062016Z","shell.execute_reply.started":"2023-03-25T17:01:16.614074Z","shell.execute_reply":"2023-03-25T17:05:33.060891Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"## Baseline Models","metadata":{}},{"cell_type":"code","source":"class ConvBlock(tf.keras.layers.Layer):\n    def __init__(self, n_filter, kernel_sz=(3,3), activation='relu', pool_sz=(2,2), batch_norm=False):\n        super(ConvBlock, self).__init__()\n        self.batch_norm = batch_norm\n        self.conv_1 = Conv2D(n_filter, kernel_sz, activation=activation)\n        self.bn_1 = BatchNormalization()\n        self.conv_2 = Conv2D(n_filter, kernel_sz, activation=activation)\n        self.bn_2 = BatchNormalization()\n        self.pool = MaxPool2D(pool_size=pool_sz)\n\n    def call(self, x):\n        x = self.conv_1(x)\n        if self.batch_norm:\n          x = self.bn_1(x)\n          x = tf.keras.layers.ReLU()(x)\n        x = self.conv_2(x)\n        if self.batch_norm:\n          x = self.bn_2(x)\n          x = tf.keras.layers.ReLU()(x)\n        return self.pool(x)\n\nclass TopBlock(tf.keras.layers.Layer):\n    def __init__(self, n_units=256, activation='relu', drop_out=False, drop_rate=0.5):\n        super(TopBlock, self).__init__()\n        self.drop_out = drop_out\n        self.flat  = tf.keras.layers.Flatten()\n        self.dropout = Dropout(drop_rate)\n        self.dense = tf.keras.layers.Dense(n_units, activation=activation)\n        self.classifier = tf.keras.layers.Dense(1, activation='sigmoid')\n\n    def call(self, x, training=False):\n        x = self.flat(x)\n        #if training:\n        #  x = self.dropout(x)\n        x = self.dense(x)\n        return self.classifier(x)","metadata":{"execution":{"iopub.status.busy":"2023-03-25T20:50:36.947375Z","iopub.execute_input":"2023-03-25T20:50:36.948103Z","iopub.status.idle":"2023-03-25T20:50:36.961243Z","shell.execute_reply.started":"2023-03-25T20:50:36.948057Z","shell.execute_reply":"2023-03-25T20:50:36.959935Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"class CNNModel1(tf.keras.Model):\n    def __init__(self):\n        super(CNNModel1, self).__init__()\n        self.conv_block_1 = ConvBlock(16)\n        self.conv_block_2 = ConvBlock(32)\n        # model top\n        self.top_block = TopBlock(n_units=256)\n\n    def call(self, inputs, training=False, **kwargs):\n        # forward pass \n        x = self.conv_block_1(inputs)\n        x = self.conv_block_2(x)\n        return self.top_block(x)       \n\nmodel1 = CNNModel1()\nmodel1.build(input_shape=(batch_size,im_size[0],im_size[1],3))\nmodel1.summary()","metadata":{"execution":{"iopub.status.busy":"2023-03-25T20:50:39.730609Z","iopub.execute_input":"2023-03-25T20:50:39.731240Z","iopub.status.idle":"2023-03-25T20:50:40.194763Z","shell.execute_reply.started":"2023-03-25T20:50:39.731202Z","shell.execute_reply":"2023-03-25T20:50:40.193903Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"The above model can be defined using `keras` Sequential()` too and then it can be visualized as shown.","metadata":{}},{"cell_type":"code","source":"def get_color_map():\n    color_map = defaultdict(dict)\n    color_map[Conv2D]['fill'] = 'lightblue'\n    color_map[Dropout]['fill'] = 'pink'\n    color_map[keras.layers.MaxPooling2D]['fill'] = 'lightsalmon'\n    color_map[Dense]['fill'] = 'lightgreen'\n    color_map[Flatten]['fill'] = 'bisque'\n    return color_map","metadata":{"execution":{"iopub.status.busy":"2023-03-25T17:08:02.199883Z","iopub.execute_input":"2023-03-25T17:08:02.200441Z","iopub.status.idle":"2023-03-25T17:08:02.207557Z","shell.execute_reply.started":"2023-03-25T17:08:02.200403Z","shell.execute_reply":"2023-03-25T17:08:02.206436Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"#visualkeras.layered_view(model1, color_map=color_map)","metadata":{"execution":{"iopub.status.busy":"2023-03-25T16:59:00.611096Z","iopub.execute_input":"2023-03-25T16:59:00.611481Z","iopub.status.idle":"2023-03-25T16:59:00.675234Z","shell.execute_reply.started":"2023-03-25T16:59:00.611447Z","shell.execute_reply":"2023-03-25T16:59:00.674256Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"![model1.png](attachment:49a2a17a-62a5-473d-8407-c2fd4c916ef0.png)","metadata":{},"attachments":{"49a2a17a-62a5-473d-8407-c2fd4c916ef0.png":{"image/png":"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"}}},{"cell_type":"code","source":"def plot_hist(hist):\n    plt.figure(figsize=(10,5))\n    plt.subplot(121)\n    plt.plot(hist.history[\"accuracy\"])\n    plt.plot(hist.history['val_accuracy'])\n    plt.legend([\"Accuracy\",\"Validation Accuracy\"])\n    plt.ylabel(\"Accuracy\")\n    plt.xlabel(\"Epoch\")\n    plt.grid()\n    plt.subplot(122)\n    plt.plot(hist.history['loss'])\n    plt.plot(hist.history['val_loss'])\n    plt.title(\"Model Evaluation\")\n    plt.ylabel(\"Loss\")\n    plt.xlabel(\"Epoch\")\n    plt.grid()\n    plt.legend([\"Loss\",\"Validation Loss\"])\n    #plt.suptitle(\"Model Evaluation\")\n    plt.tight_layout()\n    plt.show()","metadata":{"execution":{"iopub.status.busy":"2023-03-25T17:06:59.238515Z","iopub.execute_input":"2023-03-25T17:06:59.239230Z","iopub.status.idle":"2023-03-25T17:06:59.249277Z","shell.execute_reply.started":"2023-03-25T17:06:59.239189Z","shell.execute_reply":"2023-03-25T17:06:59.246397Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"opt = Adam(learning_rate=0.0001)\nmodel1.compile(optimizer=opt, loss='binary_crossentropy', metrics=['accuracy', tf.keras.metrics.AUC()])\nhist = model1.fit(train_data, validation_data=val_data, epochs=10)\nplot_hist(hist)","metadata":{"execution":{"iopub.status.busy":"2023-03-24T05:04:56.815749Z","iopub.execute_input":"2023-03-24T05:04:56.816833Z","iopub.status.idle":"2023-03-24T06:19:47.527800Z","shell.execute_reply.started":"2023-03-24T05:04:56.816797Z","shell.execute_reply":"2023-03-24T06:19:47.526568Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"def create_submission_csv(test_dir, model):\n    images_test = pd.DataFrame({'id':os.listdir(test_dir)})\n    generator_test = ImageDataGenerator(rescale=1./255) # scale the test images to have pixel values in [0-1]\n\n    test_data = generator_test.flow_from_dataframe(\n        dataframe = images_test,\n        x_col='id', # filenames\n        directory=test_dir,\n        class_mode=None,\n        batch_size=1,\n        target_size=im_size,\n        shuffle=False)\n\n    # predict with the model\n    predictions = model.predict(test_data, verbose=1)\n    # create submission dataframe for kaggle submission\n    submission_df = pd.DataFrame()\n    submission_df['id'] = images_test['id'].apply(lambda x: x.split('.')[0])\n    submission_df['label'] = list(map(lambda x: 0 if x < 0.5 else 1, predictions.squeeze()))\n\n    submission_df['label'].value_counts()\n    submission_df.to_csv('submission.csv', index=False)\n    return submission_df","metadata":{"execution":{"iopub.status.busy":"2023-03-25T20:12:33.072123Z","iopub.execute_input":"2023-03-25T20:12:33.072901Z","iopub.status.idle":"2023-03-25T20:12:33.081346Z","shell.execute_reply.started":"2023-03-25T20:12:33.072859Z","shell.execute_reply":"2023-03-25T20:12:33.079862Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"submission_df = create_submission_csv(test_dir, model1)","metadata":{},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"class CNNModel2(tf.keras.Model):\n    def __init__(self):\n        super(CNNModel2, self).__init__()\n        # the first conv module\n        self.conv_block_1 = ConvBlock(16, batch_norm=True)\n        # the second conv module\n        self.conv_block_2 = ConvBlock(32, batch_norm=True)\n        # model top\n        self.top_block = TopBlock(n_units=256)\n\n    def call(self, inputs, training=False, **kwargs):\n        # forward pass \n        x = self.conv_block_1(inputs)\n        x = self.conv_block_2(x)\n        return self.top_block(x)       \n\nmodel2 = CNNModel2()\nmodel2.build(input_shape=(batch_size,im_size[0],im_size[1],3))\nmodel2.summary()","metadata":{"execution":{"iopub.status.busy":"2023-03-25T22:14:41.126148Z","iopub.execute_input":"2023-03-25T22:14:41.126802Z","iopub.status.idle":"2023-03-25T22:14:41.372379Z","shell.execute_reply.started":"2023-03-25T22:14:41.126761Z","shell.execute_reply":"2023-03-25T22:14:41.371505Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"opt = Adam(learning_rate=0.0001)\nmodel2.compile(optimizer=opt, loss='binary_crossentropy', metrics=['accuracy', tf.keras.metrics.AUC()])\nhist = model2.fit(train_data, validation_data=val_data, epochs=10)","metadata":{"execution":{"iopub.status.busy":"2023-03-25T22:14:42.895595Z","iopub.execute_input":"2023-03-25T22:14:42.896634Z","iopub.status.idle":"2023-03-25T23:27:19.692112Z","shell.execute_reply.started":"2023-03-25T22:14:42.896596Z","shell.execute_reply":"2023-03-25T23:27:19.687130Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"plot_hist(hist)","metadata":{"execution":{"iopub.status.busy":"2023-03-25T23:27:19.702342Z","iopub.execute_input":"2023-03-25T23:27:19.702992Z","iopub.status.idle":"2023-03-25T23:27:20.195586Z","shell.execute_reply.started":"2023-03-25T23:27:19.702945Z","shell.execute_reply":"2023-03-25T23:27:20.194635Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"submission_df = create_submission_csv(test_dir, model2)\nsubmission_df.head()","metadata":{"execution":{"iopub.status.busy":"2023-03-24T12:17:12.315223Z","iopub.execute_input":"2023-03-24T12:17:12.315833Z","iopub.status.idle":"2023-03-24T12:31:33.316983Z","shell.execute_reply.started":"2023-03-24T12:17:12.315792Z","shell.execute_reply":"2023-03-24T12:31:33.315494Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"## VGG16 Backbone","metadata":{}},{"cell_type":"code","source":"base_model = tf.keras.applications.VGG16(\n    input_shape=(im_size[0],im_size[1],3), \n    include_top=False, \n    weights='imagenet'\n)\n\n#color_map = get_color_map()\n#visualkeras.layered_view(base_model, color_map=color_map, legend=True)","metadata":{"execution":{"iopub.status.busy":"2023-03-25T17:10:06.930440Z","iopub.execute_input":"2023-03-25T17:10:06.931176Z","iopub.status.idle":"2023-03-25T17:10:07.261055Z","shell.execute_reply.started":"2023-03-25T17:10:06.931137Z","shell.execute_reply":"2023-03-25T17:10:07.260010Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"![vgg16.png](attachment:66b20712-27f9-437e-ad9a-e3c97b55a636.png)","metadata":{},"attachments":{"66b20712-27f9-437e-ad9a-e3c97b55a636.png":{"image/png":"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"}}},{"cell_type":"code","source":"np.random.seed(1)\ntf.random.set_seed(1)\nmodel_vgg16 = Sequential([\n    base_model,\n    Flatten(),    \n    BatchNormalization(),\n    Dense(16, activation='relu'),\n    Dropout(0.3),\n    Dense(8, activation='relu'),\n    Dropout(0.3),\n    BatchNormalization(),\n    Dense(1, activation='sigmoid')\n], name='vgg16_backbone')\nmodel_vgg16.summary()","metadata":{"execution":{"iopub.status.busy":"2023-03-25T23:30:26.041048Z","iopub.execute_input":"2023-03-25T23:30:26.042243Z","iopub.status.idle":"2023-03-25T23:30:29.183538Z","shell.execute_reply.started":"2023-03-25T23:30:26.042186Z","shell.execute_reply":"2023-03-25T23:30:29.182752Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"### Transfer Learning / Fine Tuning","metadata":{}},{"cell_type":"code","source":"opt = tf.keras.optimizers.Adam(0.001)\nbase_model.trainable = False\nmodel_vgg16.compile(loss='binary_crossentropy', optimizer=opt, metrics=['accuracy', tf.keras.metrics.AUC()])","metadata":{"execution":{"iopub.status.busy":"2023-03-25T23:30:29.185445Z","iopub.execute_input":"2023-03-25T23:30:29.185848Z","iopub.status.idle":"2023-03-25T23:30:29.218534Z","shell.execute_reply.started":"2023-03-25T23:30:29.185807Z","shell.execute_reply":"2023-03-25T23:30:29.217629Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"%%time \nhist = model_vgg16.fit(train_data, epochs = 20, validation_data = val_data, verbose=1)","metadata":{"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"plot_hist(hist)","metadata":{"execution":{"iopub.status.busy":"2023-03-24T07:21:24.117201Z","iopub.execute_input":"2023-03-24T07:21:24.117498Z","iopub.status.idle":"2023-03-24T07:21:24.539713Z","shell.execute_reply.started":"2023-03-24T07:21:24.117470Z","shell.execute_reply":"2023-03-24T07:21:24.538550Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"## Training from Scratch","metadata":{}},{"cell_type":"code","source":"base_model.trainable = True\nmodel_vgg16.compile(loss='binary_crossentropy', optimizer=opt, metrics=['accuracy', tf.keras.metrics.AUC()])","metadata":{"execution":{"iopub.status.busy":"2023-03-25T01:53:24.009571Z","iopub.execute_input":"2023-03-25T01:53:24.010219Z","iopub.status.idle":"2023-03-25T01:53:24.027591Z","shell.execute_reply.started":"2023-03-25T01:53:24.010180Z","shell.execute_reply":"2023-03-25T01:53:24.026561Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"%%time \nhist = model_vgg16.fit(train_data, epochs = 20, validation_data = val_data, verbose=1)","metadata":{"execution":{"iopub.status.busy":"2023-03-25T01:53:24.551536Z","iopub.execute_input":"2023-03-25T01:53:24.553427Z","iopub.status.idle":"2023-03-25T04:45:51.003373Z","shell.execute_reply.started":"2023-03-25T01:53:24.553367Z","shell.execute_reply":"2023-03-25T04:45:51.002360Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"plot_hist(hist)","metadata":{"execution":{"iopub.status.busy":"2023-03-25T04:45:51.005987Z","iopub.execute_input":"2023-03-25T04:45:51.006453Z","iopub.status.idle":"2023-03-25T04:45:51.427079Z","shell.execute_reply.started":"2023-03-25T04:45:51.006412Z","shell.execute_reply":"2023-03-25T04:45:51.426126Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"submission_df = create_submission_csv(test_dir, model_vgg16)\nsubmission_df.head()","metadata":{"execution":{"iopub.status.busy":"2023-03-25T04:45:51.428641Z","iopub.execute_input":"2023-03-25T04:45:51.429668Z","iopub.status.idle":"2023-03-25T04:54:23.028809Z","shell.execute_reply.started":"2023-03-25T04:45:51.429627Z","shell.execute_reply":"2023-03-25T04:54:23.025017Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"## VGG19 Backbone","metadata":{}},{"cell_type":"code","source":"base_model = tf.keras.applications.VGG19(\n    input_shape=(im_size[0],im_size[1],3), \n    include_top=False, \n    weights='imagenet'\n)\n#color_map = get_color_map()\n#visualkeras.layered_view(base_model, color_map=color_map, legend=True)","metadata":{"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"![vgg19.png](attachment:c7fa0523-b440-4291-904b-08f02c608c1f.png)","metadata":{},"attachments":{"c7fa0523-b440-4291-904b-08f02c608c1f.png":{"image/png":"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"}}},{"cell_type":"code","source":"np.random.seed(1)\ntf.random.set_seed(1)\n\nmodel_vgg19 = Sequential([\n    base_model,\n    Flatten(),    \n    BatchNormalization(),\n    Dense(16, activation='relu'),\n    Dropout(0.3),\n    Dense(8, activation='relu'),\n    Dropout(0.3),\n    BatchNormalization(),\n    Dense(1, activation='sigmoid')\n], name='vgg19_backbone')\n\nmodel_vgg19.summary()","metadata":{"execution":{"iopub.status.busy":"2023-03-24T22:17:58.145005Z","iopub.execute_input":"2023-03-24T22:17:58.146062Z","iopub.status.idle":"2023-03-24T22:17:58.372156Z","shell.execute_reply.started":"2023-03-24T22:17:58.146019Z","shell.execute_reply":"2023-03-24T22:17:58.371239Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"## Training from Scratch","metadata":{}},{"cell_type":"code","source":"opt = tf.keras.optimizers.Adam(0.001)\nbase_model.trainable = True\nmodel_vgg19.compile(loss='binary_crossentropy', optimizer=opt, metrics=['accuracy', tf.keras.metrics.AUC()])","metadata":{"execution":{"iopub.status.busy":"2023-03-24T22:18:00.748420Z","iopub.execute_input":"2023-03-24T22:18:00.749090Z","iopub.status.idle":"2023-03-24T22:18:00.779055Z","shell.execute_reply.started":"2023-03-24T22:18:00.749044Z","shell.execute_reply":"2023-03-24T22:18:00.778176Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"%%time \nhist = model_vgg19.fit(train_data, epochs = 20, validation_data = val_data, verbose=1)","metadata":{"execution":{"iopub.status.busy":"2023-03-24T22:18:01.203966Z","iopub.execute_input":"2023-03-24T22:18:01.204651Z","iopub.status.idle":"2023-03-25T01:37:04.681977Z","shell.execute_reply.started":"2023-03-24T22:18:01.204612Z","shell.execute_reply":"2023-03-25T01:37:04.680810Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"model_vgg19.save('model_vgg19_20.h5')","metadata":{"execution":{"iopub.status.busy":"2023-03-25T01:37:04.684373Z","iopub.execute_input":"2023-03-25T01:37:04.685184Z","iopub.status.idle":"2023-03-25T01:37:05.284573Z","shell.execute_reply.started":"2023-03-25T01:37:04.685131Z","shell.execute_reply":"2023-03-25T01:37:05.283401Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"plot_hist(hist)","metadata":{"execution":{"iopub.status.busy":"2023-03-25T01:37:05.286184Z","iopub.execute_input":"2023-03-25T01:37:05.286543Z","iopub.status.idle":"2023-03-25T01:37:05.836015Z","shell.execute_reply.started":"2023-03-25T01:37:05.286507Z","shell.execute_reply":"2023-03-25T01:37:05.835054Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"submission_df = create_submission_csv(test_dir, model_vgg19)\nsubmission_df.head()","metadata":{"execution":{"iopub.status.busy":"2023-03-25T01:39:50.516720Z","iopub.execute_input":"2023-03-25T01:39:50.517091Z","iopub.status.idle":"2023-03-25T01:49:21.292370Z","shell.execute_reply.started":"2023-03-25T01:39:50.517057Z","shell.execute_reply":"2023-03-25T01:49:21.291182Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"## ResNet50 Backbone","metadata":{}},{"cell_type":"code","source":"base_model = tf.keras.applications.ResNet50(\n    input_shape=(im_size[0],im_size[1],3), \n    include_top=False, \n    weights='imagenet'\n)\n#color_map = get_color_map()\n#visualkeras.layered_view(base_model, color_map=color_map, legend=True)","metadata":{"execution":{"iopub.status.busy":"2023-03-25T17:15:13.440278Z","iopub.execute_input":"2023-03-25T17:15:13.441196Z","iopub.status.idle":"2023-03-25T17:15:16.168822Z","shell.execute_reply.started":"2023-03-25T17:15:13.441141Z","shell.execute_reply":"2023-03-25T17:15:16.167787Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"![resnet50.png](attachment:c6d2a377-c2dc-4dab-8dcf-283cbe6c5e67.png)","metadata":{},"attachments":{"c6d2a377-c2dc-4dab-8dcf-283cbe6c5e67.png":{"image/png":"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"}}},{"cell_type":"code","source":"np.random.seed(1)\ntf.random.set_seed(1)\n\nmodel_resnet50 = Sequential([\n    base_model,\n    Flatten(),    \n    BatchNormalization(),\n    Dense(16, activation='relu'),\n    Dropout(0.5),\n    Dense(8, activation='relu'),\n    Dropout(0.5),\n    BatchNormalization(),\n    Dense(1, activation='sigmoid')\n], 'resnet50_backbone')\n\nmodel_resnet50.summary()","metadata":{"execution":{"iopub.status.busy":"2023-03-25T17:15:16.170739Z","iopub.execute_input":"2023-03-25T17:15:16.171085Z","iopub.status.idle":"2023-03-25T17:15:16.782886Z","shell.execute_reply.started":"2023-03-25T17:15:16.171049Z","shell.execute_reply":"2023-03-25T17:15:16.782039Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"## Training from Scratch","metadata":{}},{"cell_type":"code","source":"base_model.trainable = True\nopt = tf.keras.optimizers.Adam(0.001)\nmodel_resnet50.compile(loss='binary_crossentropy', optimizer=opt, metrics=['accuracy', tf.keras.metrics.AUC()])","metadata":{"execution":{"iopub.status.busy":"2023-03-25T17:15:21.409733Z","iopub.execute_input":"2023-03-25T17:15:21.410489Z","iopub.status.idle":"2023-03-25T17:15:21.448631Z","shell.execute_reply.started":"2023-03-25T17:15:21.410451Z","shell.execute_reply":"2023-03-25T17:15:21.447706Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"%%time \nhist = model_resnet50.fit(train_data, validation_data=val_data, epochs=20, verbose=1)","metadata":{"execution":{"iopub.status.busy":"2023-03-25T17:15:23.029300Z","iopub.execute_input":"2023-03-25T17:15:23.029889Z","iopub.status.idle":"2023-03-25T20:06:30.237385Z","shell.execute_reply.started":"2023-03-25T17:15:23.029849Z","shell.execute_reply":"2023-03-25T20:06:30.236343Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"plot_hist(hist)","metadata":{"execution":{"iopub.status.busy":"2023-03-25T20:11:43.851866Z","iopub.execute_input":"2023-03-25T20:11:43.852250Z","iopub.status.idle":"2023-03-25T20:11:44.360982Z","shell.execute_reply.started":"2023-03-25T20:11:43.852216Z","shell.execute_reply":"2023-03-25T20:11:44.359813Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"model_resnet50.save('model_resnet50_20.h5')","metadata":{"execution":{"iopub.status.busy":"2023-03-25T20:11:57.053816Z","iopub.execute_input":"2023-03-25T20:11:57.054757Z","iopub.status.idle":"2023-03-25T20:11:58.090780Z","shell.execute_reply.started":"2023-03-25T20:11:57.054702Z","shell.execute_reply":"2023-03-25T20:11:58.089731Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"submission_df = create_submission_csv(test_dir, model_resnet50)\nsubmission_df.head()","metadata":{"execution":{"iopub.status.busy":"2023-03-25T20:12:41.648431Z","iopub.execute_input":"2023-03-25T20:12:41.648827Z","iopub.status.idle":"2023-03-25T20:25:38.457360Z","shell.execute_reply.started":"2023-03-25T20:12:41.648791Z","shell.execute_reply":"2023-03-25T20:25:38.456205Z"},"trusted":true},"execution_count":null,"outputs":[]}]}