|
|
1 |
{"cells":[{"cell_type":"code","execution_count":1,"metadata":{"id":"poHYeV3mMjlX","executionInfo":{"status":"ok","timestamp":1664608677568,"user_tz":-330,"elapsed":4064,"user":{"displayName":"Satvik Maheshwari","userId":"09768921556990219284"}}},"outputs":[],"source":["import os,sys\n","import pandas as pd\n","import numpy as np\n","import matplotlib.pyplot as plt\n","import seaborn as sns\n","from sklearn.model_selection import train_test_split\n","# import pydicom\n","# from pydicom import dcmread\n","from PIL import Image\n","import cv2\n","import tensorflow.keras.backend as K\n","# from fast_ml.model_development import train_valid_test_split"]},{"cell_type":"code","execution_count":null,"metadata":{"id":"ZMBvYPXhRRGZ"},"outputs":[],"source":["Merged = pd.read_csv('/content/drive/MyDrive/Data/Merged.csv')"]},{"cell_type":"code","execution_count":null,"metadata":{"colab":{"base_uri":"https://localhost:8080/","height":391},"executionInfo":{"elapsed":37,"status":"ok","timestamp":1663099398873,"user":{"displayName":"Satvik Maheshwari","userId":"09768921556990219284"},"user_tz":-330},"id":"LK3T9HxO-TUc","outputId":"3e82712a-1f86-40f2-988f-dc66f9084265"},"outputs":[{"output_type":"execute_result","data":{"text/plain":["<matplotlib.axes._subplots.AxesSubplot at 0x7f87dd84cd90>"]},"metadata":{},"execution_count":3},{"output_type":"display_data","data":{"text/plain":["<Figure size 504x432 with 1 Axes>"],"image/png":"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\n"},"metadata":{"needs_background":"light"}}],"source":["Merged['class'].value_counts().plot(kind='bar', figsize=(7, 6), rot=0)"]},{"cell_type":"code","execution_count":null,"metadata":{"colab":{"base_uri":"https://localhost:8080/","height":493},"executionInfo":{"elapsed":32,"status":"ok","timestamp":1663099398875,"user":{"displayName":"Satvik Maheshwari","userId":"09768921556990219284"},"user_tz":-330},"id":"Ca7T3RBtgRSb","outputId":"0a97b7dc-16a8-4550-aa10-97881d171069"},"outputs":[{"output_type":"execute_result","data":{"text/plain":[" index patientId class \\\n","0 0 0004cfab-14fd-4e49-80ba-63a80b6bddd6 No Lung Opacity / Not Normal \n","1 1 00313ee0-9eaa-42f4-b0ab-c148ed3241cd No Lung Opacity / Not Normal \n","2 2 00322d4d-1c29-4943-afc9-b6754be640eb No Lung Opacity / Not Normal \n","3 3 003d8fa0-6bf1-40ed-b54c-ac657f8495c5 Normal \n","4 4 00436515-870c-4b36-a041-de91049b9ab4 Lung Opacity \n","\n"," x y width height Target \\\n","0 0.0 0.0 0.0 0.0 0 \n","1 0.0 0.0 0.0 0.0 0 \n","2 0.0 0.0 0.0 0.0 0 \n","3 0.0 0.0 0.0 0.0 0 \n","4 264.0 152.0 213.0 379.0 1 \n","\n"," path MASK \n","0 /content/drive/MyDrive/Colab Notebooks/convert... 0.0 0.0 0.0 0.0 \n","1 /content/drive/MyDrive/Colab Notebooks/convert... 0.0 0.0 0.0 0.0 \n","2 /content/drive/MyDrive/Colab Notebooks/convert... 0.0 0.0 0.0 0.0 \n","3 /content/drive/MyDrive/Colab Notebooks/convert... 0.0 0.0 0.0 0.0 \n","4 /content/drive/MyDrive/Colab Notebooks/convert... 264.0 152.0 213.0 379.0 "],"text/html":["\n"," <div id=\"df-c44e94cc-f29e-4662-b634-9f7e7135b809\">\n"," <div class=\"colab-df-container\">\n"," <div>\n","<style scoped>\n"," .dataframe tbody tr th:only-of-type {\n"," vertical-align: middle;\n"," }\n","\n"," .dataframe tbody tr th {\n"," vertical-align: top;\n"," }\n","\n"," .dataframe thead th {\n"," text-align: right;\n"," }\n","</style>\n","<table border=\"1\" class=\"dataframe\">\n"," <thead>\n"," <tr style=\"text-align: right;\">\n"," <th></th>\n"," <th>index</th>\n"," <th>patientId</th>\n"," <th>class</th>\n"," <th>x</th>\n"," <th>y</th>\n"," <th>width</th>\n"," <th>height</th>\n"," <th>Target</th>\n"," <th>path</th>\n"," <th>MASK</th>\n"," </tr>\n"," </thead>\n"," <tbody>\n"," <tr>\n"," <th>0</th>\n"," <td>0</td>\n"," <td>0004cfab-14fd-4e49-80ba-63a80b6bddd6</td>\n"," <td>No Lung Opacity / Not Normal</td>\n"," <td>0.0</td>\n"," <td>0.0</td>\n"," <td>0.0</td>\n"," <td>0.0</td>\n"," <td>0</td>\n"," <td>/content/drive/MyDrive/Colab Notebooks/convert...</td>\n"," <td>0.0 0.0 0.0 0.0</td>\n"," </tr>\n"," <tr>\n"," <th>1</th>\n"," <td>1</td>\n"," <td>00313ee0-9eaa-42f4-b0ab-c148ed3241cd</td>\n"," <td>No Lung Opacity / Not Normal</td>\n"," <td>0.0</td>\n"," <td>0.0</td>\n"," <td>0.0</td>\n"," <td>0.0</td>\n"," <td>0</td>\n"," <td>/content/drive/MyDrive/Colab Notebooks/convert...</td>\n"," <td>0.0 0.0 0.0 0.0</td>\n"," </tr>\n"," <tr>\n"," <th>2</th>\n"," <td>2</td>\n"," <td>00322d4d-1c29-4943-afc9-b6754be640eb</td>\n"," <td>No Lung Opacity / Not Normal</td>\n"," <td>0.0</td>\n"," <td>0.0</td>\n"," <td>0.0</td>\n"," <td>0.0</td>\n"," <td>0</td>\n"," <td>/content/drive/MyDrive/Colab Notebooks/convert...</td>\n"," <td>0.0 0.0 0.0 0.0</td>\n"," </tr>\n"," <tr>\n"," <th>3</th>\n"," <td>3</td>\n"," <td>003d8fa0-6bf1-40ed-b54c-ac657f8495c5</td>\n"," <td>Normal</td>\n"," <td>0.0</td>\n"," <td>0.0</td>\n"," <td>0.0</td>\n"," <td>0.0</td>\n"," <td>0</td>\n"," <td>/content/drive/MyDrive/Colab Notebooks/convert...</td>\n"," <td>0.0 0.0 0.0 0.0</td>\n"," </tr>\n"," <tr>\n"," <th>4</th>\n"," <td>4</td>\n"," <td>00436515-870c-4b36-a041-de91049b9ab4</td>\n"," <td>Lung Opacity</td>\n"," <td>264.0</td>\n"," <td>152.0</td>\n"," <td>213.0</td>\n"," <td>379.0</td>\n"," <td>1</td>\n"," <td>/content/drive/MyDrive/Colab Notebooks/convert...</td>\n"," <td>264.0 152.0 213.0 379.0</td>\n"," </tr>\n"," </tbody>\n","</table>\n","</div>\n"," <button class=\"colab-df-convert\" onclick=\"convertToInteractive('df-c44e94cc-f29e-4662-b634-9f7e7135b809')\"\n"," title=\"Convert this dataframe to an interactive table.\"\n"," style=\"display:none;\">\n"," \n"," <svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\"viewBox=\"0 0 24 24\"\n"," width=\"24px\">\n"," <path d=\"M0 0h24v24H0V0z\" fill=\"none\"/>\n"," <path d=\"M18.56 5.44l.94 2.06.94-2.06 2.06-.94-2.06-.94-.94-2.06-.94 2.06-2.06.94zm-11 1L8.5 8.5l.94-2.06 2.06-.94-2.06-.94L8.5 2.5l-.94 2.06-2.06.94zm10 10l.94 2.06.94-2.06 2.06-.94-2.06-.94-.94-2.06-.94 2.06-2.06.94z\"/><path d=\"M17.41 7.96l-1.37-1.37c-.4-.4-.92-.59-1.43-.59-.52 0-1.04.2-1.43.59L10.3 9.45l-7.72 7.72c-.78.78-.78 2.05 0 2.83L4 21.41c.39.39.9.59 1.41.59.51 0 1.02-.2 1.41-.59l7.78-7.78 2.81-2.81c.8-.78.8-2.07 0-2.86zM5.41 20L4 18.59l7.72-7.72 1.47 1.35L5.41 20z\"/>\n"," </svg>\n"," </button>\n"," \n"," <style>\n"," .colab-df-container {\n"," display:flex;\n"," flex-wrap:wrap;\n"," gap: 12px;\n"," }\n","\n"," .colab-df-convert {\n"," background-color: #E8F0FE;\n"," border: none;\n"," border-radius: 50%;\n"," cursor: pointer;\n"," display: none;\n"," fill: #1967D2;\n"," height: 32px;\n"," padding: 0 0 0 0;\n"," width: 32px;\n"," }\n","\n"," .colab-df-convert:hover {\n"," background-color: #E2EBFA;\n"," box-shadow: 0px 1px 2px rgba(60, 64, 67, 0.3), 0px 1px 3px 1px rgba(60, 64, 67, 0.15);\n"," fill: #174EA6;\n"," }\n","\n"," [theme=dark] .colab-df-convert {\n"," background-color: #3B4455;\n"," fill: #D2E3FC;\n"," }\n","\n"," [theme=dark] .colab-df-convert:hover {\n"," background-color: #434B5C;\n"," box-shadow: 0px 1px 3px 1px rgba(0, 0, 0, 0.15);\n"," filter: drop-shadow(0px 1px 2px rgba(0, 0, 0, 0.3));\n"," fill: #FFFFFF;\n"," }\n"," </style>\n","\n"," <script>\n"," const buttonEl =\n"," document.querySelector('#df-c44e94cc-f29e-4662-b634-9f7e7135b809 button.colab-df-convert');\n"," buttonEl.style.display =\n"," google.colab.kernel.accessAllowed ? 'block' : 'none';\n","\n"," async function convertToInteractive(key) {\n"," const element = document.querySelector('#df-c44e94cc-f29e-4662-b634-9f7e7135b809');\n"," const dataTable =\n"," await google.colab.kernel.invokeFunction('convertToInteractive',\n"," [key], {});\n"," if (!dataTable) return;\n","\n"," const docLinkHtml = 'Like what you see? Visit the ' +\n"," '<a target=\"_blank\" href=https://colab.research.google.com/notebooks/data_table.ipynb>data table notebook</a>'\n"," + ' to learn more about interactive tables.';\n"," element.innerHTML = '';\n"," dataTable['output_type'] = 'display_data';\n"," await google.colab.output.renderOutput(dataTable, element);\n"," const docLink = document.createElement('div');\n"," docLink.innerHTML = docLinkHtml;\n"," element.appendChild(docLink);\n"," }\n"," </script>\n"," </div>\n"," </div>\n"," "]},"metadata":{},"execution_count":4}],"source":["Merged.head()"]},{"cell_type":"code","execution_count":null,"metadata":{"id":"LH9RS3sDN8P2"},"outputs":[],"source":["def extract_coordinates(mergedindex):\n"," lst=[]\n"," lst=mergedindex.split(' ',4)\n"," lst = [int(float(j)) for j in lst]\n"," return lst"]},{"cell_type":"code","execution_count":null,"metadata":{"id":"ro0Gb14rhXeM"},"outputs":[],"source":["def create_mask(list1):\n"," dim = np.zeros((1024,1024,))\n"," # dim.fill(0)\n"," # dim[list1[0]:list1[2],list1[1]:list1[3]]=1\n"," x,y,w,h = list1\n"," cv2.rectangle(dim,(x,y),(x+w,y+h),(255,0,0),-1)\n"," return dim"]},{"cell_type":"code","execution_count":null,"metadata":{"id":"qNYoVc3rwsW1"},"outputs":[],"source":["from tensorflow.keras.utils import Sequence\n","\n","class DataGenerator(Sequence):\n"," 'Generates data for Keras'\n"," def __init__(self, list_IDs, labels, batch_size=32, IMG_SIZE=None, n_channels=3,\n"," n_classes=2,problem_type = 'segmentation', shuffle=True):\n"," 'Initialization'\n"," self.IMG_SIZE = IMG_SIZE\n"," self.batch_size = batch_size\n"," self.labels = labels\n"," self.list_IDs = list_IDs\n"," self.n_channels = n_channels\n"," self.n_classes = n_classes\n"," self.shuffle = shuffle\n"," self.dim = (IMG_SIZE,IMG_SIZE)\n"," self.on_epoch_end()\n"," self.mapping = {k:v for k,v in zip(self.list_IDs,self.labels) }\n"," self.problem_type=problem_type\n","\n"," def __len__(self):\n"," 'Denotes the number of batches per epoch'\n"," return int(np.floor(len(self.list_IDs) / self.batch_size))\n","\n"," def __getitem__(self, index):\n"," 'Generate one batch of data'\n"," \n"," # Generate indexes of the batch\n"," indexes = self.indexes[index*self.batch_size:(index+1)*self.batch_size]\n"," # print(indexes)\n"," # Find list of IDs\n"," list_IDs_temp = [self.list_IDs[k] for k in indexes]\n"," # Generate data\n"," X, y = self.__data_generation(list_IDs_temp)\n"," return X, y\n","\n"," def on_epoch_end(self):\n"," 'Updates indexes after each epoch'\n"," self.indexes = np.arange(len(self.list_IDs))\n"," if self.shuffle == True:\n"," np.random.shuffle(self.indexes)\n","\n"," def __data_generation(self, list_IDs_temp):\n"," 'Generates data containing batch_size samples' # X : (n_samples, *dim, n_channels)\n"," # Initialization\n"," X = np.empty((self.batch_size, *self.dim, self.n_channels))\n"," y = np.empty((self.batch_size, self.n_classes,), dtype=int)\n"," # y = np.zeros(len(list_IDs_temp),self.n_classes)\n"," \n"," # Generate data\n"," for i, ID in enumerate(list_IDs_temp):\n"," # Store sample\n"," img = cv2.imread('/content/drive/MyDrive/Colab Notebooks/converted_train_images/' + ID + '.dcm.jpg')\n"," # print(cv2.resize(img,(IMG_SIZE,IMG_SIZE)).shape)\n"," img = img.astype('float16')/img.max()\n"," # cv2.normalize(img, img, 0, 255, cv2.NORM_MINMAX)\n"," # img = img/img.max()\n"," X[i,] = cv2.resize(img,(IMG_SIZE,IMG_SIZE))\n"," label = np.zeros(2)\n"," if(self.mapping[ID]==0):\n"," label[0] = 1\n"," elif(self.mapping[ID]==1):\n"," label[1] = 1\n"," y[i,] = label\n"," return X,y\n"," def __repr__(self):\n"," print(\"Number of batches: \", str(len(self.list_IDs)/self.batch_size))"]},{"cell_type":"markdown","metadata":{"id":"3T_7flJdcwJy"},"source":["train_gen[batch no][X:0><Y:1][ith image in batch(range of i is 0 to 3]\n","\n"]},{"cell_type":"code","execution_count":null,"metadata":{"id":"n9YjtICJQaM9"},"outputs":[],"source":["train = pd.read_csv('/content/drive/MyDrive/classification/train.csv')\n","valid = pd.read_csv('/content/drive/MyDrive/classification/valid.csv')\n","test = pd.read_csv('/content/drive/MyDrive/classification/test.csv')"]},{"cell_type":"code","execution_count":null,"metadata":{"colab":{"base_uri":"https://localhost:8080/"},"executionInfo":{"elapsed":34,"status":"ok","timestamp":1663099401384,"user":{"displayName":"Satvik Maheshwari","userId":"09768921556990219284"},"user_tz":-330},"id":"bmK_HlgOdnJ6","outputId":"9ddb2298-f385-4fd4-e847-ce7e50a799c3"},"outputs":[{"output_type":"stream","name":"stdout","text":["5289\n"]}],"source":["batch_size=4\n","IMG_SIZE=224\n","Train_gen = DataGenerator(list_IDs = list(train.patientId),\n"," labels = list(train.Target),\n"," batch_size=batch_size,\n"," IMG_SIZE=IMG_SIZE,\n"," shuffle=True)\n","print(len(Train_gen))"]},{"cell_type":"code","execution_count":null,"metadata":{"colab":{"base_uri":"https://localhost:8080/"},"executionInfo":{"elapsed":33,"status":"ok","timestamp":1663099401386,"user":{"displayName":"Satvik Maheshwari","userId":"09768921556990219284"},"user_tz":-330},"id":"VHAwwwbBdx-m","outputId":"146767b2-e998-4605-e554-3ec036884014"},"outputs":[{"output_type":"stream","name":"stdout","text":["1133\n"]}],"source":["batch_size=4\n","IMG_SIZE=224\n","Val_gen = DataGenerator(list_IDs = list(valid.patientId),\n"," labels = list(valid.Target),\n"," batch_size=batch_size,\n"," IMG_SIZE=IMG_SIZE,\n"," shuffle=True)\n","print(len(Val_gen))"]},{"cell_type":"code","execution_count":null,"metadata":{"colab":{"base_uri":"https://localhost:8080/"},"executionInfo":{"elapsed":31,"status":"ok","timestamp":1663099401389,"user":{"displayName":"Satvik Maheshwari","userId":"09768921556990219284"},"user_tz":-330},"id":"tXcwqvkoNO9S","outputId":"c76a2053-e58d-45a8-df0f-a63ba15b6c1c"},"outputs":[{"output_type":"stream","name":"stdout","text":["4534\n"]}],"source":["batch_size=1\n","IMG_SIZE=224\n","Test_gen = DataGenerator(list_IDs = list(test.patientId),\n"," labels = list(test.Target),\n"," batch_size=batch_size,\n"," IMG_SIZE=IMG_SIZE,\n"," shuffle=False)\n","print(len(Test_gen))"]},{"cell_type":"code","execution_count":null,"metadata":{"id":"C1Ci2twRcf1l"},"outputs":[],"source":["import tensorflow as tf\n","from tensorflow.keras.models import Sequential\n","from tensorflow.keras.layers import Dense, GlobalAveragePooling2D,Dropout\n","from tensorflow.keras.callbacks import EarlyStopping,ReduceLROnPlateau,ModelCheckpoint\n","from tensorflow.keras.layers.experimental.preprocessing import Rescaling\n","from tensorflow.keras.losses import binary_crossentropy\n","from tensorflow.keras.applications import DenseNet121\n","from tensorflow.keras.utils import plot_model\n","from tensorflow.keras.callbacks import CSVLogger,ModelCheckpoint, LearningRateScheduler, EarlyStopping, ReduceLROnPlateau\n","import math"]},{"cell_type":"code","execution_count":null,"metadata":{"colab":{"base_uri":"https://localhost:8080/"},"executionInfo":{"elapsed":8241,"status":"ok","timestamp":1663099409605,"user":{"displayName":"Satvik Maheshwari","userId":"09768921556990219284"},"user_tz":-330},"id":"44POQXYOz0LQ","outputId":"7b0b4f61-fef1-4ae7-d566-f66f0384f4ef"},"outputs":[{"output_type":"stream","name":"stdout","text":["Downloading data from https://storage.googleapis.com/tensorflow/keras-applications/inception_v3/inception_v3_weights_tf_dim_ordering_tf_kernels_notop.h5\n","87916544/87910968 [==============================] - 1s 0us/step\n","87924736/87910968 [==============================] - 1s 0us/step\n","Model: \"model\"\n","__________________________________________________________________________________________________\n"," Layer (type) Output Shape Param # Connected to \n","==================================================================================================\n"," input_1 (InputLayer) [(None, 224, 224, 3 0 [] \n"," )] \n"," \n"," conv2d (Conv2D) (None, 111, 111, 32 864 ['input_1[0][0]'] \n"," ) \n"," \n"," batch_normalization (BatchNorm (None, 111, 111, 32 96 ['conv2d[0][0]'] \n"," alization) ) \n"," \n"," activation (Activation) (None, 111, 111, 32 0 ['batch_normalization[0][0]'] \n"," ) \n"," \n"," conv2d_1 (Conv2D) (None, 109, 109, 32 9216 ['activation[0][0]'] \n"," ) \n"," \n"," batch_normalization_1 (BatchNo (None, 109, 109, 32 96 ['conv2d_1[0][0]'] \n"," rmalization) ) \n"," \n"," activation_1 (Activation) (None, 109, 109, 32 0 ['batch_normalization_1[0][0]'] \n"," ) \n"," \n"," conv2d_2 (Conv2D) (None, 109, 109, 64 18432 ['activation_1[0][0]'] \n"," ) \n"," \n"," batch_normalization_2 (BatchNo (None, 109, 109, 64 192 ['conv2d_2[0][0]'] \n"," rmalization) ) \n"," \n"," activation_2 (Activation) (None, 109, 109, 64 0 ['batch_normalization_2[0][0]'] \n"," ) \n"," \n"," max_pooling2d (MaxPooling2D) (None, 54, 54, 64) 0 ['activation_2[0][0]'] \n"," \n"," conv2d_3 (Conv2D) (None, 54, 54, 80) 5120 ['max_pooling2d[0][0]'] \n"," \n"," batch_normalization_3 (BatchNo (None, 54, 54, 80) 240 ['conv2d_3[0][0]'] \n"," rmalization) \n"," \n"," activation_3 (Activation) (None, 54, 54, 80) 0 ['batch_normalization_3[0][0]'] \n"," \n"," conv2d_4 (Conv2D) (None, 52, 52, 192) 138240 ['activation_3[0][0]'] \n"," \n"," batch_normalization_4 (BatchNo (None, 52, 52, 192) 576 ['conv2d_4[0][0]'] \n"," rmalization) \n"," \n"," activation_4 (Activation) (None, 52, 52, 192) 0 ['batch_normalization_4[0][0]'] \n"," \n"," max_pooling2d_1 (MaxPooling2D) (None, 25, 25, 192) 0 ['activation_4[0][0]'] \n"," \n"," conv2d_8 (Conv2D) (None, 25, 25, 64) 12288 ['max_pooling2d_1[0][0]'] \n"," \n"," batch_normalization_8 (BatchNo (None, 25, 25, 64) 192 ['conv2d_8[0][0]'] \n"," rmalization) \n"," \n"," activation_8 (Activation) (None, 25, 25, 64) 0 ['batch_normalization_8[0][0]'] \n"," \n"," conv2d_6 (Conv2D) (None, 25, 25, 48) 9216 ['max_pooling2d_1[0][0]'] \n"," \n"," conv2d_9 (Conv2D) (None, 25, 25, 96) 55296 ['activation_8[0][0]'] \n"," \n"," batch_normalization_6 (BatchNo (None, 25, 25, 48) 144 ['conv2d_6[0][0]'] \n"," rmalization) \n"," \n"," batch_normalization_9 (BatchNo (None, 25, 25, 96) 288 ['conv2d_9[0][0]'] \n"," rmalization) \n"," \n"," activation_6 (Activation) (None, 25, 25, 48) 0 ['batch_normalization_6[0][0]'] \n"," \n"," activation_9 (Activation) (None, 25, 25, 96) 0 ['batch_normalization_9[0][0]'] \n"," \n"," average_pooling2d (AveragePool (None, 25, 25, 192) 0 ['max_pooling2d_1[0][0]'] \n"," ing2D) \n"," \n"," conv2d_5 (Conv2D) (None, 25, 25, 64) 12288 ['max_pooling2d_1[0][0]'] \n"," \n"," conv2d_7 (Conv2D) (None, 25, 25, 64) 76800 ['activation_6[0][0]'] \n"," \n"," conv2d_10 (Conv2D) (None, 25, 25, 96) 82944 ['activation_9[0][0]'] \n"," \n"," conv2d_11 (Conv2D) (None, 25, 25, 32) 6144 ['average_pooling2d[0][0]'] \n"," \n"," batch_normalization_5 (BatchNo (None, 25, 25, 64) 192 ['conv2d_5[0][0]'] \n"," rmalization) \n"," \n"," batch_normalization_7 (BatchNo (None, 25, 25, 64) 192 ['conv2d_7[0][0]'] \n"," rmalization) \n"," \n"," batch_normalization_10 (BatchN (None, 25, 25, 96) 288 ['conv2d_10[0][0]'] \n"," ormalization) \n"," \n"," batch_normalization_11 (BatchN (None, 25, 25, 32) 96 ['conv2d_11[0][0]'] \n"," ormalization) \n"," \n"," activation_5 (Activation) (None, 25, 25, 64) 0 ['batch_normalization_5[0][0]'] \n"," \n"," activation_7 (Activation) (None, 25, 25, 64) 0 ['batch_normalization_7[0][0]'] \n"," \n"," activation_10 (Activation) (None, 25, 25, 96) 0 ['batch_normalization_10[0][0]'] \n"," \n"," activation_11 (Activation) (None, 25, 25, 32) 0 ['batch_normalization_11[0][0]'] \n"," \n"," mixed0 (Concatenate) (None, 25, 25, 256) 0 ['activation_5[0][0]', \n"," 'activation_7[0][0]', \n"," 'activation_10[0][0]', \n"," 'activation_11[0][0]'] \n"," \n"," conv2d_15 (Conv2D) (None, 25, 25, 64) 16384 ['mixed0[0][0]'] \n"," \n"," batch_normalization_15 (BatchN (None, 25, 25, 64) 192 ['conv2d_15[0][0]'] \n"," ormalization) \n"," \n"," activation_15 (Activation) (None, 25, 25, 64) 0 ['batch_normalization_15[0][0]'] \n"," \n"," conv2d_13 (Conv2D) (None, 25, 25, 48) 12288 ['mixed0[0][0]'] \n"," \n"," conv2d_16 (Conv2D) (None, 25, 25, 96) 55296 ['activation_15[0][0]'] \n"," \n"," batch_normalization_13 (BatchN (None, 25, 25, 48) 144 ['conv2d_13[0][0]'] \n"," ormalization) \n"," \n"," batch_normalization_16 (BatchN (None, 25, 25, 96) 288 ['conv2d_16[0][0]'] \n"," ormalization) \n"," \n"," activation_13 (Activation) (None, 25, 25, 48) 0 ['batch_normalization_13[0][0]'] \n"," \n"," activation_16 (Activation) (None, 25, 25, 96) 0 ['batch_normalization_16[0][0]'] \n"," \n"," average_pooling2d_1 (AveragePo (None, 25, 25, 256) 0 ['mixed0[0][0]'] \n"," oling2D) \n"]},{"output_type":"stream","name":"stderr","text":["/usr/local/lib/python3.7/dist-packages/keras/optimizer_v2/adam.py:105: UserWarning: The `lr` argument is deprecated, use `learning_rate` instead.\n"," super(Adam, self).__init__(name, **kwargs)\n"]},{"output_type":"stream","name":"stdout","text":[" \n"," conv2d_12 (Conv2D) (None, 25, 25, 64) 16384 ['mixed0[0][0]'] \n"," \n"," conv2d_14 (Conv2D) (None, 25, 25, 64) 76800 ['activation_13[0][0]'] \n"," \n"," conv2d_17 (Conv2D) (None, 25, 25, 96) 82944 ['activation_16[0][0]'] \n"," \n"," conv2d_18 (Conv2D) (None, 25, 25, 64) 16384 ['average_pooling2d_1[0][0]'] \n"," \n"," batch_normalization_12 (BatchN (None, 25, 25, 64) 192 ['conv2d_12[0][0]'] \n"," ormalization) \n"," \n"," batch_normalization_14 (BatchN (None, 25, 25, 64) 192 ['conv2d_14[0][0]'] \n"," ormalization) \n"," \n"," batch_normalization_17 (BatchN (None, 25, 25, 96) 288 ['conv2d_17[0][0]'] \n"," ormalization) \n"," \n"," batch_normalization_18 (BatchN (None, 25, 25, 64) 192 ['conv2d_18[0][0]'] \n"," ormalization) \n"," \n"," activation_12 (Activation) (None, 25, 25, 64) 0 ['batch_normalization_12[0][0]'] \n"," \n"," activation_14 (Activation) (None, 25, 25, 64) 0 ['batch_normalization_14[0][0]'] \n"," \n"," activation_17 (Activation) (None, 25, 25, 96) 0 ['batch_normalization_17[0][0]'] \n"," \n"," activation_18 (Activation) (None, 25, 25, 64) 0 ['batch_normalization_18[0][0]'] \n"," \n"," mixed1 (Concatenate) (None, 25, 25, 288) 0 ['activation_12[0][0]', \n"," 'activation_14[0][0]', \n"," 'activation_17[0][0]', \n"," 'activation_18[0][0]'] \n"," \n"," conv2d_22 (Conv2D) (None, 25, 25, 64) 18432 ['mixed1[0][0]'] \n"," \n"," batch_normalization_22 (BatchN (None, 25, 25, 64) 192 ['conv2d_22[0][0]'] \n"," ormalization) \n"," \n"," activation_22 (Activation) (None, 25, 25, 64) 0 ['batch_normalization_22[0][0]'] \n"," \n"," conv2d_20 (Conv2D) (None, 25, 25, 48) 13824 ['mixed1[0][0]'] \n"," \n"," conv2d_23 (Conv2D) (None, 25, 25, 96) 55296 ['activation_22[0][0]'] \n"," \n"," batch_normalization_20 (BatchN (None, 25, 25, 48) 144 ['conv2d_20[0][0]'] \n"," ormalization) \n"," \n"," batch_normalization_23 (BatchN (None, 25, 25, 96) 288 ['conv2d_23[0][0]'] \n"," ormalization) \n"," \n"," activation_20 (Activation) (None, 25, 25, 48) 0 ['batch_normalization_20[0][0]'] \n"," \n"," activation_23 (Activation) (None, 25, 25, 96) 0 ['batch_normalization_23[0][0]'] \n"," \n"," average_pooling2d_2 (AveragePo (None, 25, 25, 288) 0 ['mixed1[0][0]'] \n"," oling2D) \n"," \n"," conv2d_19 (Conv2D) (None, 25, 25, 64) 18432 ['mixed1[0][0]'] \n"," \n"," conv2d_21 (Conv2D) (None, 25, 25, 64) 76800 ['activation_20[0][0]'] \n"," \n"," conv2d_24 (Conv2D) (None, 25, 25, 96) 82944 ['activation_23[0][0]'] \n"," \n"," conv2d_25 (Conv2D) (None, 25, 25, 64) 18432 ['average_pooling2d_2[0][0]'] \n"," \n"," batch_normalization_19 (BatchN (None, 25, 25, 64) 192 ['conv2d_19[0][0]'] \n"," ormalization) \n"," \n"," batch_normalization_21 (BatchN (None, 25, 25, 64) 192 ['conv2d_21[0][0]'] \n"," ormalization) \n"," \n"," batch_normalization_24 (BatchN (None, 25, 25, 96) 288 ['conv2d_24[0][0]'] \n"," ormalization) \n"," \n"," batch_normalization_25 (BatchN (None, 25, 25, 64) 192 ['conv2d_25[0][0]'] \n"," ormalization) \n"," \n"," activation_19 (Activation) (None, 25, 25, 64) 0 ['batch_normalization_19[0][0]'] \n"," \n"," activation_21 (Activation) (None, 25, 25, 64) 0 ['batch_normalization_21[0][0]'] \n"," \n"," activation_24 (Activation) (None, 25, 25, 96) 0 ['batch_normalization_24[0][0]'] \n"," \n"," activation_25 (Activation) (None, 25, 25, 64) 0 ['batch_normalization_25[0][0]'] \n"," \n"," mixed2 (Concatenate) (None, 25, 25, 288) 0 ['activation_19[0][0]', \n"," 'activation_21[0][0]', \n"," 'activation_24[0][0]', \n"," 'activation_25[0][0]'] \n"," \n"," conv2d_27 (Conv2D) (None, 25, 25, 64) 18432 ['mixed2[0][0]'] \n"," \n"," batch_normalization_27 (BatchN (None, 25, 25, 64) 192 ['conv2d_27[0][0]'] \n"," ormalization) \n"," \n"," activation_27 (Activation) (None, 25, 25, 64) 0 ['batch_normalization_27[0][0]'] \n"," \n"," conv2d_28 (Conv2D) (None, 25, 25, 96) 55296 ['activation_27[0][0]'] \n"," \n"," batch_normalization_28 (BatchN (None, 25, 25, 96) 288 ['conv2d_28[0][0]'] \n"," ormalization) \n"," \n"," activation_28 (Activation) (None, 25, 25, 96) 0 ['batch_normalization_28[0][0]'] \n"," \n"," conv2d_26 (Conv2D) (None, 12, 12, 384) 995328 ['mixed2[0][0]'] \n"," \n"," conv2d_29 (Conv2D) (None, 12, 12, 96) 82944 ['activation_28[0][0]'] \n"," \n"," batch_normalization_26 (BatchN (None, 12, 12, 384) 1152 ['conv2d_26[0][0]'] \n"," ormalization) \n"," \n"," batch_normalization_29 (BatchN (None, 12, 12, 96) 288 ['conv2d_29[0][0]'] \n"," ormalization) \n"," \n"," activation_26 (Activation) (None, 12, 12, 384) 0 ['batch_normalization_26[0][0]'] \n"," \n"," activation_29 (Activation) (None, 12, 12, 96) 0 ['batch_normalization_29[0][0]'] \n"," \n"," max_pooling2d_2 (MaxPooling2D) (None, 12, 12, 288) 0 ['mixed2[0][0]'] \n"," \n"," mixed3 (Concatenate) (None, 12, 12, 768) 0 ['activation_26[0][0]', \n"," 'activation_29[0][0]', \n"," 'max_pooling2d_2[0][0]'] \n"," \n"," conv2d_34 (Conv2D) (None, 12, 12, 128) 98304 ['mixed3[0][0]'] \n"," \n"," batch_normalization_34 (BatchN (None, 12, 12, 128) 384 ['conv2d_34[0][0]'] \n"," ormalization) \n"," \n"," activation_34 (Activation) (None, 12, 12, 128) 0 ['batch_normalization_34[0][0]'] \n"," \n"," conv2d_35 (Conv2D) (None, 12, 12, 128) 114688 ['activation_34[0][0]'] \n"," \n"," batch_normalization_35 (BatchN (None, 12, 12, 128) 384 ['conv2d_35[0][0]'] \n"," ormalization) \n"," \n"," activation_35 (Activation) (None, 12, 12, 128) 0 ['batch_normalization_35[0][0]'] \n"," \n"," conv2d_31 (Conv2D) (None, 12, 12, 128) 98304 ['mixed3[0][0]'] \n"," \n"," conv2d_36 (Conv2D) (None, 12, 12, 128) 114688 ['activation_35[0][0]'] \n"," \n"," batch_normalization_31 (BatchN (None, 12, 12, 128) 384 ['conv2d_31[0][0]'] \n"," ormalization) \n"," \n"," batch_normalization_36 (BatchN (None, 12, 12, 128) 384 ['conv2d_36[0][0]'] \n"," ormalization) \n"," \n"," activation_31 (Activation) (None, 12, 12, 128) 0 ['batch_normalization_31[0][0]'] \n"," \n"," activation_36 (Activation) (None, 12, 12, 128) 0 ['batch_normalization_36[0][0]'] \n"," \n"," conv2d_32 (Conv2D) (None, 12, 12, 128) 114688 ['activation_31[0][0]'] \n"," \n"," conv2d_37 (Conv2D) (None, 12, 12, 128) 114688 ['activation_36[0][0]'] \n"," \n"," batch_normalization_32 (BatchN (None, 12, 12, 128) 384 ['conv2d_32[0][0]'] \n"," ormalization) \n"," \n"," batch_normalization_37 (BatchN (None, 12, 12, 128) 384 ['conv2d_37[0][0]'] \n"," ormalization) \n"," \n"," activation_32 (Activation) (None, 12, 12, 128) 0 ['batch_normalization_32[0][0]'] \n"," \n"," activation_37 (Activation) (None, 12, 12, 128) 0 ['batch_normalization_37[0][0]'] \n"," \n"," average_pooling2d_3 (AveragePo (None, 12, 12, 768) 0 ['mixed3[0][0]'] \n"," oling2D) \n"," \n"," conv2d_30 (Conv2D) (None, 12, 12, 192) 147456 ['mixed3[0][0]'] \n"," \n"," conv2d_33 (Conv2D) (None, 12, 12, 192) 172032 ['activation_32[0][0]'] \n"," \n"," conv2d_38 (Conv2D) (None, 12, 12, 192) 172032 ['activation_37[0][0]'] \n"," \n"," conv2d_39 (Conv2D) (None, 12, 12, 192) 147456 ['average_pooling2d_3[0][0]'] \n"," \n"," batch_normalization_30 (BatchN (None, 12, 12, 192) 576 ['conv2d_30[0][0]'] \n"," ormalization) \n"," \n"," batch_normalization_33 (BatchN (None, 12, 12, 192) 576 ['conv2d_33[0][0]'] \n"," ormalization) \n"," \n"," batch_normalization_38 (BatchN (None, 12, 12, 192) 576 ['conv2d_38[0][0]'] \n"," ormalization) \n"," \n"," batch_normalization_39 (BatchN (None, 12, 12, 192) 576 ['conv2d_39[0][0]'] \n"," ormalization) \n"," \n"," activation_30 (Activation) (None, 12, 12, 192) 0 ['batch_normalization_30[0][0]'] \n"," \n"," activation_33 (Activation) (None, 12, 12, 192) 0 ['batch_normalization_33[0][0]'] \n"," \n"," activation_38 (Activation) (None, 12, 12, 192) 0 ['batch_normalization_38[0][0]'] \n"," \n"," activation_39 (Activation) (None, 12, 12, 192) 0 ['batch_normalization_39[0][0]'] \n"," \n"," mixed4 (Concatenate) (None, 12, 12, 768) 0 ['activation_30[0][0]', \n"," 'activation_33[0][0]', \n"," 'activation_38[0][0]', \n"," 'activation_39[0][0]'] \n"," \n"," conv2d_44 (Conv2D) (None, 12, 12, 160) 122880 ['mixed4[0][0]'] \n"," \n"," batch_normalization_44 (BatchN (None, 12, 12, 160) 480 ['conv2d_44[0][0]'] \n"," ormalization) \n"," \n"," activation_44 (Activation) (None, 12, 12, 160) 0 ['batch_normalization_44[0][0]'] \n"," \n"," conv2d_45 (Conv2D) (None, 12, 12, 160) 179200 ['activation_44[0][0]'] \n"," \n"," batch_normalization_45 (BatchN (None, 12, 12, 160) 480 ['conv2d_45[0][0]'] \n"," ormalization) \n"," \n"," activation_45 (Activation) (None, 12, 12, 160) 0 ['batch_normalization_45[0][0]'] \n"," \n"," conv2d_41 (Conv2D) (None, 12, 12, 160) 122880 ['mixed4[0][0]'] \n"," \n"," conv2d_46 (Conv2D) (None, 12, 12, 160) 179200 ['activation_45[0][0]'] \n"," \n"," batch_normalization_41 (BatchN (None, 12, 12, 160) 480 ['conv2d_41[0][0]'] \n"," ormalization) \n"," \n"," batch_normalization_46 (BatchN (None, 12, 12, 160) 480 ['conv2d_46[0][0]'] \n"," ormalization) \n"," \n"," activation_41 (Activation) (None, 12, 12, 160) 0 ['batch_normalization_41[0][0]'] \n"," \n"," activation_46 (Activation) (None, 12, 12, 160) 0 ['batch_normalization_46[0][0]'] \n"," \n"," conv2d_42 (Conv2D) (None, 12, 12, 160) 179200 ['activation_41[0][0]'] \n"," \n"," conv2d_47 (Conv2D) (None, 12, 12, 160) 179200 ['activation_46[0][0]'] \n"," \n"," batch_normalization_42 (BatchN (None, 12, 12, 160) 480 ['conv2d_42[0][0]'] \n"," ormalization) \n"," \n"," batch_normalization_47 (BatchN (None, 12, 12, 160) 480 ['conv2d_47[0][0]'] \n"," ormalization) \n"," \n"," activation_42 (Activation) (None, 12, 12, 160) 0 ['batch_normalization_42[0][0]'] \n"," \n"," activation_47 (Activation) (None, 12, 12, 160) 0 ['batch_normalization_47[0][0]'] \n"," \n"," average_pooling2d_4 (AveragePo (None, 12, 12, 768) 0 ['mixed4[0][0]'] \n"," oling2D) \n"," \n"," conv2d_40 (Conv2D) (None, 12, 12, 192) 147456 ['mixed4[0][0]'] \n"," \n"," conv2d_43 (Conv2D) (None, 12, 12, 192) 215040 ['activation_42[0][0]'] \n"," \n"," conv2d_48 (Conv2D) (None, 12, 12, 192) 215040 ['activation_47[0][0]'] \n"," \n"," conv2d_49 (Conv2D) (None, 12, 12, 192) 147456 ['average_pooling2d_4[0][0]'] \n"," \n"," batch_normalization_40 (BatchN (None, 12, 12, 192) 576 ['conv2d_40[0][0]'] \n"," ormalization) \n"," \n"," batch_normalization_43 (BatchN (None, 12, 12, 192) 576 ['conv2d_43[0][0]'] \n"," ormalization) \n"," \n"," batch_normalization_48 (BatchN (None, 12, 12, 192) 576 ['conv2d_48[0][0]'] \n"," ormalization) \n"," \n"," batch_normalization_49 (BatchN (None, 12, 12, 192) 576 ['conv2d_49[0][0]'] \n"," ormalization) \n"," \n"," activation_40 (Activation) (None, 12, 12, 192) 0 ['batch_normalization_40[0][0]'] \n"," \n"," activation_43 (Activation) (None, 12, 12, 192) 0 ['batch_normalization_43[0][0]'] \n"," \n"," activation_48 (Activation) (None, 12, 12, 192) 0 ['batch_normalization_48[0][0]'] \n"," \n"," activation_49 (Activation) (None, 12, 12, 192) 0 ['batch_normalization_49[0][0]'] \n"," \n"," mixed5 (Concatenate) (None, 12, 12, 768) 0 ['activation_40[0][0]', \n"," 'activation_43[0][0]', \n"," 'activation_48[0][0]', \n"," 'activation_49[0][0]'] \n"," \n"," conv2d_54 (Conv2D) (None, 12, 12, 160) 122880 ['mixed5[0][0]'] \n"," \n"," batch_normalization_54 (BatchN (None, 12, 12, 160) 480 ['conv2d_54[0][0]'] \n"," ormalization) \n"," \n"," activation_54 (Activation) (None, 12, 12, 160) 0 ['batch_normalization_54[0][0]'] \n"," \n"," conv2d_55 (Conv2D) (None, 12, 12, 160) 179200 ['activation_54[0][0]'] \n"," \n"," batch_normalization_55 (BatchN (None, 12, 12, 160) 480 ['conv2d_55[0][0]'] \n"," ormalization) \n"," \n"," activation_55 (Activation) (None, 12, 12, 160) 0 ['batch_normalization_55[0][0]'] \n"," \n"," conv2d_51 (Conv2D) (None, 12, 12, 160) 122880 ['mixed5[0][0]'] \n"," \n"," conv2d_56 (Conv2D) (None, 12, 12, 160) 179200 ['activation_55[0][0]'] \n"," \n"," batch_normalization_51 (BatchN (None, 12, 12, 160) 480 ['conv2d_51[0][0]'] \n"," ormalization) \n"," \n"," batch_normalization_56 (BatchN (None, 12, 12, 160) 480 ['conv2d_56[0][0]'] \n"," ormalization) \n"," \n"," activation_51 (Activation) (None, 12, 12, 160) 0 ['batch_normalization_51[0][0]'] \n"," \n"," activation_56 (Activation) (None, 12, 12, 160) 0 ['batch_normalization_56[0][0]'] \n"," \n"," conv2d_52 (Conv2D) (None, 12, 12, 160) 179200 ['activation_51[0][0]'] \n"," \n"," conv2d_57 (Conv2D) (None, 12, 12, 160) 179200 ['activation_56[0][0]'] \n"," \n"," batch_normalization_52 (BatchN (None, 12, 12, 160) 480 ['conv2d_52[0][0]'] \n"," ormalization) \n"," \n"," batch_normalization_57 (BatchN (None, 12, 12, 160) 480 ['conv2d_57[0][0]'] \n"," ormalization) \n"," \n"," activation_52 (Activation) (None, 12, 12, 160) 0 ['batch_normalization_52[0][0]'] \n"," \n"," activation_57 (Activation) (None, 12, 12, 160) 0 ['batch_normalization_57[0][0]'] \n"," \n"," average_pooling2d_5 (AveragePo (None, 12, 12, 768) 0 ['mixed5[0][0]'] \n"," oling2D) \n"," \n"," conv2d_50 (Conv2D) (None, 12, 12, 192) 147456 ['mixed5[0][0]'] \n"," \n"," conv2d_53 (Conv2D) (None, 12, 12, 192) 215040 ['activation_52[0][0]'] \n"," \n"," conv2d_58 (Conv2D) (None, 12, 12, 192) 215040 ['activation_57[0][0]'] \n"," \n"," conv2d_59 (Conv2D) (None, 12, 12, 192) 147456 ['average_pooling2d_5[0][0]'] \n"," \n"," batch_normalization_50 (BatchN (None, 12, 12, 192) 576 ['conv2d_50[0][0]'] \n"," ormalization) \n"," \n"," batch_normalization_53 (BatchN (None, 12, 12, 192) 576 ['conv2d_53[0][0]'] \n"," ormalization) \n"," \n"," batch_normalization_58 (BatchN (None, 12, 12, 192) 576 ['conv2d_58[0][0]'] \n"," ormalization) \n"," \n"," batch_normalization_59 (BatchN (None, 12, 12, 192) 576 ['conv2d_59[0][0]'] \n"," ormalization) \n"," \n"," activation_50 (Activation) (None, 12, 12, 192) 0 ['batch_normalization_50[0][0]'] \n"," \n"," activation_53 (Activation) (None, 12, 12, 192) 0 ['batch_normalization_53[0][0]'] \n"," \n"," activation_58 (Activation) (None, 12, 12, 192) 0 ['batch_normalization_58[0][0]'] \n"," \n"," activation_59 (Activation) (None, 12, 12, 192) 0 ['batch_normalization_59[0][0]'] \n"," \n"," mixed6 (Concatenate) (None, 12, 12, 768) 0 ['activation_50[0][0]', \n"," 'activation_53[0][0]', \n"," 'activation_58[0][0]', \n"," 'activation_59[0][0]'] \n"," \n"," conv2d_64 (Conv2D) (None, 12, 12, 192) 147456 ['mixed6[0][0]'] \n"," \n"," batch_normalization_64 (BatchN (None, 12, 12, 192) 576 ['conv2d_64[0][0]'] \n"," ormalization) \n"," \n"," activation_64 (Activation) (None, 12, 12, 192) 0 ['batch_normalization_64[0][0]'] \n"," \n"," conv2d_65 (Conv2D) (None, 12, 12, 192) 258048 ['activation_64[0][0]'] \n"," \n"," batch_normalization_65 (BatchN (None, 12, 12, 192) 576 ['conv2d_65[0][0]'] \n"," ormalization) \n"," \n"," activation_65 (Activation) (None, 12, 12, 192) 0 ['batch_normalization_65[0][0]'] \n"," \n"," conv2d_61 (Conv2D) (None, 12, 12, 192) 147456 ['mixed6[0][0]'] \n"," \n"," conv2d_66 (Conv2D) (None, 12, 12, 192) 258048 ['activation_65[0][0]'] \n"," \n"," batch_normalization_61 (BatchN (None, 12, 12, 192) 576 ['conv2d_61[0][0]'] \n"," ormalization) \n"," \n"," batch_normalization_66 (BatchN (None, 12, 12, 192) 576 ['conv2d_66[0][0]'] \n"," ormalization) \n"," \n"," activation_61 (Activation) (None, 12, 12, 192) 0 ['batch_normalization_61[0][0]'] \n"," \n"," activation_66 (Activation) (None, 12, 12, 192) 0 ['batch_normalization_66[0][0]'] \n"," \n"," conv2d_62 (Conv2D) (None, 12, 12, 192) 258048 ['activation_61[0][0]'] \n"," \n"," conv2d_67 (Conv2D) (None, 12, 12, 192) 258048 ['activation_66[0][0]'] \n"," \n"," batch_normalization_62 (BatchN (None, 12, 12, 192) 576 ['conv2d_62[0][0]'] \n"," ormalization) \n"," \n"," batch_normalization_67 (BatchN (None, 12, 12, 192) 576 ['conv2d_67[0][0]'] \n"," ormalization) \n"," \n"," activation_62 (Activation) (None, 12, 12, 192) 0 ['batch_normalization_62[0][0]'] \n"," \n"," activation_67 (Activation) (None, 12, 12, 192) 0 ['batch_normalization_67[0][0]'] \n"," \n"," average_pooling2d_6 (AveragePo (None, 12, 12, 768) 0 ['mixed6[0][0]'] \n"," oling2D) \n"," \n"," conv2d_60 (Conv2D) (None, 12, 12, 192) 147456 ['mixed6[0][0]'] \n"," \n"," conv2d_63 (Conv2D) (None, 12, 12, 192) 258048 ['activation_62[0][0]'] \n"," \n"," conv2d_68 (Conv2D) (None, 12, 12, 192) 258048 ['activation_67[0][0]'] \n"," \n"," conv2d_69 (Conv2D) (None, 12, 12, 192) 147456 ['average_pooling2d_6[0][0]'] \n"," \n"," batch_normalization_60 (BatchN (None, 12, 12, 192) 576 ['conv2d_60[0][0]'] \n"," ormalization) \n"," \n"," batch_normalization_63 (BatchN (None, 12, 12, 192) 576 ['conv2d_63[0][0]'] \n"," ormalization) \n"," \n"," batch_normalization_68 (BatchN (None, 12, 12, 192) 576 ['conv2d_68[0][0]'] \n"," ormalization) \n"," \n"," batch_normalization_69 (BatchN (None, 12, 12, 192) 576 ['conv2d_69[0][0]'] \n"," ormalization) \n"," \n"," activation_60 (Activation) (None, 12, 12, 192) 0 ['batch_normalization_60[0][0]'] \n"," \n"," activation_63 (Activation) (None, 12, 12, 192) 0 ['batch_normalization_63[0][0]'] \n"," \n"," activation_68 (Activation) (None, 12, 12, 192) 0 ['batch_normalization_68[0][0]'] \n"," \n"," activation_69 (Activation) (None, 12, 12, 192) 0 ['batch_normalization_69[0][0]'] \n"," \n"," mixed7 (Concatenate) (None, 12, 12, 768) 0 ['activation_60[0][0]', \n"," 'activation_63[0][0]', \n"," 'activation_68[0][0]', \n"," 'activation_69[0][0]'] \n"," \n"," conv2d_72 (Conv2D) (None, 12, 12, 192) 147456 ['mixed7[0][0]'] \n"," \n"," batch_normalization_72 (BatchN (None, 12, 12, 192) 576 ['conv2d_72[0][0]'] \n"," ormalization) \n"," \n"," activation_72 (Activation) (None, 12, 12, 192) 0 ['batch_normalization_72[0][0]'] \n"," \n"," conv2d_73 (Conv2D) (None, 12, 12, 192) 258048 ['activation_72[0][0]'] \n"," \n"," batch_normalization_73 (BatchN (None, 12, 12, 192) 576 ['conv2d_73[0][0]'] \n"," ormalization) \n"," \n"," activation_73 (Activation) (None, 12, 12, 192) 0 ['batch_normalization_73[0][0]'] \n"," \n"," conv2d_70 (Conv2D) (None, 12, 12, 192) 147456 ['mixed7[0][0]'] \n"," \n"," conv2d_74 (Conv2D) (None, 12, 12, 192) 258048 ['activation_73[0][0]'] \n"," \n"," batch_normalization_70 (BatchN (None, 12, 12, 192) 576 ['conv2d_70[0][0]'] \n"," ormalization) \n"," \n"," batch_normalization_74 (BatchN (None, 12, 12, 192) 576 ['conv2d_74[0][0]'] \n"," ormalization) \n"," \n"," activation_70 (Activation) (None, 12, 12, 192) 0 ['batch_normalization_70[0][0]'] \n"," \n"," activation_74 (Activation) (None, 12, 12, 192) 0 ['batch_normalization_74[0][0]'] \n"," \n"," conv2d_71 (Conv2D) (None, 5, 5, 320) 552960 ['activation_70[0][0]'] \n"," \n"," conv2d_75 (Conv2D) (None, 5, 5, 192) 331776 ['activation_74[0][0]'] \n"," \n"," batch_normalization_71 (BatchN (None, 5, 5, 320) 960 ['conv2d_71[0][0]'] \n"," ormalization) \n"," \n"," batch_normalization_75 (BatchN (None, 5, 5, 192) 576 ['conv2d_75[0][0]'] \n"," ormalization) \n"," \n"," activation_71 (Activation) (None, 5, 5, 320) 0 ['batch_normalization_71[0][0]'] \n"," \n"," activation_75 (Activation) (None, 5, 5, 192) 0 ['batch_normalization_75[0][0]'] \n"," \n"," max_pooling2d_3 (MaxPooling2D) (None, 5, 5, 768) 0 ['mixed7[0][0]'] \n"," \n"," mixed8 (Concatenate) (None, 5, 5, 1280) 0 ['activation_71[0][0]', \n"," 'activation_75[0][0]', \n"," 'max_pooling2d_3[0][0]'] \n"," \n"," conv2d_80 (Conv2D) (None, 5, 5, 448) 573440 ['mixed8[0][0]'] \n"," \n"," batch_normalization_80 (BatchN (None, 5, 5, 448) 1344 ['conv2d_80[0][0]'] \n"," ormalization) \n"," \n"," activation_80 (Activation) (None, 5, 5, 448) 0 ['batch_normalization_80[0][0]'] \n"," \n"," conv2d_77 (Conv2D) (None, 5, 5, 384) 491520 ['mixed8[0][0]'] \n"," \n"," conv2d_81 (Conv2D) (None, 5, 5, 384) 1548288 ['activation_80[0][0]'] \n"," \n"," batch_normalization_77 (BatchN (None, 5, 5, 384) 1152 ['conv2d_77[0][0]'] \n"," ormalization) \n"," \n"," batch_normalization_81 (BatchN (None, 5, 5, 384) 1152 ['conv2d_81[0][0]'] \n"," ormalization) \n"," \n"," activation_77 (Activation) (None, 5, 5, 384) 0 ['batch_normalization_77[0][0]'] \n"," \n"," activation_81 (Activation) (None, 5, 5, 384) 0 ['batch_normalization_81[0][0]'] \n"," \n"," conv2d_78 (Conv2D) (None, 5, 5, 384) 442368 ['activation_77[0][0]'] \n"," \n"," conv2d_79 (Conv2D) (None, 5, 5, 384) 442368 ['activation_77[0][0]'] \n"," \n"," conv2d_82 (Conv2D) (None, 5, 5, 384) 442368 ['activation_81[0][0]'] \n"," \n"," conv2d_83 (Conv2D) (None, 5, 5, 384) 442368 ['activation_81[0][0]'] \n"," \n"," average_pooling2d_7 (AveragePo (None, 5, 5, 1280) 0 ['mixed8[0][0]'] \n"," oling2D) \n"," \n"," conv2d_76 (Conv2D) (None, 5, 5, 320) 409600 ['mixed8[0][0]'] \n"," \n"," batch_normalization_78 (BatchN (None, 5, 5, 384) 1152 ['conv2d_78[0][0]'] \n"," ormalization) \n"," \n"," batch_normalization_79 (BatchN (None, 5, 5, 384) 1152 ['conv2d_79[0][0]'] \n"," ormalization) \n"," \n"," batch_normalization_82 (BatchN (None, 5, 5, 384) 1152 ['conv2d_82[0][0]'] \n"," ormalization) \n"," \n"," batch_normalization_83 (BatchN (None, 5, 5, 384) 1152 ['conv2d_83[0][0]'] \n"," ormalization) \n"," \n"," conv2d_84 (Conv2D) (None, 5, 5, 192) 245760 ['average_pooling2d_7[0][0]'] \n"," \n"," batch_normalization_76 (BatchN (None, 5, 5, 320) 960 ['conv2d_76[0][0]'] \n"," ormalization) \n"," \n"," activation_78 (Activation) (None, 5, 5, 384) 0 ['batch_normalization_78[0][0]'] \n"," \n"," activation_79 (Activation) (None, 5, 5, 384) 0 ['batch_normalization_79[0][0]'] \n"," \n"," activation_82 (Activation) (None, 5, 5, 384) 0 ['batch_normalization_82[0][0]'] \n"," \n"," activation_83 (Activation) (None, 5, 5, 384) 0 ['batch_normalization_83[0][0]'] \n"," \n"," batch_normalization_84 (BatchN (None, 5, 5, 192) 576 ['conv2d_84[0][0]'] \n"," ormalization) \n"," \n"," activation_76 (Activation) (None, 5, 5, 320) 0 ['batch_normalization_76[0][0]'] \n"," \n"," mixed9_0 (Concatenate) (None, 5, 5, 768) 0 ['activation_78[0][0]', \n"," 'activation_79[0][0]'] \n"," \n"," concatenate (Concatenate) (None, 5, 5, 768) 0 ['activation_82[0][0]', \n"," 'activation_83[0][0]'] \n"," \n"," activation_84 (Activation) (None, 5, 5, 192) 0 ['batch_normalization_84[0][0]'] \n"," \n"," mixed9 (Concatenate) (None, 5, 5, 2048) 0 ['activation_76[0][0]', \n"," 'mixed9_0[0][0]', \n"," 'concatenate[0][0]', \n"," 'activation_84[0][0]'] \n"," \n"," conv2d_89 (Conv2D) (None, 5, 5, 448) 917504 ['mixed9[0][0]'] \n"," \n"," batch_normalization_89 (BatchN (None, 5, 5, 448) 1344 ['conv2d_89[0][0]'] \n"," ormalization) \n"," \n"," activation_89 (Activation) (None, 5, 5, 448) 0 ['batch_normalization_89[0][0]'] \n"," \n"," conv2d_86 (Conv2D) (None, 5, 5, 384) 786432 ['mixed9[0][0]'] \n"," \n"," conv2d_90 (Conv2D) (None, 5, 5, 384) 1548288 ['activation_89[0][0]'] \n"," \n"," batch_normalization_86 (BatchN (None, 5, 5, 384) 1152 ['conv2d_86[0][0]'] \n"," ormalization) \n"," \n"," batch_normalization_90 (BatchN (None, 5, 5, 384) 1152 ['conv2d_90[0][0]'] \n"," ormalization) \n"," \n"," activation_86 (Activation) (None, 5, 5, 384) 0 ['batch_normalization_86[0][0]'] \n"," \n"," activation_90 (Activation) (None, 5, 5, 384) 0 ['batch_normalization_90[0][0]'] \n"," \n"," conv2d_87 (Conv2D) (None, 5, 5, 384) 442368 ['activation_86[0][0]'] \n"," \n"," conv2d_88 (Conv2D) (None, 5, 5, 384) 442368 ['activation_86[0][0]'] \n"," \n"," conv2d_91 (Conv2D) (None, 5, 5, 384) 442368 ['activation_90[0][0]'] \n"," \n"," conv2d_92 (Conv2D) (None, 5, 5, 384) 442368 ['activation_90[0][0]'] \n"," \n"," average_pooling2d_8 (AveragePo (None, 5, 5, 2048) 0 ['mixed9[0][0]'] \n"," oling2D) \n"," \n"," conv2d_85 (Conv2D) (None, 5, 5, 320) 655360 ['mixed9[0][0]'] \n"," \n"," batch_normalization_87 (BatchN (None, 5, 5, 384) 1152 ['conv2d_87[0][0]'] \n"," ormalization) \n"," \n"," batch_normalization_88 (BatchN (None, 5, 5, 384) 1152 ['conv2d_88[0][0]'] \n"," ormalization) \n"," \n"," batch_normalization_91 (BatchN (None, 5, 5, 384) 1152 ['conv2d_91[0][0]'] \n"," ormalization) \n"," \n"," batch_normalization_92 (BatchN (None, 5, 5, 384) 1152 ['conv2d_92[0][0]'] \n"," ormalization) \n"," \n"," conv2d_93 (Conv2D) (None, 5, 5, 192) 393216 ['average_pooling2d_8[0][0]'] \n"," \n"," batch_normalization_85 (BatchN (None, 5, 5, 320) 960 ['conv2d_85[0][0]'] \n"," ormalization) \n"," \n"," activation_87 (Activation) (None, 5, 5, 384) 0 ['batch_normalization_87[0][0]'] \n"," \n"," activation_88 (Activation) (None, 5, 5, 384) 0 ['batch_normalization_88[0][0]'] \n"," \n"," activation_91 (Activation) (None, 5, 5, 384) 0 ['batch_normalization_91[0][0]'] \n"," \n"," activation_92 (Activation) (None, 5, 5, 384) 0 ['batch_normalization_92[0][0]'] \n"," \n"," batch_normalization_93 (BatchN (None, 5, 5, 192) 576 ['conv2d_93[0][0]'] \n"," ormalization) \n"," \n"," activation_85 (Activation) (None, 5, 5, 320) 0 ['batch_normalization_85[0][0]'] \n"," \n"," mixed9_1 (Concatenate) (None, 5, 5, 768) 0 ['activation_87[0][0]', \n"," 'activation_88[0][0]'] \n"," \n"," concatenate_1 (Concatenate) (None, 5, 5, 768) 0 ['activation_91[0][0]', \n"," 'activation_92[0][0]'] \n"," \n"," activation_93 (Activation) (None, 5, 5, 192) 0 ['batch_normalization_93[0][0]'] \n"," \n"," mixed10 (Concatenate) (None, 5, 5, 2048) 0 ['activation_85[0][0]', \n"," 'mixed9_1[0][0]', \n"," 'concatenate_1[0][0]', \n"," 'activation_93[0][0]'] \n"," \n"," average_pooling2d_9 (AveragePo (None, 1, 1, 2048) 0 ['mixed10[0][0]'] \n"," oling2D) \n"," \n"," flatten (Flatten) (None, 2048) 0 ['average_pooling2d_9[0][0]'] \n"," \n"," dense (Dense) (None, 512) 1049088 ['flatten[0][0]'] \n"," \n"," dropout (Dropout) (None, 512) 0 ['dense[0][0]'] \n"," \n"," dense_1 (Dense) (None, 2) 1026 ['dropout[0][0]'] \n"," \n","==================================================================================================\n","Total params: 22,852,898\n","Trainable params: 1,050,114\n","Non-trainable params: 21,802,784\n","__________________________________________________________________________________________________\n","None\n"]}],"source":["def InceptionV3():\n"," # load the InceptionV3 network, ensuring the head FC layer sets are left off\n"," baseModel = tf.keras.applications.InceptionV3(\n"," include_top=False,\n"," weights=\"imagenet\",\n"," input_tensor=tf.keras.layers.Input(shape=(IMG_SIZE, IMG_SIZE, 3)),\n",")\n"," # construct the head of the model that will be placed on top of the the base model\n"," output = baseModel.output\n"," output = tf.keras.layers.AveragePooling2D(pool_size=(4, 4))(output)\n"," output = tf.keras.layers.Flatten(name=\"flatten\")(output)\n"," output = tf.keras.layers.Dense(512, activation=\"relu\")(output)\n"," output = tf.keras.layers.Dropout(0.25)(output)\n"," output = tf.keras.layers.Dense(2, activation=\"softmax\")(output)\n"," # place the head FC model on top of the base model (this will become the actual model we will train)\n"," model = tf.keras.Model(inputs=baseModel.input, outputs=output)\n"," # loop over all layers in the base model and freeze them so they will not be updated during the first training process\n"," for layer in baseModel.layers:\n"," layer.trainable = False\n"," return model\n","\n","model = InceptionV3()\n","# initialize the initial learning rate, number of epochs to train for, and batch size\n","INIT_LR = 0.001\n","EPOCHS = 20\n","BATCHSIZE = 32\n","optimizer = tf.keras.optimizers.Adam(lr=INIT_LR, decay=INIT_LR / EPOCHS)\n","model.compile(loss= 'binary_crossentropy', optimizer=optimizer, metrics=['accuracy'])\n","print(model.summary())"]},{"cell_type":"code","execution_count":null,"metadata":{"colab":{"base_uri":"https://localhost:8080/"},"id":"448DW43VMqUG","outputId":"c1c2bead-1d94-477e-ffad-0853d603ec39","executionInfo":{"status":"ok","timestamp":1663042541599,"user_tz":-330,"elapsed":2851411,"user":{"displayName":"Satvik Maheshwari","userId":"09768921556990219284"}}},"outputs":[{"output_type":"stream","name":"stdout","text":["Model Directory Created\n","Epoch 1/20\n","165/165 [==============================] - ETA: 0s - loss: 0.8788 - accuracy: 0.6591\n","Epoch 1: val_loss improved from inf to 0.58554, saving model to ./content/drive/MyDrive/classification/saved Models/Pretrained InceptionV3_1/InceptionV3_1-best-model.h5\n","165/165 [==============================] - 357s 2s/step - loss: 0.8788 - accuracy: 0.6591 - val_loss: 0.5855 - val_accuracy: 0.7057 - lr: 0.0010\n","Epoch 2/20\n","165/165 [==============================] - ETA: 0s - loss: 0.5731 - accuracy: 0.7227\n","Epoch 2: val_loss improved from 0.58554 to 0.48356, saving model to ./content/drive/MyDrive/classification/saved Models/Pretrained InceptionV3_1/InceptionV3_1-best-model.h5\n","165/165 [==============================] - 320s 2s/step - loss: 0.5731 - accuracy: 0.7227 - val_loss: 0.4836 - val_accuracy: 0.7766 - lr: 0.0010\n","Epoch 3/20\n","165/165 [==============================] - ETA: 0s - loss: 0.4888 - accuracy: 0.7606\n","Epoch 3: val_loss improved from 0.48356 to 0.42183, saving model to ./content/drive/MyDrive/classification/saved Models/Pretrained InceptionV3_1/InceptionV3_1-best-model.h5\n","165/165 [==============================] - 294s 2s/step - loss: 0.4888 - accuracy: 0.7606 - val_loss: 0.4218 - val_accuracy: 0.7890 - lr: 0.0010\n","Epoch 4/20\n","165/165 [==============================] - ETA: 0s - loss: 0.4803 - accuracy: 0.7652\n","Epoch 4: val_loss did not improve from 0.42183\n","165/165 [==============================] - 278s 2s/step - loss: 0.4803 - accuracy: 0.7652 - val_loss: 0.4458 - val_accuracy: 0.7819 - lr: 0.0010\n","Epoch 5/20\n","165/165 [==============================] - ETA: 0s - loss: 0.5260 - accuracy: 0.7439\n","Epoch 5: val_loss improved from 0.42183 to 0.38986, saving model to ./content/drive/MyDrive/classification/saved Models/Pretrained InceptionV3_1/InceptionV3_1-best-model.h5\n","165/165 [==============================] - 261s 2s/step - loss: 0.5260 - accuracy: 0.7439 - val_loss: 0.3899 - val_accuracy: 0.8245 - lr: 0.0010\n","Epoch 6/20\n","165/165 [==============================] - ETA: 0s - loss: 0.5201 - accuracy: 0.7394\n","Epoch 6: val_loss did not improve from 0.38986\n","165/165 [==============================] - 252s 2s/step - loss: 0.5201 - accuracy: 0.7394 - val_loss: 0.4119 - val_accuracy: 0.8085 - lr: 0.0010\n","Epoch 7/20\n","165/165 [==============================] - ETA: 0s - loss: 0.4835 - accuracy: 0.7636\n","Epoch 7: val_loss did not improve from 0.38986\n","165/165 [==============================] - 238s 1s/step - loss: 0.4835 - accuracy: 0.7636 - val_loss: 0.6655 - val_accuracy: 0.6241 - lr: 0.0010\n","Epoch 8/20\n","165/165 [==============================] - ETA: 0s - loss: 0.5255 - accuracy: 0.7545\n","Epoch 8: val_loss did not improve from 0.38986\n","\n","Epoch 8: ReduceLROnPlateau reducing learning rate to 0.00010000000474974513.\n","165/165 [==============================] - 221s 1s/step - loss: 0.5255 - accuracy: 0.7545 - val_loss: 0.4410 - val_accuracy: 0.8067 - lr: 0.0010\n","Epoch 9/20\n","165/165 [==============================] - ETA: 0s - loss: 0.4752 - accuracy: 0.7652\n","Epoch 9: val_loss did not improve from 0.38986\n","165/165 [==============================] - 220s 1s/step - loss: 0.4752 - accuracy: 0.7652 - val_loss: 0.4616 - val_accuracy: 0.7695 - lr: 1.0000e-04\n","Epoch 10/20\n","165/165 [==============================] - ETA: 0s - loss: 0.4215 - accuracy: 0.8152\n","Epoch 10: val_loss did not improve from 0.38986\n","Restoring model weights from the end of the best epoch: 5.\n","165/165 [==============================] - 207s 1s/step - loss: 0.4215 - accuracy: 0.8152 - val_loss: 0.4333 - val_accuracy: 0.7996 - lr: 1.0000e-04\n","Epoch 10: early stopping\n"]}],"source":["modelPath = '/content/drive/MyDrive/classification/saved Models/Pretrained InceptionV3_1'\n","if not os.path.exists(modelPath):\n"," os.makedirs(modelPath)\n"," print('Model Directory Created')\n","else:\n"," print('Model Directory Already Exists')\n","\n","model_checkpoint = tf.keras.callbacks.ModelCheckpoint('./content/drive/MyDrive/classification/saved Models/Pretrained InceptionV3_1/InceptionV3_1-best-model.h5', monitor='val_loss',\n"," verbose=1, save_best_only=True, mode='auto')\n","\n","early_stop = EarlyStopping(monitor = 'val_loss', patience = 5, restore_best_weights=True, verbose=1)\n","\n","csv_path = '/content/drive/MyDrive/logs/Binary_Classification_InceptionV3_2.csv' \n","csv_logger = CSVLogger(csv_path, append=True)\n","reduce_lr = ReduceLROnPlateau(monitor='val_loss', factor=0.1, patience=3, verbose=1, min_lr=1e-7)\n","\n","callbacks = [model_checkpoint, reduce_lr, early_stop,csv_logger]\n","\n","STEP_TRAIN = len(Train_gen) // BATCHSIZE\n","STEP_TEST = len(Test_gen) // BATCHSIZE\n","modelHistory = model.fit(Train_gen, epochs=EPOCHS, verbose=1, callbacks=callbacks,\n"," validation_data= Val_gen, shuffle = True, steps_per_epoch=STEP_TRAIN, validation_steps=STEP_TEST)\n","\n","tf.keras.models.save_model(model, '/content/drive/MyDrive/classification/saved Models/Pretrained InceptionV3_1/InceptionV3_1-model.h5', overwrite=True, include_optimizer=True, save_format=None,\n"," signatures=None, options=None)"]},{"cell_type":"code","execution_count":null,"metadata":{"id":"eGqeAqptQvZC"},"outputs":[],"source":["from tensorflow.keras.models import load_model"]},{"cell_type":"code","execution_count":null,"metadata":{"id":"duPJ3CGfQ1wi"},"outputs":[],"source":["model = load_model('/content/drive/MyDrive/classification/saved Models/Pretrained InceptionV3_1/InceptionV3_1-model.h5')"]},{"cell_type":"code","execution_count":null,"metadata":{"id":"OuF1uWLrYJve"},"outputs":[],"source":["results = pd.DataFrame()\n","results['label'] = test.Target"]},{"cell_type":"code","execution_count":null,"metadata":{"id":"T0QmETN4Om40","colab":{"base_uri":"https://localhost:8080/","height":49,"referenced_widgets":["12ba42252c7944819a37e6b6bf9f1458","dc15c855af1547eea67b23e0933743ba","bd0d5d0b6c6248e68fb40f57f1db9a05","fe9909afdb2543fa8a25d42265b0bc07","0273ebe4d9b64bfdba663060179a2851","4ab47d18e4e7495d9d6069a590f2abf8","8ce5d223a8c94ed6bccfcc7a066cb46b","50658f36ed9a461fa81a47bec6beb8e2","39af210f21e3428081069ded44bca4d3","503b4c7d5af74627adf12abbee66cb77","41fd00196bdb47a8bb8e71a8c4de603f"]},"outputId":"69b7d73c-7ba3-415d-9cff-4b8a680050cb","executionInfo":{"status":"ok","timestamp":1663044529450,"user_tz":-330,"elapsed":1976339,"user":{"displayName":"Satvik Maheshwari","userId":"09768921556990219284"}}},"outputs":[{"output_type":"display_data","data":{"text/plain":[" 0%| | 0/4534 [00:00<?, ?it/s]"],"application/vnd.jupyter.widget-view+json":{"version_major":2,"version_minor":0,"model_id":"12ba42252c7944819a37e6b6bf9f1458"}},"metadata":{}}],"source":["from tqdm.notebook import tqdm\n","pred_prob = []\n","for bno in tqdm(range(len(Test_gen))):\n"," pred = model.predict(Test_gen[bno][0])\n"," pred_prob.append(pred[0][1])"]},{"cell_type":"code","source":["results['pred_prob'] = pred_prob"],"metadata":{"id":"jwmeCh2RKX_m"},"execution_count":null,"outputs":[]},{"cell_type":"code","execution_count":2,"metadata":{"id":"O4LhABXzeEat","executionInfo":{"status":"ok","timestamp":1664608686263,"user_tz":-330,"elapsed":817,"user":{"displayName":"Satvik Maheshwari","userId":"09768921556990219284"}}},"outputs":[],"source":["results = pd.read_csv('/content/drive/MyDrive/classification/saved Models/Pretrained InceptionV3_1/predictions.csv')"]},{"cell_type":"code","execution_count":3,"metadata":{"id":"5emo8RDLbDSO","colab":{"base_uri":"https://localhost:8080/","height":312},"executionInfo":{"status":"ok","timestamp":1664608688920,"user_tz":-330,"elapsed":895,"user":{"displayName":"Satvik Maheshwari","userId":"09768921556990219284"}},"outputId":"b9722dbd-ce9d-45b4-d633-51174e6e1d63"},"outputs":[{"output_type":"display_data","data":{"text/plain":["<Figure size 432x288 with 1 Axes>"],"image/png":"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\n"},"metadata":{"needs_background":"light"}},{"output_type":"display_data","data":{"text/plain":["<Figure size 432x288 with 0 Axes>"]},"metadata":{}}],"source":["import sklearn.metrics as metrics\n","fpr, tpr, thresholds = metrics.roc_curve(results.label, results.pred_prob)\n","roc_auc = metrics.auc(fpr, tpr)\n","# method I: plt\n","import matplotlib.pyplot as plt\n","plt.title('Receiver Operating Characteristic')\n","plt.plot(fpr, tpr, 'b', label = 'AUC = %0.2f' % roc_auc)\n","plt.legend(loc = 'lower right')\n","plt.ylabel('True Positive Rate')\n","plt.xlabel('False Positive Rate')\n","plt.show()\n","plt.savefig('/content/drive/MyDrive/classification/saved Models/Pretrained InceptionV3/AU|ROC-Curve.jpg')"]},{"cell_type":"code","source":["from sklearn.metrics import classification_report,confusion_matrix\n","from tqdm.notebook import tqdm"],"metadata":{"id":"M00AvlIzvSUn","executionInfo":{"status":"ok","timestamp":1664608691573,"user_tz":-330,"elapsed":471,"user":{"displayName":"Satvik Maheshwari","userId":"09768921556990219284"}}},"execution_count":4,"outputs":[]},{"cell_type":"code","source":["inference = pd.DataFrame(columns = ['Threshold', 'Sensitivity','Specificity','Precision','Recall','F1-score'])\n","for i in tqdm(range(len(thresholds))):\n"," th = thresholds[i]\n"," results['pred_label']= results.pred_prob.apply(lambda x: 1 if x>th else 0)\n"," TN, FP, FN, TP = confusion_matrix(results.label,results.pred_label).ravel()\n"," Sensitivity = TP / (FN+TP)\n"," Specificity = TN/(FP+TN)\n"," Recall = TP / (FN+TP)\n"," Precision = TP/(TP+FP)\n"," f1_score = 2 * (Precision * Recall)/ (Precision + Recall)\n"," if(Sensitivity>=0.8):\n"," inference = inference.append({'Threshold':th,\n"," 'Sensitivity':Sensitivity,\n"," 'Specificity': Specificity,\n"," 'Precision': Precision, \n"," 'Recall': Recall, \n"," 'F1-score':f1_score}, ignore_index=True)"],"metadata":{"colab":{"base_uri":"https://localhost:8080/","height":138,"referenced_widgets":["ebf12fdfc93140099bde0afd83a3624c","90610c5323084c05b46e93f8e71a4416","a32ddf7ed46f42808e3d51c28591debb","beab1e8f588f45228e26ea20c266a210","0ea9ef07e34543d9b29210f8b985b585","7b746f59d8614585942c7989e0e15535","701d7b13df324e8fb96b37c51b891905","7113030e46554f4ab6c74deae61b35cc","fe27e46dd86d4ab5bb7dcf76d1b3da9a","87c98fd60f294fcb8b89f01713b4d542","106c2856850c4de9b20d28a88fe2619c"]},"id":"K7vJZO7xvcuM","executionInfo":{"status":"ok","timestamp":1664608698383,"user_tz":-330,"elapsed":4398,"user":{"displayName":"Satvik Maheshwari","userId":"09768921556990219284"}},"outputId":"d66e7e80-f82b-42ca-8af4-a5ab398ae190"},"execution_count":5,"outputs":[{"output_type":"display_data","data":{"text/plain":[" 0%| | 0/1170 [00:00<?, ?it/s]"],"application/vnd.jupyter.widget-view+json":{"version_major":2,"version_minor":0,"model_id":"ebf12fdfc93140099bde0afd83a3624c"}},"metadata":{}},{"output_type":"stream","name":"stderr","text":["/usr/local/lib/python3.7/dist-packages/ipykernel_launcher.py:9: RuntimeWarning: invalid value encountered in long_scalars\n"," if __name__ == '__main__':\n","/usr/local/lib/python3.7/dist-packages/ipykernel_launcher.py:9: RuntimeWarning: invalid value encountered in long_scalars\n"," if __name__ == '__main__':\n"]}]},{"cell_type":"code","source":["inference.head()"],"metadata":{"colab":{"base_uri":"https://localhost:8080/","height":206},"id":"zqAzkVSdns7o","executionInfo":{"status":"ok","timestamp":1664608702167,"user_tz":-330,"elapsed":578,"user":{"displayName":"Satvik Maheshwari","userId":"09768921556990219284"}},"outputId":"ea6876f0-ac83-400b-e538-f8003f2b5467"},"execution_count":6,"outputs":[{"output_type":"execute_result","data":{"text/plain":[" Threshold Sensitivity Specificity Precision Recall F1-score\n","0 0.146030 0.800000 0.746609 0.556634 0.800000 0.656489\n","1 0.145386 0.800000 0.746301 0.556334 0.800000 0.656280\n","2 0.143390 0.801550 0.745068 0.555615 0.801550 0.656300\n","3 0.143262 0.801550 0.744760 0.555317 0.801550 0.656091\n","4 0.142684 0.802326 0.744143 0.554960 0.802326 0.656101"],"text/html":["\n"," <div id=\"df-06a6aa35-2ac4-4f4b-afc2-4e2f0a9aaf2e\">\n"," <div class=\"colab-df-container\">\n"," <div>\n","<style scoped>\n"," .dataframe tbody tr th:only-of-type {\n"," vertical-align: middle;\n"," }\n","\n"," .dataframe tbody tr th {\n"," vertical-align: top;\n"," }\n","\n"," .dataframe thead th {\n"," text-align: right;\n"," }\n","</style>\n","<table border=\"1\" class=\"dataframe\">\n"," <thead>\n"," <tr style=\"text-align: right;\">\n"," <th></th>\n"," <th>Threshold</th>\n"," <th>Sensitivity</th>\n"," <th>Specificity</th>\n"," <th>Precision</th>\n"," <th>Recall</th>\n"," <th>F1-score</th>\n"," </tr>\n"," </thead>\n"," <tbody>\n"," <tr>\n"," <th>0</th>\n"," <td>0.146030</td>\n"," <td>0.800000</td>\n"," <td>0.746609</td>\n"," <td>0.556634</td>\n"," <td>0.800000</td>\n"," <td>0.656489</td>\n"," </tr>\n"," <tr>\n"," <th>1</th>\n"," <td>0.145386</td>\n"," <td>0.800000</td>\n"," <td>0.746301</td>\n"," <td>0.556334</td>\n"," <td>0.800000</td>\n"," <td>0.656280</td>\n"," </tr>\n"," <tr>\n"," <th>2</th>\n"," <td>0.143390</td>\n"," <td>0.801550</td>\n"," <td>0.745068</td>\n"," <td>0.555615</td>\n"," <td>0.801550</td>\n"," <td>0.656300</td>\n"," </tr>\n"," <tr>\n"," <th>3</th>\n"," <td>0.143262</td>\n"," <td>0.801550</td>\n"," <td>0.744760</td>\n"," <td>0.555317</td>\n"," <td>0.801550</td>\n"," <td>0.656091</td>\n"," </tr>\n"," <tr>\n"," <th>4</th>\n"," <td>0.142684</td>\n"," <td>0.802326</td>\n"," <td>0.744143</td>\n"," <td>0.554960</td>\n"," <td>0.802326</td>\n"," <td>0.656101</td>\n"," </tr>\n"," </tbody>\n","</table>\n","</div>\n"," <button class=\"colab-df-convert\" onclick=\"convertToInteractive('df-06a6aa35-2ac4-4f4b-afc2-4e2f0a9aaf2e')\"\n"," title=\"Convert this dataframe to an interactive table.\"\n"," style=\"display:none;\">\n"," \n"," <svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\"viewBox=\"0 0 24 24\"\n"," width=\"24px\">\n"," <path d=\"M0 0h24v24H0V0z\" fill=\"none\"/>\n"," <path d=\"M18.56 5.44l.94 2.06.94-2.06 2.06-.94-2.06-.94-.94-2.06-.94 2.06-2.06.94zm-11 1L8.5 8.5l.94-2.06 2.06-.94-2.06-.94L8.5 2.5l-.94 2.06-2.06.94zm10 10l.94 2.06.94-2.06 2.06-.94-2.06-.94-.94-2.06-.94 2.06-2.06.94z\"/><path d=\"M17.41 7.96l-1.37-1.37c-.4-.4-.92-.59-1.43-.59-.52 0-1.04.2-1.43.59L10.3 9.45l-7.72 7.72c-.78.78-.78 2.05 0 2.83L4 21.41c.39.39.9.59 1.41.59.51 0 1.02-.2 1.41-.59l7.78-7.78 2.81-2.81c.8-.78.8-2.07 0-2.86zM5.41 20L4 18.59l7.72-7.72 1.47 1.35L5.41 20z\"/>\n"," </svg>\n"," </button>\n"," \n"," <style>\n"," .colab-df-container {\n"," display:flex;\n"," flex-wrap:wrap;\n"," gap: 12px;\n"," }\n","\n"," .colab-df-convert {\n"," background-color: #E8F0FE;\n"," border: none;\n"," border-radius: 50%;\n"," cursor: pointer;\n"," display: none;\n"," fill: #1967D2;\n"," height: 32px;\n"," padding: 0 0 0 0;\n"," width: 32px;\n"," }\n","\n"," .colab-df-convert:hover {\n"," background-color: #E2EBFA;\n"," box-shadow: 0px 1px 2px rgba(60, 64, 67, 0.3), 0px 1px 3px 1px rgba(60, 64, 67, 0.15);\n"," fill: #174EA6;\n"," }\n","\n"," [theme=dark] .colab-df-convert {\n"," background-color: #3B4455;\n"," fill: #D2E3FC;\n"," }\n","\n"," [theme=dark] .colab-df-convert:hover {\n"," background-color: #434B5C;\n"," box-shadow: 0px 1px 3px 1px rgba(0, 0, 0, 0.15);\n"," filter: drop-shadow(0px 1px 2px rgba(0, 0, 0, 0.3));\n"," fill: #FFFFFF;\n"," }\n"," </style>\n","\n"," <script>\n"," const buttonEl =\n"," document.querySelector('#df-06a6aa35-2ac4-4f4b-afc2-4e2f0a9aaf2e button.colab-df-convert');\n"," buttonEl.style.display =\n"," google.colab.kernel.accessAllowed ? 'block' : 'none';\n","\n"," async function convertToInteractive(key) {\n"," const element = document.querySelector('#df-06a6aa35-2ac4-4f4b-afc2-4e2f0a9aaf2e');\n"," const dataTable =\n"," await google.colab.kernel.invokeFunction('convertToInteractive',\n"," [key], {});\n"," if (!dataTable) return;\n","\n"," const docLinkHtml = 'Like what you see? Visit the ' +\n"," '<a target=\"_blank\" href=https://colab.research.google.com/notebooks/data_table.ipynb>data table notebook</a>'\n"," + ' to learn more about interactive tables.';\n"," element.innerHTML = '';\n"," dataTable['output_type'] = 'display_data';\n"," await google.colab.output.renderOutput(dataTable, element);\n"," const docLink = document.createElement('div');\n"," docLink.innerHTML = docLinkHtml;\n"," element.appendChild(docLink);\n"," }\n"," </script>\n"," </div>\n"," </div>\n"," "]},"metadata":{},"execution_count":6}]},{"cell_type":"code","source":["inference.to_csv('/content/drive/MyDrive/classification/saved Models/Pretrained InceptionV3_1/inference.csv')"],"metadata":{"id":"W8bAowngvikZ","executionInfo":{"status":"ok","timestamp":1664608739212,"user_tz":-330,"elapsed":442,"user":{"displayName":"Satvik Maheshwari","userId":"09768921556990219284"}}},"execution_count":7,"outputs":[]},{"cell_type":"code","source":["model_tracker = pd.read_csv('/content/drive/MyDrive/Model_Tracker_Deeptek.csv')"],"metadata":{"id":"cuvaItqflfiQ"},"execution_count":null,"outputs":[]},{"cell_type":"code","source":["model_tracker = pd.read_csv('/content/drive/MyDrive/Model_Tracker_Deeptek.csv')\n","\n","model_tracker.append({'model_id': \"IV3_2\",\n"," 'architecture': \"InceptionV3\",\n"," 'batch_size': batch_size,\n"," 'img_size': IMG_SIZE,\n"," 'learning_rate': INIT_LR,\n"," 'optimizer': \"Adam\",\n"," 'lossfunction': \"Binary Crossentropy\",\n"," 'weight_path': \"/content/drive/MyDrive/classification/saved Models/Pretrained InceptionV3_1/InceptionV3_1-model.h5\" ,\n"," 'logs_path': \"/content/drive/MyDrive/logs/Binary_Classification_InceptionV3_2.csv\",\n"," 'Colab_URL': \"https://colab.research.google.com/drive/1ZDqxDcG3IAaftRLxIEMKBSjCXxNzy4Nl#scrollTo=yWrAA3OrGBcP\",\n"," 'comments': \"The image size for this model training was changed to 224 x 224 instead of 512 x 512\"},ignore_index = True)"],"metadata":{"colab":{"base_uri":"https://localhost:8080/","height":284},"id":"yWrAA3OrGBcP","executionInfo":{"status":"ok","timestamp":1663044700439,"user_tz":-330,"elapsed":609,"user":{"displayName":"Satvik Maheshwari","userId":"09768921556990219284"}},"outputId":"151ae120-ba6a-43f0-d9c6-1e53610b9a21"},"execution_count":null,"outputs":[{"output_type":"execute_result","data":{"text/plain":[" model_id architecture batch_size img_size learning_rate optimizer \\\n","0 IV3_2 InceptionV3 1 224 0.001 Adam \n","\n"," loss function weight_path \\\n","0 NaN /content/drive/MyDrive/classification/saved Mo... \n","\n"," logs_path \\\n","0 /content/drive/MyDrive/logs/Binary_Classificat... \n","\n"," Colab_URL \\\n","0 https://colab.research.google.com/drive/1ZDqxD... \n","\n"," comments lossfunction \n","0 The image size for this model training was cha... Binary Crossentropy "],"text/html":["\n"," <div id=\"df-5bb1d19c-fef8-4efe-a0fe-53e007e09191\">\n"," <div class=\"colab-df-container\">\n"," <div>\n","<style scoped>\n"," .dataframe tbody tr th:only-of-type {\n"," vertical-align: middle;\n"," }\n","\n"," .dataframe tbody tr th {\n"," vertical-align: top;\n"," }\n","\n"," .dataframe thead th {\n"," text-align: right;\n"," }\n","</style>\n","<table border=\"1\" class=\"dataframe\">\n"," <thead>\n"," <tr style=\"text-align: right;\">\n"," <th></th>\n"," <th>model_id</th>\n"," <th>architecture</th>\n"," <th>batch_size</th>\n"," <th>img_size</th>\n"," <th>learning_rate</th>\n"," <th>optimizer</th>\n"," <th>loss function</th>\n"," <th>weight_path</th>\n"," <th>logs_path</th>\n"," <th>Colab_URL</th>\n"," <th>comments</th>\n"," <th>lossfunction</th>\n"," </tr>\n"," </thead>\n"," <tbody>\n"," <tr>\n"," <th>0</th>\n"," <td>IV3_2</td>\n"," <td>InceptionV3</td>\n"," <td>1</td>\n"," <td>224</td>\n"," <td>0.001</td>\n"," <td>Adam</td>\n"," <td>NaN</td>\n"," <td>/content/drive/MyDrive/classification/saved Mo...</td>\n"," <td>/content/drive/MyDrive/logs/Binary_Classificat...</td>\n"," <td>https://colab.research.google.com/drive/1ZDqxD...</td>\n"," <td>The image size for this model training was cha...</td>\n"," <td>Binary Crossentropy</td>\n"," </tr>\n"," </tbody>\n","</table>\n","</div>\n"," <button class=\"colab-df-convert\" onclick=\"convertToInteractive('df-5bb1d19c-fef8-4efe-a0fe-53e007e09191')\"\n"," title=\"Convert this dataframe to an interactive table.\"\n"," style=\"display:none;\">\n"," \n"," <svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\"viewBox=\"0 0 24 24\"\n"," width=\"24px\">\n"," <path d=\"M0 0h24v24H0V0z\" fill=\"none\"/>\n"," <path d=\"M18.56 5.44l.94 2.06.94-2.06 2.06-.94-2.06-.94-.94-2.06-.94 2.06-2.06.94zm-11 1L8.5 8.5l.94-2.06 2.06-.94-2.06-.94L8.5 2.5l-.94 2.06-2.06.94zm10 10l.94 2.06.94-2.06 2.06-.94-2.06-.94-.94-2.06-.94 2.06-2.06.94z\"/><path d=\"M17.41 7.96l-1.37-1.37c-.4-.4-.92-.59-1.43-.59-.52 0-1.04.2-1.43.59L10.3 9.45l-7.72 7.72c-.78.78-.78 2.05 0 2.83L4 21.41c.39.39.9.59 1.41.59.51 0 1.02-.2 1.41-.59l7.78-7.78 2.81-2.81c.8-.78.8-2.07 0-2.86zM5.41 20L4 18.59l7.72-7.72 1.47 1.35L5.41 20z\"/>\n"," </svg>\n"," </button>\n"," \n"," <style>\n"," .colab-df-container {\n"," display:flex;\n"," flex-wrap:wrap;\n"," gap: 12px;\n"," }\n","\n"," .colab-df-convert {\n"," background-color: #E8F0FE;\n"," border: none;\n"," border-radius: 50%;\n"," cursor: pointer;\n"," display: none;\n"," fill: #1967D2;\n"," height: 32px;\n"," padding: 0 0 0 0;\n"," width: 32px;\n"," }\n","\n"," .colab-df-convert:hover {\n"," background-color: #E2EBFA;\n"," box-shadow: 0px 1px 2px rgba(60, 64, 67, 0.3), 0px 1px 3px 1px rgba(60, 64, 67, 0.15);\n"," fill: #174EA6;\n"," }\n","\n"," [theme=dark] .colab-df-convert {\n"," background-color: #3B4455;\n"," fill: #D2E3FC;\n"," }\n","\n"," [theme=dark] .colab-df-convert:hover {\n"," background-color: #434B5C;\n"," box-shadow: 0px 1px 3px 1px rgba(0, 0, 0, 0.15);\n"," filter: drop-shadow(0px 1px 2px rgba(0, 0, 0, 0.3));\n"," fill: #FFFFFF;\n"," }\n"," </style>\n","\n"," <script>\n"," const buttonEl =\n"," document.querySelector('#df-5bb1d19c-fef8-4efe-a0fe-53e007e09191 button.colab-df-convert');\n"," buttonEl.style.display =\n"," google.colab.kernel.accessAllowed ? 'block' : 'none';\n","\n"," async function convertToInteractive(key) {\n"," const element = document.querySelector('#df-5bb1d19c-fef8-4efe-a0fe-53e007e09191');\n"," const dataTable =\n"," await google.colab.kernel.invokeFunction('convertToInteractive',\n"," [key], {});\n"," if (!dataTable) return;\n","\n"," const docLinkHtml = 'Like what you see? Visit the ' +\n"," '<a target=\"_blank\" href=https://colab.research.google.com/notebooks/data_table.ipynb>data table notebook</a>'\n"," + ' to learn more about interactive tables.';\n"," element.innerHTML = '';\n"," dataTable['output_type'] = 'display_data';\n"," await google.colab.output.renderOutput(dataTable, element);\n"," const docLink = document.createElement('div');\n"," docLink.innerHTML = docLinkHtml;\n"," element.appendChild(docLink);\n"," }\n"," </script>\n"," </div>\n"," </div>\n"," "]},"metadata":{},"execution_count":30}]},{"cell_type":"code","source":[],"metadata":{"id":"3aKn7NIUMEP6"},"execution_count":null,"outputs":[]}],"metadata":{"colab":{"collapsed_sections":[],"provenance":[{"file_id":"1ZM3_SiDqyMx9aLezFZkEYX6fCXTL2hUP","timestamp":1663039045804},{"file_id":"1DxIczGkuI7LQS-kSyqixAq4DzxLspp0H","timestamp":1662711720675},{"file_id":"17J-0KJ8WQiHLx1zVFjjgr7_wNB9xRmA1","timestamp":1662466000152},{"file_id":"1U3dCtpGbpCuS09N4D_WhQ_S2Y3ybsR75","timestamp":1662444625047},{"file_id":"1m_V1-uCuR3uo--0Lj8e_cZyQAJ5e5YCB","timestamp":1661840992997},{"file_id":"1EanXRj0V1ttzigcm6cKz6LLUiD2MFOZN","timestamp":1661422765929}],"mount_file_id":"1ZDqxDcG3IAaftRLxIEMKBSjCXxNzy4Nl","authorship_tag":"ABX9TyNuHqts9Qp2LT68zlXpmX2M"},"gpuClass":"standard","kernelspec":{"display_name":"Python 3","name":"python3"},"language_info":{"name":"python"},"accelerator":"GPU","widgets":{"application/vnd.jupyter.widget-state+json":{"12ba42252c7944819a37e6b6bf9f1458":{"model_module":"@jupyter-widgets/controls","model_name":"HBoxModel","model_module_version":"1.5.0","state":{"_dom_classes":[],"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"HBoxModel","_view_count":null,"_view_module":"@jupyter-widgets/controls","_view_module_version":"1.5.0","_view_name":"HBoxView","box_style":"","children":["IPY_MODEL_dc15c855af1547eea67b23e0933743ba","IPY_MODEL_bd0d5d0b6c6248e68fb40f57f1db9a05","IPY_MODEL_fe9909afdb2543fa8a25d42265b0bc07"],"layout":"IPY_MODEL_0273ebe4d9b64bfdba663060179a2851"}},"dc15c855af1547eea67b23e0933743ba":{"model_module":"@jupyter-widgets/controls","model_name":"HTMLModel","model_module_version":"1.5.0","state":{"_dom_classes":[],"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"HTMLModel","_view_count":null,"_view_module":"@jupyter-widgets/controls","_view_module_version":"1.5.0","_view_name":"HTMLView","description":"","description_tooltip":null,"layout":"IPY_MODEL_4ab47d18e4e7495d9d6069a590f2abf8","placeholder":"","style":"IPY_MODEL_8ce5d223a8c94ed6bccfcc7a066cb46b","value":"100%"}},"bd0d5d0b6c6248e68fb40f57f1db9a05":{"model_module":"@jupyter-widgets/controls","model_name":"FloatProgressModel","model_module_version":"1.5.0","state":{"_dom_classes":[],"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"FloatProgressModel","_view_count":null,"_view_module":"@jupyter-widgets/controls","_view_module_version":"1.5.0","_view_name":"ProgressView","bar_style":"success","description":"","description_tooltip":null,"layout":"IPY_MODEL_50658f36ed9a461fa81a47bec6beb8e2","max":4534,"min":0,"orientation":"horizontal","style":"IPY_MODEL_39af210f21e3428081069ded44bca4d3","value":4534}},"fe9909afdb2543fa8a25d42265b0bc07":{"model_module":"@jupyter-widgets/controls","model_name":"HTMLModel","model_module_version":"1.5.0","state":{"_dom_classes":[],"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"HTMLModel","_view_count":null,"_view_module":"@jupyter-widgets/controls","_view_module_version":"1.5.0","_view_name":"HTMLView","description":"","description_tooltip":null,"layout":"IPY_MODEL_503b4c7d5af74627adf12abbee66cb77","placeholder":"","style":"IPY_MODEL_41fd00196bdb47a8bb8e71a8c4de603f","value":" 4534/4534 [32:55<00:00, 2.67it/s]"}},"0273ebe4d9b64bfdba663060179a2851":{"model_module":"@jupyter-widgets/base","model_name":"LayoutModel","model_module_version":"1.2.0","state":{"_model_module":"@jupyter-widgets/base","_model_module_version":"1.2.0","_model_name":"LayoutModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"LayoutView","align_content":null,"align_items":null,"align_self":null,"border":null,"bottom":null,"display":null,"flex":null,"flex_flow":null,"grid_area":null,"grid_auto_columns":null,"grid_auto_flow":null,"grid_auto_rows":null,"grid_column":null,"grid_gap":null,"grid_row":null,"grid_template_areas":null,"grid_template_columns":null,"grid_template_rows":null,"height":null,"justify_content":null,"justify_items":null,"left":null,"margin":null,"max_height":null,"max_width":null,"min_height":null,"min_width":null,"object_fit":null,"object_position":null,"order":null,"overflow":null,"overflow_x":null,"overflow_y":null,"padding":null,"right":null,"top":null,"visibility":null,"width":null}},"4ab47d18e4e7495d9d6069a590f2abf8":{"model_module":"@jupyter-widgets/base","model_name":"LayoutModel","model_module_version":"1.2.0","state":{"_model_module":"@jupyter-widgets/base","_model_module_version":"1.2.0","_model_name":"LayoutModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"LayoutView","align_content":null,"align_items":null,"align_self":null,"border":null,"bottom":null,"display":null,"flex":null,"flex_flow":null,"grid_area":null,"grid_auto_columns":null,"grid_auto_flow":null,"grid_auto_rows":null,"grid_column":null,"grid_gap":null,"grid_row":null,"grid_template_areas":null,"grid_template_columns":null,"grid_template_rows":null,"height":null,"justify_content":null,"justify_items":null,"left":null,"margin":null,"max_height":null,"max_width":null,"min_height":null,"min_width":null,"object_fit":null,"object_position":null,"order":null,"overflow":null,"overflow_x":null,"overflow_y":null,"padding":null,"right":null,"top":null,"visibility":null,"width":null}},"8ce5d223a8c94ed6bccfcc7a066cb46b":{"model_module":"@jupyter-widgets/controls","model_name":"DescriptionStyleModel","model_module_version":"1.5.0","state":{"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"DescriptionStyleModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"StyleView","description_width":""}},"50658f36ed9a461fa81a47bec6beb8e2":{"model_module":"@jupyter-widgets/base","model_name":"LayoutModel","model_module_version":"1.2.0","state":{"_model_module":"@jupyter-widgets/base","_model_module_version":"1.2.0","_model_name":"LayoutModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"LayoutView","align_content":null,"align_items":null,"align_self":null,"border":null,"bottom":null,"display":null,"flex":null,"flex_flow":null,"grid_area":null,"grid_auto_columns":null,"grid_auto_flow":null,"grid_auto_rows":null,"grid_column":null,"grid_gap":null,"grid_row":null,"grid_template_areas":null,"grid_template_columns":null,"grid_template_rows":null,"height":null,"justify_content":null,"justify_items":null,"left":null,"margin":null,"max_height":null,"max_width":null,"min_height":null,"min_width":null,"object_fit":null,"object_position":null,"order":null,"overflow":null,"overflow_x":null,"overflow_y":null,"padding":null,"right":null,"top":null,"visibility":null,"width":null}},"39af210f21e3428081069ded44bca4d3":{"model_module":"@jupyter-widgets/controls","model_name":"ProgressStyleModel","model_module_version":"1.5.0","state":{"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"ProgressStyleModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"StyleView","bar_color":null,"description_width":""}},"503b4c7d5af74627adf12abbee66cb77":{"model_module":"@jupyter-widgets/base","model_name":"LayoutModel","model_module_version":"1.2.0","state":{"_model_module":"@jupyter-widgets/base","_model_module_version":"1.2.0","_model_name":"LayoutModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"LayoutView","align_content":null,"align_items":null,"align_self":null,"border":null,"bottom":null,"display":null,"flex":null,"flex_flow":null,"grid_area":null,"grid_auto_columns":null,"grid_auto_flow":null,"grid_auto_rows":null,"grid_column":null,"grid_gap":null,"grid_row":null,"grid_template_areas":null,"grid_template_columns":null,"grid_template_rows":null,"height":null,"justify_content":null,"justify_items":null,"left":null,"margin":null,"max_height":null,"max_width":null,"min_height":null,"min_width":null,"object_fit":null,"object_position":null,"order":null,"overflow":null,"overflow_x":null,"overflow_y":null,"padding":null,"right":null,"top":null,"visibility":null,"width":null}},"41fd00196bdb47a8bb8e71a8c4de603f":{"model_module":"@jupyter-widgets/controls","model_name":"DescriptionStyleModel","model_module_version":"1.5.0","state":{"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"DescriptionStyleModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"StyleView","description_width":""}},"ebf12fdfc93140099bde0afd83a3624c":{"model_module":"@jupyter-widgets/controls","model_name":"HBoxModel","model_module_version":"1.5.0","state":{"_dom_classes":[],"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"HBoxModel","_view_count":null,"_view_module":"@jupyter-widgets/controls","_view_module_version":"1.5.0","_view_name":"HBoxView","box_style":"","children":["IPY_MODEL_90610c5323084c05b46e93f8e71a4416","IPY_MODEL_a32ddf7ed46f42808e3d51c28591debb","IPY_MODEL_beab1e8f588f45228e26ea20c266a210"],"layout":"IPY_MODEL_0ea9ef07e34543d9b29210f8b985b585"}},"90610c5323084c05b46e93f8e71a4416":{"model_module":"@jupyter-widgets/controls","model_name":"HTMLModel","model_module_version":"1.5.0","state":{"_dom_classes":[],"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"HTMLModel","_view_count":null,"_view_module":"@jupyter-widgets/controls","_view_module_version":"1.5.0","_view_name":"HTMLView","description":"","description_tooltip":null,"layout":"IPY_MODEL_7b746f59d8614585942c7989e0e15535","placeholder":"","style":"IPY_MODEL_701d7b13df324e8fb96b37c51b891905","value":"100%"}},"a32ddf7ed46f42808e3d51c28591debb":{"model_module":"@jupyter-widgets/controls","model_name":"FloatProgressModel","model_module_version":"1.5.0","state":{"_dom_classes":[],"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"FloatProgressModel","_view_count":null,"_view_module":"@jupyter-widgets/controls","_view_module_version":"1.5.0","_view_name":"ProgressView","bar_style":"success","description":"","description_tooltip":null,"layout":"IPY_MODEL_7113030e46554f4ab6c74deae61b35cc","max":1170,"min":0,"orientation":"horizontal","style":"IPY_MODEL_fe27e46dd86d4ab5bb7dcf76d1b3da9a","value":1170}},"beab1e8f588f45228e26ea20c266a210":{"model_module":"@jupyter-widgets/controls","model_name":"HTMLModel","model_module_version":"1.5.0","state":{"_dom_classes":[],"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"HTMLModel","_view_count":null,"_view_module":"@jupyter-widgets/controls","_view_module_version":"1.5.0","_view_name":"HTMLView","description":"","description_tooltip":null,"layout":"IPY_MODEL_87c98fd60f294fcb8b89f01713b4d542","placeholder":"","style":"IPY_MODEL_106c2856850c4de9b20d28a88fe2619c","value":" 1170/1170 [00:04<00:00, 217.28it/s]"}},"0ea9ef07e34543d9b29210f8b985b585":{"model_module":"@jupyter-widgets/base","model_name":"LayoutModel","model_module_version":"1.2.0","state":{"_model_module":"@jupyter-widgets/base","_model_module_version":"1.2.0","_model_name":"LayoutModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"LayoutView","align_content":null,"align_items":null,"align_self":null,"border":null,"bottom":null,"display":null,"flex":null,"flex_flow":null,"grid_area":null,"grid_auto_columns":null,"grid_auto_flow":null,"grid_auto_rows":null,"grid_column":null,"grid_gap":null,"grid_row":null,"grid_template_areas":null,"grid_template_columns":null,"grid_template_rows":null,"height":null,"justify_content":null,"justify_items":null,"left":null,"margin":null,"max_height":null,"max_width":null,"min_height":null,"min_width":null,"object_fit":null,"object_position":null,"order":null,"overflow":null,"overflow_x":null,"overflow_y":null,"padding":null,"right":null,"top":null,"visibility":null,"width":null}},"7b746f59d8614585942c7989e0e15535":{"model_module":"@jupyter-widgets/base","model_name":"LayoutModel","model_module_version":"1.2.0","state":{"_model_module":"@jupyter-widgets/base","_model_module_version":"1.2.0","_model_name":"LayoutModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"LayoutView","align_content":null,"align_items":null,"align_self":null,"border":null,"bottom":null,"display":null,"flex":null,"flex_flow":null,"grid_area":null,"grid_auto_columns":null,"grid_auto_flow":null,"grid_auto_rows":null,"grid_column":null,"grid_gap":null,"grid_row":null,"grid_template_areas":null,"grid_template_columns":null,"grid_template_rows":null,"height":null,"justify_content":null,"justify_items":null,"left":null,"margin":null,"max_height":null,"max_width":null,"min_height":null,"min_width":null,"object_fit":null,"object_position":null,"order":null,"overflow":null,"overflow_x":null,"overflow_y":null,"padding":null,"right":null,"top":null,"visibility":null,"width":null}},"701d7b13df324e8fb96b37c51b891905":{"model_module":"@jupyter-widgets/controls","model_name":"DescriptionStyleModel","model_module_version":"1.5.0","state":{"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"DescriptionStyleModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"StyleView","description_width":""}},"7113030e46554f4ab6c74deae61b35cc":{"model_module":"@jupyter-widgets/base","model_name":"LayoutModel","model_module_version":"1.2.0","state":{"_model_module":"@jupyter-widgets/base","_model_module_version":"1.2.0","_model_name":"LayoutModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"LayoutView","align_content":null,"align_items":null,"align_self":null,"border":null,"bottom":null,"display":null,"flex":null,"flex_flow":null,"grid_area":null,"grid_auto_columns":null,"grid_auto_flow":null,"grid_auto_rows":null,"grid_column":null,"grid_gap":null,"grid_row":null,"grid_template_areas":null,"grid_template_columns":null,"grid_template_rows":null,"height":null,"justify_content":null,"justify_items":null,"left":null,"margin":null,"max_height":null,"max_width":null,"min_height":null,"min_width":null,"object_fit":null,"object_position":null,"order":null,"overflow":null,"overflow_x":null,"overflow_y":null,"padding":null,"right":null,"top":null,"visibility":null,"width":null}},"fe27e46dd86d4ab5bb7dcf76d1b3da9a":{"model_module":"@jupyter-widgets/controls","model_name":"ProgressStyleModel","model_module_version":"1.5.0","state":{"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"ProgressStyleModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"StyleView","bar_color":null,"description_width":""}},"87c98fd60f294fcb8b89f01713b4d542":{"model_module":"@jupyter-widgets/base","model_name":"LayoutModel","model_module_version":"1.2.0","state":{"_model_module":"@jupyter-widgets/base","_model_module_version":"1.2.0","_model_name":"LayoutModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"LayoutView","align_content":null,"align_items":null,"align_self":null,"border":null,"bottom":null,"display":null,"flex":null,"flex_flow":null,"grid_area":null,"grid_auto_columns":null,"grid_auto_flow":null,"grid_auto_rows":null,"grid_column":null,"grid_gap":null,"grid_row":null,"grid_template_areas":null,"grid_template_columns":null,"grid_template_rows":null,"height":null,"justify_content":null,"justify_items":null,"left":null,"margin":null,"max_height":null,"max_width":null,"min_height":null,"min_width":null,"object_fit":null,"object_position":null,"order":null,"overflow":null,"overflow_x":null,"overflow_y":null,"padding":null,"right":null,"top":null,"visibility":null,"width":null}},"106c2856850c4de9b20d28a88fe2619c":{"model_module":"@jupyter-widgets/controls","model_name":"DescriptionStyleModel","model_module_version":"1.5.0","state":{"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"DescriptionStyleModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"StyleView","description_width":""}}}}},"nbformat":4,"nbformat_minor":0} |