|
|
1 |
{"cells":[{"cell_type":"code","execution_count":1,"metadata":{"id":"poHYeV3mMjlX","executionInfo":{"status":"ok","timestamp":1664608904672,"user_tz":-330,"elapsed":4031,"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":63,"status":"ok","timestamp":1663265398351,"user":{"displayName":"Satvik Maheshwari","userId":"09768921556990219284"},"user_tz":-330},"id":"LK3T9HxO-TUc","outputId":"d311da61-7587-4cc1-aa64-846d83fd7d96"},"outputs":[{"output_type":"execute_result","data":{"text/plain":["<matplotlib.axes._subplots.AxesSubplot at 0x7f303395fad0>"]},"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":57,"status":"ok","timestamp":1663265398355,"user":{"displayName":"Satvik Maheshwari","userId":"09768921556990219284"},"user_tz":-330},"id":"Ca7T3RBtgRSb","outputId":"a11e8289-0daf-4fe1-f438-76088cb16330"},"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-e9f3fb46-cf1d-4397-bfa3-0477e51803d6\">\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-e9f3fb46-cf1d-4397-bfa3-0477e51803d6')\"\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-e9f3fb46-cf1d-4397-bfa3-0477e51803d6 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-e9f3fb46-cf1d-4397-bfa3-0477e51803d6');\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('float')/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":55,"status":"ok","timestamp":1663265398971,"user":{"displayName":"Satvik Maheshwari","userId":"09768921556990219284"},"user_tz":-330},"id":"bmK_HlgOdnJ6","outputId":"3b4a7974-a64e-4e84-8d2b-bf5374114eb9"},"outputs":[{"output_type":"stream","name":"stdout","text":["5289\n"]}],"source":["batch_size=4\n","IMG_SIZE=512\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":51,"status":"ok","timestamp":1663265398973,"user":{"displayName":"Satvik Maheshwari","userId":"09768921556990219284"},"user_tz":-330},"id":"VHAwwwbBdx-m","outputId":"57b03a2a-261f-4e1c-d436-ad8efe7a503e"},"outputs":[{"output_type":"stream","name":"stdout","text":["1133\n"]}],"source":["batch_size=4\n","IMG_SIZE=512\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":44,"status":"ok","timestamp":1663265398974,"user":{"displayName":"Satvik Maheshwari","userId":"09768921556990219284"},"user_tz":-330},"id":"tXcwqvkoNO9S","outputId":"2e2dc28f-cdea-4679-f118-d82b2e41f23d"},"outputs":[{"output_type":"stream","name":"stdout","text":["4534\n"]}],"source":["batch_size=1\n","IMG_SIZE=512\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":1243,"status":"ok","timestamp":1663265402263,"user":{"displayName":"Satvik Maheshwari","userId":"09768921556990219284"},"user_tz":-330},"id":"44POQXYOz0LQ","outputId":"aa0255c8-f448-4671-f670-3be439ac8a17"},"outputs":[{"output_type":"stream","name":"stdout","text":["Downloading data from https://storage.googleapis.com/tensorflow/keras-applications/vgg16/vgg16_weights_tf_dim_ordering_tf_kernels_notop.h5\n","58892288/58889256 [==============================] - 0s 0us/step\n","58900480/58889256 [==============================] - 0s 0us/step\n","Model: \"model\"\n","_________________________________________________________________\n"," Layer (type) Output Shape Param # \n","=================================================================\n"," input_1 (InputLayer) [(None, 512, 512, 3)] 0 \n"," \n"," block1_conv1 (Conv2D) (None, 512, 512, 64) 1792 \n"," \n"," block1_conv2 (Conv2D) (None, 512, 512, 64) 36928 \n"," \n"," block1_pool (MaxPooling2D) (None, 256, 256, 64) 0 \n"," \n"," block2_conv1 (Conv2D) (None, 256, 256, 128) 73856 \n"," \n"," block2_conv2 (Conv2D) (None, 256, 256, 128) 147584 \n"," \n"," block2_pool (MaxPooling2D) (None, 128, 128, 128) 0 \n"," \n"," block3_conv1 (Conv2D) (None, 128, 128, 256) 295168 \n"," \n"," block3_conv2 (Conv2D) (None, 128, 128, 256) 590080 \n"," \n"," block3_conv3 (Conv2D) (None, 128, 128, 256) 590080 \n"," \n"," block3_pool (MaxPooling2D) (None, 64, 64, 256) 0 \n"," \n"," block4_conv1 (Conv2D) (None, 64, 64, 512) 1180160 \n"," \n"," block4_conv2 (Conv2D) (None, 64, 64, 512) 2359808 \n"," \n"," block4_conv3 (Conv2D) (None, 64, 64, 512) 2359808 \n"," \n"," block4_pool (MaxPooling2D) (None, 32, 32, 512) 0 \n"," \n"," block5_conv1 (Conv2D) (None, 32, 32, 512) 2359808 \n"," \n"," block5_conv2 (Conv2D) (None, 32, 32, 512) 2359808 \n"," \n"," block5_conv3 (Conv2D) (None, 32, 32, 512) 2359808 \n"," \n"," block5_pool (MaxPooling2D) (None, 16, 16, 512) 0 \n"," \n"," average_pooling2d (AverageP (None, 4, 4, 512) 0 \n"," ooling2D) \n"," \n"," flatten (Flatten) (None, 8192) 0 \n"," \n"," dense (Dense) (None, 512) 4194816 \n"," \n"," dropout (Dropout) (None, 512) 0 \n"," \n"," dense_1 (Dense) (None, 2) 1026 \n"," \n","=================================================================\n","Total params: 18,910,530\n","Trainable params: 4,195,842\n","Non-trainable params: 14,714,688\n","_________________________________________________________________\n","None\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"]}],"source":["def VGG16_Model():\n"," # load the DenseNet121 network, ensuring the head FC layer sets are left off\n"," baseModel = tf.keras.applications.vgg16.VGG16(\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 = VGG16_Model()\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":"f1c404a2-87aa-4694-9e09-7c876c56c16a","executionInfo":{"status":"ok","timestamp":1662701116504,"user_tz":-330,"elapsed":3028949,"user":{"displayName":"Satvik Maheshwari","userId":"09768921556990219284"}}},"outputs":[{"output_type":"stream","name":"stdout","text":["Model Directory Already Exists\n","Epoch 1/20\n","165/165 [==============================] - ETA: 0s - loss: 0.7064 - accuracy: 0.6318\n","Epoch 1: val_loss improved from inf to 0.47726, saving model to ./content/drive/MyDrive/classification/saved Models/Pretrained VGG16/VGG16-best-model.h5\n","165/165 [==============================] - 534s 3s/step - loss: 0.7064 - accuracy: 0.6318 - val_loss: 0.4773 - val_accuracy: 0.8121 - lr: 0.0010\n","Epoch 2/20\n","165/165 [==============================] - ETA: 0s - loss: 0.5514 - accuracy: 0.6985\n","Epoch 2: val_loss improved from 0.47726 to 0.39291, saving model to ./content/drive/MyDrive/classification/saved Models/Pretrained VGG16/VGG16-best-model.h5\n","165/165 [==============================] - 466s 3s/step - loss: 0.5514 - accuracy: 0.6985 - val_loss: 0.3929 - val_accuracy: 0.8298 - lr: 0.0010\n","Epoch 3/20\n","165/165 [==============================] - ETA: 0s - loss: 0.5408 - accuracy: 0.7091\n","Epoch 3: val_loss did not improve from 0.39291\n","165/165 [==============================] - 432s 3s/step - loss: 0.5408 - accuracy: 0.7091 - val_loss: 0.5880 - val_accuracy: 0.6809 - lr: 0.0010\n","Epoch 4/20\n","165/165 [==============================] - ETA: 0s - loss: 0.5477 - accuracy: 0.7121\n","Epoch 4: val_loss did not improve from 0.39291\n","165/165 [==============================] - 397s 2s/step - loss: 0.5477 - accuracy: 0.7121 - val_loss: 0.4381 - val_accuracy: 0.8032 - lr: 0.0010\n","Epoch 5/20\n","165/165 [==============================] - ETA: 0s - loss: 0.5277 - accuracy: 0.7500\n","Epoch 5: val_loss did not improve from 0.39291\n","\n","Epoch 5: ReduceLROnPlateau reducing learning rate to 0.00010000000474974513.\n","165/165 [==============================] - 366s 2s/step - loss: 0.5277 - accuracy: 0.7500 - val_loss: 0.4585 - val_accuracy: 0.7872 - lr: 0.0010\n","Epoch 6/20\n","165/165 [==============================] - ETA: 0s - loss: 0.4983 - accuracy: 0.7485\n","Epoch 6: val_loss did not improve from 0.39291\n","165/165 [==============================] - 343s 2s/step - loss: 0.4983 - accuracy: 0.7485 - val_loss: 0.4370 - val_accuracy: 0.7908 - lr: 1.0000e-04\n","Epoch 7/20\n","165/165 [==============================] - ETA: 0s - loss: 0.4787 - accuracy: 0.8000\n","Epoch 7: val_loss did not improve from 0.39291\n","Restoring model weights from the end of the best epoch: 2.\n","165/165 [==============================] - 330s 2s/step - loss: 0.4787 - accuracy: 0.8000 - val_loss: 0.4107 - val_accuracy: 0.7996 - lr: 1.0000e-04\n","Epoch 7: early stopping\n"]}],"source":["modelPath = '/content/drive/MyDrive/classification/saved Models/Pretrained VGG16'\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 VGG16/VGG16-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_VGG16_1.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 VGG16/VGG16-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 VGG16/VGG16-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":["825104de21a449729eca07e1c8878958","9bb506948ae740ef8859537150cd360f","8c84ea2c190e4593a81f1e90aee97b05","57929fc493dd4f86904e209facd8d20e","e920d0798ece4a70a3856bd6da73ab4b","066f85912ec24dffa6ae7c2f53e2a22d","50609ddb68ab45549091889b747e834d","89400dd75da840a5a84d434591860710","817a62c5057c447ab436b15df5c846f8","41a03fd3817045c6830d7eec905b974b","38554233e2ef4a3a929ffa90c78eab0f"]},"executionInfo":{"status":"ok","timestamp":1662713530643,"user_tz":-330,"elapsed":1641556,"user":{"displayName":"Satvik Maheshwari","userId":"09768921556990219284"}},"outputId":"a561cb23-9d21-4e97-de06-c8ad09676dd6"},"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":"825104de21a449729eca07e1c8878958"}},"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","execution_count":null,"metadata":{"id":"7c06CiKQXsCZ"},"outputs":[],"source":["results['pred_prob'] = pred_prob"]},{"cell_type":"code","execution_count":null,"metadata":{"id":"klzydNLf98r-"},"outputs":[],"source":["results.to_csv('/content/drive/MyDrive/classification/saved Models/Pretrained VGG16/predictions.csv')"]},{"cell_type":"code","execution_count":2,"metadata":{"id":"O4LhABXzeEat","executionInfo":{"status":"ok","timestamp":1664608920988,"user_tz":-330,"elapsed":1509,"user":{"displayName":"Satvik Maheshwari","userId":"09768921556990219284"}}},"outputs":[],"source":["results = pd.read_csv('/content/drive/MyDrive/classification/saved Models/Pretrained VGG16/predictions.csv')"]},{"cell_type":"code","execution_count":6,"metadata":{"id":"5emo8RDLbDSO","colab":{"base_uri":"https://localhost:8080/","height":312},"executionInfo":{"status":"ok","timestamp":1664608976247,"user_tz":-330,"elapsed":533,"user":{"displayName":"Satvik Maheshwari","userId":"09768921556990219284"}},"outputId":"db7966b4-827b-463c-8d31-14079efd1fd0"},"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":"cP0c5DwZbMON","executionInfo":{"status":"ok","timestamp":1664608977968,"user_tz":-330,"elapsed":5,"user":{"displayName":"Satvik Maheshwari","userId":"09768921556990219284"}}},"execution_count":7,"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":["8116dd9787d7415f9791115117b74ce7","a0a0e0f44650412aa45323692048b001","e91b99a00fa44c548bb3c6075dec7435","5f38d35d008c4cc5a4c5341c9e334e09","4b3b5cd676434e9e915566961c03d5f4","2b4c4a3805f14e6ea202988a5b449688","4eb5fcc3a34b4a1fa826b0dab0241dac","c79b17d9660b42aeaca8017c0ba0fef2","1bda0e7d315b4596b40fed309af27459","15ceaab1a1dd4fd88c133f955472d2ba","7e772404fbc647cf97bf1a05ce12fb03"]},"id":"dk3ZKgV_bO5L","executionInfo":{"status":"ok","timestamp":1664608982476,"user_tz":-330,"elapsed":3807,"user":{"displayName":"Satvik Maheshwari","userId":"09768921556990219284"}},"outputId":"0e5475ac-7d17-44bd-baf6-0487103b5f5c"},"execution_count":8,"outputs":[{"output_type":"display_data","data":{"text/plain":[" 0%| | 0/1207 [00:00<?, ?it/s]"],"application/vnd.jupyter.widget-view+json":{"version_major":2,"version_minor":0,"model_id":"8116dd9787d7415f9791115117b74ce7"}},"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.to_csv('/content/drive/MyDrive/classification/saved Models/Pretrained VGG16/inference.csv')"],"metadata":{"id":"s1YSQCf_bVZI","executionInfo":{"status":"ok","timestamp":1664609023186,"user_tz":-330,"elapsed":23,"user":{"displayName":"Satvik Maheshwari","userId":"09768921556990219284"}}},"execution_count":10,"outputs":[]},{"cell_type":"code","execution_count":null,"metadata":{"id":"0l9o2hwUgwDG"},"outputs":[],"source":["model_tracker = pd.read_csv('/content/drive/MyDrive/Model_Tracker_Deeptek.csv')\n","\n","model_tracker = model_tracker.append({'model_id': \"VG_1\",\n"," 'architecture': \"VGG16\",\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 VGG16/VGG16-model.h5\" ,\n"," 'logs_path': \"/content/drive/MyDrive/logs/Binary_Classification_VGG16_1.csv\",\n"," 'Colab_URL': \"https://colab.research.google.com/drive/1DxIczGkuI7LQS-kSyqixAq4DzxLspp0H#scrollTo=0l9o2hwUgwDG\",\n"," 'comments': \"The image size for this model training was 512 x 512 and a good AU|ROC score of 0.82\"},ignore_index = True)\n","model_tracker.to_csv('/content/drive/MyDrive/Model_Tracker_Deeptek.csv')"]},{"cell_type":"code","source":["model_tracker = model_tracker.drop(columns = ['Unnamed: 0', 'Unnamed: 0.1',\t'Unnamed: 0.1.1',\t'Unnamed: 0.1.1.1',\t'Unnamed: 0.1.1.1.1',\t'Unnamed: 0.1.1.1.1.1'])"],"metadata":{"id":"Cgb4Jl8cWAEq"},"execution_count":null,"outputs":[]},{"cell_type":"code","source":["model_tracker.to_csv('/content/drive/MyDrive/Model_Tracker_Deeptek.csv')"],"metadata":{"id":"QOSzKMfeWdrb"},"execution_count":null,"outputs":[]},{"cell_type":"code","source":[],"metadata":{"id":"UO0tDOQYWieF"},"execution_count":null,"outputs":[]}],"metadata":{"colab":{"collapsed_sections":[],"provenance":[{"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":"1DxIczGkuI7LQS-kSyqixAq4DzxLspp0H","authorship_tag":"ABX9TyMRajtJHYFMcOEwyUI13Xbj"},"gpuClass":"standard","kernelspec":{"display_name":"Python 3","name":"python3"},"language_info":{"name":"python"},"widgets":{"application/vnd.jupyter.widget-state+json":{"825104de21a449729eca07e1c8878958":{"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_9bb506948ae740ef8859537150cd360f","IPY_MODEL_8c84ea2c190e4593a81f1e90aee97b05","IPY_MODEL_57929fc493dd4f86904e209facd8d20e"],"layout":"IPY_MODEL_e920d0798ece4a70a3856bd6da73ab4b"}},"9bb506948ae740ef8859537150cd360f":{"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_066f85912ec24dffa6ae7c2f53e2a22d","placeholder":"","style":"IPY_MODEL_50609ddb68ab45549091889b747e834d","value":"100%"}},"8c84ea2c190e4593a81f1e90aee97b05":{"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_89400dd75da840a5a84d434591860710","max":4534,"min":0,"orientation":"horizontal","style":"IPY_MODEL_817a62c5057c447ab436b15df5c846f8","value":4534}},"57929fc493dd4f86904e209facd8d20e":{"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_41a03fd3817045c6830d7eec905b974b","placeholder":"","style":"IPY_MODEL_38554233e2ef4a3a929ffa90c78eab0f","value":" 4534/4534 [27:21<00:00, 3.21it/s]"}},"e920d0798ece4a70a3856bd6da73ab4b":{"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}},"066f85912ec24dffa6ae7c2f53e2a22d":{"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}},"50609ddb68ab45549091889b747e834d":{"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":""}},"89400dd75da840a5a84d434591860710":{"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}},"817a62c5057c447ab436b15df5c846f8":{"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":""}},"41a03fd3817045c6830d7eec905b974b":{"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}},"38554233e2ef4a3a929ffa90c78eab0f":{"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":""}},"8116dd9787d7415f9791115117b74ce7":{"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_a0a0e0f44650412aa45323692048b001","IPY_MODEL_e91b99a00fa44c548bb3c6075dec7435","IPY_MODEL_5f38d35d008c4cc5a4c5341c9e334e09"],"layout":"IPY_MODEL_4b3b5cd676434e9e915566961c03d5f4"}},"a0a0e0f44650412aa45323692048b001":{"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_2b4c4a3805f14e6ea202988a5b449688","placeholder":"","style":"IPY_MODEL_4eb5fcc3a34b4a1fa826b0dab0241dac","value":"100%"}},"e91b99a00fa44c548bb3c6075dec7435":{"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_c79b17d9660b42aeaca8017c0ba0fef2","max":1207,"min":0,"orientation":"horizontal","style":"IPY_MODEL_1bda0e7d315b4596b40fed309af27459","value":1207}},"5f38d35d008c4cc5a4c5341c9e334e09":{"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_15ceaab1a1dd4fd88c133f955472d2ba","placeholder":"","style":"IPY_MODEL_7e772404fbc647cf97bf1a05ce12fb03","value":" 1207/1207 [00:03<00:00, 257.44it/s]"}},"4b3b5cd676434e9e915566961c03d5f4":{"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}},"2b4c4a3805f14e6ea202988a5b449688":{"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}},"4eb5fcc3a34b4a1fa826b0dab0241dac":{"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":""}},"c79b17d9660b42aeaca8017c0ba0fef2":{"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}},"1bda0e7d315b4596b40fed309af27459":{"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":""}},"15ceaab1a1dd4fd88c133f955472d2ba":{"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}},"7e772404fbc647cf97bf1a05ce12fb03":{"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} |