1 lines (1 with data), 56.0 kB
{"cells":[{"cell_type":"code","execution_count":1,"metadata":{"colab":{"base_uri":"https://localhost:8080/"},"executionInfo":{"elapsed":10417,"status":"ok","timestamp":1667213774704,"user":{"displayName":"Satvik Maheshwari","userId":"09768921556990219284"},"user_tz":-330},"id":"poHYeV3mMjlX","outputId":"5f32018b-5667-44a6-8526-ea7402efd1ee"},"outputs":[{"output_type":"stream","name":"stdout","text":["Looking in indexes: https://pypi.org/simple, https://us-python.pkg.dev/colab-wheels/public/simple/\n","Collecting pydicom\n"," Downloading pydicom-2.3.0-py3-none-any.whl (2.0 MB)\n","\u001b[K |████████████████████████████████| 2.0 MB 16.2 MB/s \n","\u001b[?25hInstalling collected packages: pydicom\n","Successfully installed pydicom-2.3.0\n"]}],"source":["!pip install pydicom\n","import math\n","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 tensorflow.keras.backend import flatten\n","from tqdm.notebook import tqdm\n","from sklearn.metrics import classification_report,confusion_matrix"]},{"cell_type":"code","execution_count":2,"metadata":{"executionInfo":{"elapsed":526,"status":"ok","timestamp":1667213775225,"user":{"displayName":"Satvik Maheshwari","userId":"09768921556990219284"},"user_tz":-330},"id":"ZMBvYPXhRRGZ"},"outputs":[],"source":["df = pd.read_csv('/content/drive/MyDrive/Colab Notebooks/unique_df.csv')"]},{"cell_type":"code","execution_count":null,"metadata":{"id":"lCdX4CB_N9sn"},"outputs":[],"source":["def create_mask(list1):\n"," for i in range(len(list1)):\n"," list1[i] = [int(item) for item in list1[i]]\n"," dim = np.zeros((1024,1024,))\n"," for i in range(len(list1)):\n"," x,y,w,h = list1[i]\n"," dim[x:x+w,y:y+h] = 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, 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"," \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","\n"," # Find list of IDs\n"," list_IDs_temp = [self.list_IDs[k] for k in indexes]\n","\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.dim, 1), dtype=int)\n"," \n"," # Generate data\n"," for i, ID in enumerate(list_IDs_temp):\n","\n"," # Store sample\n"," img = cv2.imread('/content/drive/MyDrive/Colab Notebooks/converted_train_images/' + ID + '.dcm.jpg')\n","\n"," #preprocessing of X-Ray\n"," grayimg = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)\n"," clahe = cv2.createCLAHE(clipLimit=2.0, tileGridSize=(16, 16))\n"," image = clahe.apply(grayimg) \n"," fimg = cv2.cvtColor(image, cv2.COLOR_GRAY2BGR)\n","\n"," #normalizing the image \n"," fimg = fimg/fimg.max()\n"," fimg = fimg.astype('float')\n","\n"," #Store Images\n"," X[i,] = cv2.resize(fimg, (IMG_SIZE,IMG_SIZE))\n","\n"," # Store masks\n"," lst = self.mapping[ID]\n"," mask1 = create_mask(lst)\n"," y[i] = np.expand_dims(cv2.resize(mask1,(IMG_SIZE,IMG_SIZE)),-1)\n","\n"," return X,y"]},{"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":"DgNKDkHzcwAC"},"outputs":[],"source":["Train = pd.read_csv('/content/drive/MyDrive/Data/Train.csv')\n","Val = pd.read_csv('/content/drive/MyDrive/Data/Valid.csv')\n","Test = pd.read_csv('/content/drive/MyDrive/Data/Test.csv')\n","\n","Train = Train.sample(frac=0.6,random_state=42)\n","Val = Val.sample(frac=0.6,random_state=42)"]},{"cell_type":"code","execution_count":null,"metadata":{"id":"NyASkMsXhy9D"},"outputs":[],"source":["Train['Masks'] = Train['Masks'].apply(lambda x: eval(x))\n","Test['Masks'] = Test['Masks'].apply(lambda x: eval(x))\n","Val['Masks'] = Val['Masks'].apply(lambda x: eval(x))"]},{"cell_type":"code","execution_count":null,"metadata":{"colab":{"base_uri":"https://localhost:8080/"},"executionInfo":{"elapsed":126,"status":"ok","timestamp":1667015165793,"user":{"displayName":"Satvik Maheshwari","userId":"09768921556990219284"},"user_tz":-330},"id":"bmK_HlgOdnJ6","outputId":"2d65f011-f803-4390-d5b1-8069d6454cb6"},"outputs":[{"name":"stdout","output_type":"stream","text":["1400\n"]}],"source":["batch_size=8\n","IMG_SIZE=512\n","Train_gen = DataGenerator(list(Train.patientId),\n"," list(Train.Masks),\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":120,"status":"ok","timestamp":1667015165796,"user":{"displayName":"Satvik Maheshwari","userId":"09768921556990219284"},"user_tz":-330},"id":"VHAwwwbBdx-m","outputId":"48be7eb6-8580-433f-ff8f-9f6f89710f12"},"outputs":[{"name":"stdout","output_type":"stream","text":["300\n"]}],"source":["batch_size=8\n","IMG_SIZE=512\n","Val_gen = DataGenerator(list(Val.patientId),\n"," list(Val.Masks),\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":108,"status":"ok","timestamp":1667015165798,"user":{"displayName":"Satvik Maheshwari","userId":"09768921556990219284"},"user_tz":-330},"id":"F5NXUZGuN4jn","outputId":"dcb957a6-b45f-4288-de92-8244c337337b"},"outputs":[{"name":"stdout","output_type":"stream","text":["4003\n"]}],"source":["batch_size=1\n","IMG_SIZE=512\n","Test_gen = DataGenerator(list(Test.patientId),\n"," list(Test.Masks),\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":"e6BjMecEt4oB"},"outputs":[],"source":["def mask_visualization(data,bno):\n"," for bi in range(8):\n"," fig = plt.figure(figsize=(15,10))\n"," rows=1\n"," columns=3\n","\n"," fig.add_subplot(rows,columns,1)\n"," # showing auto\n"," plt.imshow(data[bno][0][bi][:,:,-1],cmap='gray')\n"," plt.axis('image')\n"," plt.title(\"Xray\")\n","\n"," fig.add_subplot(rows,columns,2)\n"," # showing auto\n"," plt.imshow(data[bno][1][bi][:,:,-1],cmap='jet',alpha=0.3)\n"," plt.axis('image')\n"," plt.title(\"Mask\")\n","\n"," fig.add_subplot(rows,columns,3)\n"," # showing auto\n"," plt.imshow(data[bno][0][bi][:,:,-1],cmap='gray')\n"," plt.imshow(data[bno][1][bi][:,:,-1],cmap='jet',alpha=0.3)\n"," plt.axis('image')\n"," plt.title(\"Masked X-Ray\")"]},{"cell_type":"code","execution_count":null,"metadata":{"colab":{"base_uri":"https://localhost:8080/"},"executionInfo":{"elapsed":5002,"status":"ok","timestamp":1667015170712,"user":{"displayName":"Satvik Maheshwari","userId":"09768921556990219284"},"user_tz":-330},"id":"Av10dch6b7ng","outputId":"7170c7c6-4203-4722-e8db-bd73f0b45e6b"},"outputs":[{"name":"stdout","output_type":"stream","text":["Looking in indexes: https://pypi.org/simple, https://us-python.pkg.dev/colab-wheels/public/simple/\n","Collecting segmentation-models\n"," Downloading segmentation_models-1.0.1-py3-none-any.whl (33 kB)\n","Collecting keras-applications<=1.0.8,>=1.0.7\n"," Downloading Keras_Applications-1.0.8-py3-none-any.whl (50 kB)\n","\u001b[K |████████████████████████████████| 50 kB 7.2 MB/s \n","\u001b[?25hCollecting image-classifiers==1.0.0\n"," Downloading image_classifiers-1.0.0-py3-none-any.whl (19 kB)\n","Collecting efficientnet==1.0.0\n"," Downloading efficientnet-1.0.0-py3-none-any.whl (17 kB)\n","Requirement already satisfied: scikit-image in /usr/local/lib/python3.7/dist-packages (from efficientnet==1.0.0->segmentation-models) (0.18.3)\n","Requirement already satisfied: numpy>=1.9.1 in /usr/local/lib/python3.7/dist-packages (from keras-applications<=1.0.8,>=1.0.7->segmentation-models) (1.21.6)\n","Requirement already satisfied: h5py in /usr/local/lib/python3.7/dist-packages (from keras-applications<=1.0.8,>=1.0.7->segmentation-models) (3.1.0)\n","Requirement already satisfied: cached-property in /usr/local/lib/python3.7/dist-packages (from h5py->keras-applications<=1.0.8,>=1.0.7->segmentation-models) (1.5.2)\n","Requirement already satisfied: networkx>=2.0 in /usr/local/lib/python3.7/dist-packages (from scikit-image->efficientnet==1.0.0->segmentation-models) (2.6.3)\n","Requirement already satisfied: scipy>=1.0.1 in /usr/local/lib/python3.7/dist-packages (from scikit-image->efficientnet==1.0.0->segmentation-models) (1.7.3)\n","Requirement already satisfied: PyWavelets>=1.1.1 in /usr/local/lib/python3.7/dist-packages (from scikit-image->efficientnet==1.0.0->segmentation-models) (1.3.0)\n","Requirement already satisfied: tifffile>=2019.7.26 in /usr/local/lib/python3.7/dist-packages (from scikit-image->efficientnet==1.0.0->segmentation-models) (2021.11.2)\n","Requirement already satisfied: pillow!=7.1.0,!=7.1.1,>=4.3.0 in /usr/local/lib/python3.7/dist-packages (from scikit-image->efficientnet==1.0.0->segmentation-models) (7.1.2)\n","Requirement already satisfied: imageio>=2.3.0 in /usr/local/lib/python3.7/dist-packages (from scikit-image->efficientnet==1.0.0->segmentation-models) (2.9.0)\n","Requirement already satisfied: matplotlib!=3.0.0,>=2.0.0 in /usr/local/lib/python3.7/dist-packages (from scikit-image->efficientnet==1.0.0->segmentation-models) (3.2.2)\n","Requirement already satisfied: kiwisolver>=1.0.1 in /usr/local/lib/python3.7/dist-packages (from matplotlib!=3.0.0,>=2.0.0->scikit-image->efficientnet==1.0.0->segmentation-models) (1.4.4)\n","Requirement already satisfied: python-dateutil>=2.1 in /usr/local/lib/python3.7/dist-packages (from matplotlib!=3.0.0,>=2.0.0->scikit-image->efficientnet==1.0.0->segmentation-models) (2.8.2)\n","Requirement already satisfied: cycler>=0.10 in /usr/local/lib/python3.7/dist-packages (from matplotlib!=3.0.0,>=2.0.0->scikit-image->efficientnet==1.0.0->segmentation-models) (0.11.0)\n","Requirement already satisfied: pyparsing!=2.0.4,!=2.1.2,!=2.1.6,>=2.0.1 in /usr/local/lib/python3.7/dist-packages (from matplotlib!=3.0.0,>=2.0.0->scikit-image->efficientnet==1.0.0->segmentation-models) (3.0.9)\n","Requirement already satisfied: typing-extensions in /usr/local/lib/python3.7/dist-packages (from kiwisolver>=1.0.1->matplotlib!=3.0.0,>=2.0.0->scikit-image->efficientnet==1.0.0->segmentation-models) (4.1.1)\n","Requirement already satisfied: six>=1.5 in /usr/local/lib/python3.7/dist-packages (from python-dateutil>=2.1->matplotlib!=3.0.0,>=2.0.0->scikit-image->efficientnet==1.0.0->segmentation-models) (1.15.0)\n","Installing collected packages: keras-applications, image-classifiers, efficientnet, segmentation-models\n","Successfully installed efficientnet-1.0.0 image-classifiers-1.0.0 keras-applications-1.0.8 segmentation-models-1.0.1\n"]}],"source":["!pip install segmentation-models"]},{"cell_type":"code","execution_count":null,"metadata":{"colab":{"base_uri":"https://localhost:8080/"},"executionInfo":{"elapsed":118,"status":"ok","timestamp":1667015170714,"user":{"displayName":"Satvik Maheshwari","userId":"09768921556990219284"},"user_tz":-330},"id":"C1Ci2twRcf1l","outputId":"acb320fe-5954-4ece-c20b-807825dd9d9a"},"outputs":[{"name":"stdout","output_type":"stream","text":["Segmentation Models: using `keras` framework.\n"]}],"source":["import segmentation_models as sm\n","sm.set_framework('tf.keras')"]},{"cell_type":"code","execution_count":null,"metadata":{"colab":{"base_uri":"https://localhost:8080/"},"executionInfo":{"elapsed":10546,"status":"ok","timestamp":1667015181167,"user":{"displayName":"Satvik Maheshwari","userId":"09768921556990219284"},"user_tz":-330},"id":"yn-eCIlCe5Bh","outputId":"81b0628e-27f4-4d3b-ae98-a8dd6b9d816c"},"outputs":[{"name":"stdout","output_type":"stream","text":["Downloading data from https://github.com/fchollet/deep-learning-models/releases/download/v0.5/inception_v3_weights_tf_dim_ordering_tf_kernels_notop.h5\n","87910968/87910968 [==============================] - 4s 0us/step\n"]}],"source":["model = sm.Unet(backbone_name='inceptionv3',\n"," input_shape=(IMG_SIZE, IMG_SIZE, 3),\n"," classes=1, activation='sigmoid',\n"," weights=None,\n"," encoder_weights='imagenet',\n"," encoder_freeze=False,\n"," encoder_features='default',\n"," decoder_block_type='upsampling',\n"," decoder_filters=(256, 128, 64, 32, 16),\n"," decoder_use_batchnorm=True)"]},{"cell_type":"code","execution_count":null,"metadata":{"id":"o0MZMfpZg7cw"},"outputs":[],"source":["smooth = 0.000001\n","def dice_coef(y_true, y_pred):\n"," y_true_f = K.flatten(y_true)\n"," y_pred_f1 = K.flatten(K.round(y_pred))\n"," intersection = K.sum(y_true_f * y_pred_f1)\n"," return (2. * intersection) / (K.sum(y_true_f) + K.sum(y_pred_f1) + smooth)"]},{"cell_type":"code","execution_count":null,"metadata":{"id":"fvGNk3iLhk0T"},"outputs":[],"source":["smooth = 0.000001\n","def dice_loss(y_true, y_pred):\n"," y_true_f = K.flatten(y_true)\n"," y_pred_f = K.flatten(y_pred)\n"," intersection = y_true_f * y_pred_f\n"," score = (2. * K.sum(intersection) + smooth) / (K.sum(y_true_f) + K.sum(y_pred_f) + smooth)\n"," return 1. - score"]},{"cell_type":"code","execution_count":null,"metadata":{"id":"eDVwAHI-hpgJ"},"outputs":[],"source":["from tensorflow.keras.losses import binary_crossentropy\n","def weighted_bce_dice_loss(y_true, y_pred):\n"," return 0.85*binary_crossentropy(y_true, y_pred) + 0.15*dice_loss(y_true, y_pred)"]},{"cell_type":"code","execution_count":null,"metadata":{"id":"Re1SyMfWiEx2"},"outputs":[],"source":["from tensorflow.keras.optimizers import Adam\n","adam = Adam(learning_rate=0.0001)\n","model.compile(optimizer = adam, loss = binary_crossentropy , metrics=['accuracy',dice_coef])"]},{"cell_type":"code","execution_count":null,"metadata":{"id":"dRiOUOxPiK5m"},"outputs":[],"source":["from tensorflow.keras.callbacks import CSVLogger,ModelCheckpoint, LearningRateScheduler, EarlyStopping, ReduceLROnPlateau\n","\n","base_model_path = '/content/drive/MyDrive/weights'\n","model_checkpoint = ModelCheckpoint(\n"," os.path.join(base_model_path,'Unet_Inception_1_min_val_loss.hdf5'),\n"," monitor=\"val_loss\", mode='min',save_best_only=True, verbose=1)\n","\n","early_stop = EarlyStopping(monitor = 'val_loss', patience = 5, restore_best_weights=True, verbose=1)\n","\n","model_checkpoint_dice = ModelCheckpoint(\n"," os.path.join(base_model_path,'Unet_Inception_1_max_val_dice.hdf5'),\n"," monitor=\"val_dice_coef\", mode='max',save_best_only=True, verbose=1)\n","\n","csv_path = '/content/drive/MyDrive/logs/Unet_Inception_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, model_checkpoint_dice, reduce_lr, early_stop,csv_logger]"]},{"cell_type":"code","execution_count":null,"metadata":{"colab":{"base_uri":"https://localhost:8080/"},"executionInfo":{"elapsed":2578563,"status":"ok","timestamp":1665310182400,"user":{"displayName":"Satvik Maheshwari","userId":"09768921556990219284"},"user_tz":-330},"id":"7hjQoXF7j-Ql","outputId":"c4d9362b-d746-40e6-b970-bb6e7ad5f7ff"},"outputs":[{"name":"stdout","output_type":"stream","text":["Epoch 1/10\n","1400/1400 [==============================] - ETA: 0s - loss: 0.1552 - accuracy: 0.9641 - dice_coef: 0.0409\n","Epoch 1: val_loss improved from inf to 0.08807, saving model to /content/drive/MyDrive/weights/Unet_Inception_1_min_val_loss.hdf5\n","\n","Epoch 1: val_dice_coef improved from -inf to 0.08742, saving model to /content/drive/MyDrive/weights/Unet_Inception_1_max_val_dice.hdf5\n","1400/1400 [==============================] - 12890s 9s/step - loss: 0.1552 - accuracy: 0.9641 - dice_coef: 0.0409 - val_loss: 0.0881 - val_accuracy: 0.9748 - val_dice_coef: 0.0874 - lr: 1.0000e-04\n","Epoch 2/10\n","1400/1400 [==============================] - ETA: 0s - loss: 0.0779 - accuracy: 0.9721 - dice_coef: 0.2664\n","Epoch 2: val_loss improved from 0.08807 to 0.07802, saving model to /content/drive/MyDrive/weights/Unet_Inception_1_min_val_loss.hdf5\n","\n","Epoch 2: val_dice_coef improved from 0.08742 to 0.33941, saving model to /content/drive/MyDrive/weights/Unet_Inception_1_max_val_dice.hdf5\n","1400/1400 [==============================] - 1028s 734ms/step - loss: 0.0779 - accuracy: 0.9721 - dice_coef: 0.2664 - val_loss: 0.0780 - val_accuracy: 0.9675 - val_dice_coef: 0.3394 - lr: 1.0000e-04\n","Epoch 3/10\n","1400/1400 [==============================] - ETA: 0s - loss: 0.0674 - accuracy: 0.9744 - dice_coef: 0.3352\n","Epoch 3: val_loss improved from 0.07802 to 0.06577, saving model to /content/drive/MyDrive/weights/Unet_Inception_1_min_val_loss.hdf5\n","\n","Epoch 3: val_dice_coef did not improve from 0.33941\n","1400/1400 [==============================] - 1015s 725ms/step - loss: 0.0674 - accuracy: 0.9744 - dice_coef: 0.3352 - val_loss: 0.0658 - val_accuracy: 0.9758 - val_dice_coef: 0.2435 - lr: 1.0000e-04\n","Epoch 4/10\n","1400/1400 [==============================] - ETA: 0s - loss: 0.0591 - accuracy: 0.9767 - dice_coef: 0.3922\n","Epoch 4: val_loss did not improve from 0.06577\n","\n","Epoch 4: val_dice_coef did not improve from 0.33941\n","1400/1400 [==============================] - 1011s 722ms/step - loss: 0.0591 - accuracy: 0.9767 - dice_coef: 0.3922 - val_loss: 0.0715 - val_accuracy: 0.9735 - val_dice_coef: 0.3106 - lr: 1.0000e-04\n","Epoch 5/10\n","1400/1400 [==============================] - ETA: 0s - loss: 0.0486 - accuracy: 0.9806 - dice_coef: 0.4857\n","Epoch 5: val_loss did not improve from 0.06577\n","\n","Epoch 5: val_dice_coef did not improve from 0.33941\n","1400/1400 [==============================] - 1008s 720ms/step - loss: 0.0486 - accuracy: 0.9806 - dice_coef: 0.4857 - val_loss: 0.0721 - val_accuracy: 0.9733 - val_dice_coef: 0.3241 - lr: 1.0000e-04\n","Epoch 6/10\n","1400/1400 [==============================] - ETA: 0s - loss: 0.0395 - accuracy: 0.9842 - dice_coef: 0.5562\n","Epoch 6: val_loss did not improve from 0.06577\n","\n","Epoch 6: val_dice_coef did not improve from 0.33941\n","\n","Epoch 6: ReduceLROnPlateau reducing learning rate to 9.999999747378752e-06.\n","1400/1400 [==============================] - 1008s 720ms/step - loss: 0.0395 - accuracy: 0.9842 - dice_coef: 0.5562 - val_loss: 0.0787 - val_accuracy: 0.9731 - val_dice_coef: 0.3009 - lr: 1.0000e-04\n","Epoch 7/10\n","1400/1400 [==============================] - ETA: 0s - loss: 0.0297 - accuracy: 0.9878 - dice_coef: 0.6341\n","Epoch 7: val_loss did not improve from 0.06577\n","\n","Epoch 7: val_dice_coef did not improve from 0.33941\n","1400/1400 [==============================] - 1008s 720ms/step - loss: 0.0297 - accuracy: 0.9878 - dice_coef: 0.6341 - val_loss: 0.0828 - val_accuracy: 0.9738 - val_dice_coef: 0.3015 - lr: 1.0000e-05\n","Epoch 8/10\n","1400/1400 [==============================] - ETA: 0s - loss: 0.0247 - accuracy: 0.9898 - dice_coef: 0.6873\n","Epoch 8: val_loss did not improve from 0.06577\n","\n","Epoch 8: val_dice_coef did not improve from 0.33941\n","Restoring model weights from the end of the best epoch: 3.\n","1400/1400 [==============================] - 1789s 1s/step - loss: 0.0247 - accuracy: 0.9898 - dice_coef: 0.6873 - val_loss: 0.0901 - val_accuracy: 0.9732 - val_dice_coef: 0.3207 - lr: 1.0000e-05\n","Epoch 8: early stopping\n"]},{"data":{"text/plain":["<keras.callbacks.History at 0x7fa9b01a8150>"]},"execution_count":20,"metadata":{},"output_type":"execute_result"}],"source":["#TRAINING\n","if os.path.exists(csv_path):\n"," os.remove(csv_path)\n","\n","model.fit(Train_gen,\n"," validation_data=Val_gen,\n"," epochs=10,\n"," verbose=1,\n"," callbacks=callbacks)"]},{"cell_type":"code","execution_count":null,"metadata":{"id":"ZH83rvXGGkNK"},"outputs":[],"source":["model.load_weights('/content/drive/MyDrive/weights/Unet_Inception_1_min_val_loss.hdf5')"]},{"cell_type":"code","execution_count":null,"metadata":{"id":"tJNZFFxHHI99"},"outputs":[],"source":["def plot_masks(img,true,pred):\n"," plt.figure(figsize=(10,5))\n"," plt.subplot(1,2,1)\n"," plt.imshow(img)\n"," # plt.imshow(Test_gen[0][1][i][:,:,-1],cmap='jet',alpha=0.3)\n"," plt.imshow(true,cmap='jet',alpha=0.3)\n","\n"," plt.subplot(1,2,2)\n"," plt.imshow(img)\n"," # plt.imshow(np.squeeze(model.predict(Test_gen[i][0])),cmap='jet',alpha =0.3)\n"," plt.imshow(pred,cmap='jet',alpha=0.3)"]},{"cell_type":"code","execution_count":null,"metadata":{"colab":{"background_save":true,"base_uri":"https://localhost:8080/","height":1000,"output_embedded_package_id":"1EriivelIyeB0GF3BCliwO_eQCpF2pz22","referenced_widgets":["0fb4631286e54f21a5d1b0906da58c37","ea0e5a279f2f42308f2eb69e88713ca0","1444d773b65b472587ee84c63c45e138","806fb07e164f44148fa86a9012796734","0ecb586a07e1411d99dc78ef9dd142d0","ce9ccb08fc88434b9d9fc8d65a9903dd","4d11d24698e94a7e852530ac32f1ffe2","61a51a3bfe7f49fa8083bf7cada330cb","500d4f3aaefe40b591e72862b61aaaa4","794c3df3455e49f1af6a985226ca3bec","dcb2570db3c040d2a6c640c08b52baa0"]},"executionInfo":{"elapsed":146581,"status":"ok","timestamp":1667017307088,"user":{"displayName":"Satvik Maheshwari","userId":"09768921556990219284"},"user_tz":-330},"id":"8My-HNcAm-cU","outputId":"fe40f479-17cf-45a0-b4d6-a5ffa2934d53"},"outputs":[{"output_type":"display_data","data":{"text/plain":"Output hidden; open in https://colab.research.google.com to view."},"metadata":{}}],"source":["# lst = list(Test[Test['Target'] == 1].index)\n","pred_prob = []\n","for i in tqdm(range(len(Test_gen))):\n"," img = np.squeeze(Test_gen[i][0])\n"," # pred_prob.append(np.squeeze(model.predict(Test_gen[i][0])))\n"," true = np.squeeze(Test_gen[i][1])\n"," pred=np.squeeze(model.predict(Test_gen[i][0]))\n"," plot_masks(img,true,pred)\n"," if(i==100): break"]},{"cell_type":"code","execution_count":null,"metadata":{"id":"w4HYAHje8e5d"},"outputs":[],"source":["Test['pred_label']= Test.pred_prob.apply(lambda x: 1 if x>0.32 else 0)"]},{"cell_type":"code","execution_count":null,"metadata":{"id":"UBBz-jBRTW-y"},"outputs":[],"source":["TN, FP, FN, TP = confusion_matrix(Test.Target,Test.pred_label).ravel()"]},{"cell_type":"code","execution_count":null,"metadata":{"colab":{"base_uri":"https://localhost:8080/"},"executionInfo":{"elapsed":8,"status":"ok","timestamp":1667016902732,"user":{"displayName":"Satvik Maheshwari","userId":"09768921556990219284"},"user_tz":-330},"id":"k0Roptij8tKF","outputId":"235e4eaf-53ec-413e-b921-eb26d1338c1e"},"outputs":[{"name":"stdout","output_type":"stream","text":["572\n"]}],"source":["print(FP)"]},{"cell_type":"code","execution_count":null,"metadata":{"id":"HxTrmSct91QY"},"outputs":[],"source":["Precision = TP/(TP+FP)\n","Recall = TP / (FN+TP)"]},{"cell_type":"code","execution_count":null,"metadata":{"colab":{"base_uri":"https://localhost:8080/"},"executionInfo":{"elapsed":8,"status":"ok","timestamp":1667016903281,"user":{"displayName":"Satvik Maheshwari","userId":"09768921556990219284"},"user_tz":-330},"id":"1H2osrE6TuRt","outputId":"3596fa71-ea4e-4c01-a365-7fc115115035"},"outputs":[{"name":"stdout","output_type":"stream","text":["Sensitivity: 0.8633975481611208\n","Specificity: 0.8333333333333334\n","Recall: 0.8633975481611208\n","Precision: 0.4629107981220657\n","F1-Score: 0.6026894865525672\n"]}],"source":["print(\"Sensitivity:\", TP / (FN+TP))\n","print(\"Specificity:\", TN/(FP+TN))\n","print(\"Recall:\", TP / (FN+TP))\n","print(\"Precision:\", TP/(TP+FP))\n","print(\"F1-Score:\", 2 * (Precision * Recall)/ (Precision + Recall))"]},{"cell_type":"code","execution_count":null,"metadata":{"colab":{"base_uri":"https://localhost:8080/","height":295},"executionInfo":{"elapsed":1120,"status":"ok","timestamp":1667016928245,"user":{"displayName":"Satvik Maheshwari","userId":"09768921556990219284"},"user_tz":-330},"id":"vYYfVotdT6um","outputId":"1abaef26-005b-4baf-9a4a-6e7efab84bd2"},"outputs":[{"data":{"image/png":"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szUVKhH4FtRmZmsqVCIA34LazKxc4RKBmZmtzonAzKzgnAjMzArOicDMrOCcCMzMCs6JwMys4JwIzMwKzonAzKzgnAjMzArOicDMrOCcCMzMCs6JwMys4JwIzMwKbu16B2Bmzeutt96itbWV119/vd6hFMaAAQMYPnw4ffv2rfozTgRmlpvW1lYGDhzIqFGjkFTvcJpeRLBy5UpaW1sZPXp01Z9z15CZ5eb1119n8ODBTgI1IonBgwd3uQXmRGBmuXISqK33s78Lkwj8vGIzs/YVJhH4ecVmxXXttdciiYcffvjdefPnz2fPPfdcrdy0adOYPXs2kA10n3jiiYwZM4btttuOCRMmcOONN3Y7ltNPP53NN9+cLbbYgrlz57Zb5pZbbmG77bZj66235uCDD2bVqlUAPPzww0yYMIH+/ftz1llndTuWNoVJBODnFZsV1cyZM/nEJz7BzJkzq/7Mv/zLv/DMM8+wcOFC7rvvPq699lpeeeWVbsWxePFiZs2axaJFi7jppps4/PDDefvtt1cr884773DwwQcza9YsFi5cyKabbspll10GwEYbbcR5553H8ccf3604yvmsITOriaOPhgULenad48fDv/975TKvvvoqv//975k3bx577bUX3//+9ztd72uvvcaFF17IE088Qf/+/QH44Ac/yH777deteK+77jqmTp1K//79GT16NJtvvjl33XUXEyZMeLfMypUr6devH2PHjgVgt9124/TTT+eQQw5h4403ZuONN+b666/vVhzlCtUiMLPiue6665g0aRJjx45l8ODB3HvvvZ1+ZunSpYwcOZINNtig07LHHHMM48ePX+N1xhlnrFF2xYoVjBgx4t3p4cOHs2LFitXKDBkyhFWrVnHPPfcAMHv2bJYvX95pHN3hFoGZ1URn39zzMnPmTI466igApk6dysyZM9l+++07PLumq2fdnHPOOd2OsXz7s2bN4phjjuGNN95g9913p0+fPj26jXK5JgJJk4BzgT7ARRFxRtny/sDPge2BlcD+EfFknjGZWXG88MIL3HLLLTz00ENI4u2330YS06dPZ/Dgwbz44otrlB8yZAibb745Tz31FC+//HKnrYJjjjmGefPmrTF/6tSpnHjiiavNGzZs2Grf7ltbWxk2bNgan50wYQK33347ADfffDOPPvpo1XV+P3LrGpLUBzgf2AMY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\n","text/plain":["<Figure size 432x288 with 1 Axes>"]},"metadata":{},"output_type":"display_data"}],"source":["import sklearn.metrics as metrics\n","fpr, tpr, thresholds = metrics.roc_curve(Test.Target, Test.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()"]},{"cell_type":"code","source":["model_tracker = pd.DataFrame(columns = ['model_id','architecture','batch_size','img_size','optimizer','lossfunction','weight_path','logs_path','Colab_URL','comments'])"],"metadata":{"id":"IqS7W8Aarz8U","executionInfo":{"status":"ok","timestamp":1667214663533,"user_tz":-330,"elapsed":5,"user":{"displayName":"Satvik Maheshwari","userId":"09768921556990219284"}}},"execution_count":23,"outputs":[]},{"cell_type":"code","source":["model_tracker.append({'model_id' : \"UN_1\",\n"," 'architecture' : \"U-Net IncpetionV3\", \n"," 'batch_size' : 1,\n"," 'img_size' : 512,\n"," 'learning_rate' : 0.00001, \n"," 'optimizer' : \"Adam\", \n"," 'lossfunction' : \"Binary CrossEntropy\", \n"," 'weight_path' : \"/content/drive/MyDrive/weights/Unet_Inception_1_max_val_dice.hdf5 , /content/drive/MyDrive/weights/Unet_Inception_1_min_val_loss.hdf5\", \n"," 'logs_path' : \"/content/drive/MyDrive/logs/Unet_Inception_1.csv\", \n"," 'Colab_URL' : \"https://colab.research.google.com/drive/1m_V1-uCuR3uo--0Lj8e_cZyQAJ5e5YCB#scrollTo=U1OqRMPOr5rD\",\n"," 'comments' :\"The image size was 512 x 512 and it has a great AUC score of 0.91\" }, ignore_index = True)"],"metadata":{"colab":{"base_uri":"https://localhost:8080/","height":232},"id":"U1OqRMPOr5rD","executionInfo":{"status":"ok","timestamp":1667214681377,"user_tz":-330,"elapsed":511,"user":{"displayName":"Satvik Maheshwari","userId":"09768921556990219284"}},"outputId":"1a5da33c-9ba2-4914-c3a6-a0e99908b780"},"execution_count":25,"outputs":[{"output_type":"execute_result","data":{"text/plain":[" model_id architecture batch_size img_size optimizer \\\n","0 UN_1 U-Net IncpetionV3 1 512 Adam \n","\n"," lossfunction weight_path \\\n","0 Binary CrossEntropy /content/drive/MyDrive/weights/Unet_Inception_... \n","\n"," logs_path \\\n","0 /content/drive/MyDrive/logs/Unet_Inception_1.csv \n","\n"," Colab_URL \\\n","0 https://colab.research.google.com/drive/1m_V1-... \n","\n"," comments learning_rate \n","0 The image size was 512 x 512 and it has a grea... 0.00001 "],"text/html":["\n"," <div id=\"df-a97dd2ee-e3d2-48e2-91b4-2e530569e839\">\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>optimizer</th>\n"," <th>lossfunction</th>\n"," <th>weight_path</th>\n"," <th>logs_path</th>\n"," <th>Colab_URL</th>\n"," <th>comments</th>\n"," <th>learning_rate</th>\n"," </tr>\n"," </thead>\n"," <tbody>\n"," <tr>\n"," <th>0</th>\n"," <td>UN_1</td>\n"," <td>U-Net IncpetionV3</td>\n"," <td>1</td>\n"," <td>512</td>\n"," <td>Adam</td>\n"," <td>Binary CrossEntropy</td>\n"," <td>/content/drive/MyDrive/weights/Unet_Inception_...</td>\n"," <td>/content/drive/MyDrive/logs/Unet_Inception_1.csv</td>\n"," <td>https://colab.research.google.com/drive/1m_V1-...</td>\n"," <td>The image size was 512 x 512 and it has a grea...</td>\n"," <td>0.00001</td>\n"," </tr>\n"," </tbody>\n","</table>\n","</div>\n"," <button class=\"colab-df-convert\" onclick=\"convertToInteractive('df-a97dd2ee-e3d2-48e2-91b4-2e530569e839')\"\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-a97dd2ee-e3d2-48e2-91b4-2e530569e839 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-a97dd2ee-e3d2-48e2-91b4-2e530569e839');\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":25}]},{"cell_type":"code","source":["model_tracker.to_csv('/content/drive/MyDrive/Model_Tracker_Deeptek_Segmentation.csv')"],"metadata":{"id":"V1KL4qOOuWaq","executionInfo":{"status":"ok","timestamp":1667214699580,"user_tz":-330,"elapsed":512,"user":{"displayName":"Satvik Maheshwari","userId":"09768921556990219284"}}},"execution_count":26,"outputs":[]},{"cell_type":"code","source":[],"metadata":{"id":"JqMLcCTKuX9D"},"execution_count":null,"outputs":[]}],"metadata":{"accelerator":"GPU","colab":{"collapsed_sections":[],"provenance":[{"file_id":"1EanXRj0V1ttzigcm6cKz6LLUiD2MFOZN","timestamp":1661422765929}],"mount_file_id":"1m_V1-uCuR3uo--0Lj8e_cZyQAJ5e5YCB","authorship_tag":"ABX9TyOKIYejr/OfeQVF+SfN5hys"},"gpuClass":"standard","kernelspec":{"display_name":"Python 3","name":"python3"},"language_info":{"name":"python"},"widgets":{"application/vnd.jupyter.widget-state+json":{"0ecb586a07e1411d99dc78ef9dd142d0":{"model_module":"@jupyter-widgets/base","model_module_version":"1.2.0","model_name":"LayoutModel","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}},"0fb4631286e54f21a5d1b0906da58c37":{"model_module":"@jupyter-widgets/controls","model_module_version":"1.5.0","model_name":"HBoxModel","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_ea0e5a279f2f42308f2eb69e88713ca0","IPY_MODEL_1444d773b65b472587ee84c63c45e138","IPY_MODEL_806fb07e164f44148fa86a9012796734"],"layout":"IPY_MODEL_0ecb586a07e1411d99dc78ef9dd142d0"}},"1444d773b65b472587ee84c63c45e138":{"model_module":"@jupyter-widgets/controls","model_module_version":"1.5.0","model_name":"FloatProgressModel","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":"danger","description":"","description_tooltip":null,"layout":"IPY_MODEL_61a51a3bfe7f49fa8083bf7cada330cb","max":4003,"min":0,"orientation":"horizontal","style":"IPY_MODEL_500d4f3aaefe40b591e72862b61aaaa4","value":100}},"4d11d24698e94a7e852530ac32f1ffe2":{"model_module":"@jupyter-widgets/controls","model_module_version":"1.5.0","model_name":"DescriptionStyleModel","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":""}},"500d4f3aaefe40b591e72862b61aaaa4":{"model_module":"@jupyter-widgets/controls","model_module_version":"1.5.0","model_name":"ProgressStyleModel","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":""}},"61a51a3bfe7f49fa8083bf7cada330cb":{"model_module":"@jupyter-widgets/base","model_module_version":"1.2.0","model_name":"LayoutModel","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}},"794c3df3455e49f1af6a985226ca3bec":{"model_module":"@jupyter-widgets/base","model_module_version":"1.2.0","model_name":"LayoutModel","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}},"806fb07e164f44148fa86a9012796734":{"model_module":"@jupyter-widgets/controls","model_module_version":"1.5.0","model_name":"HTMLModel","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_794c3df3455e49f1af6a985226ca3bec","placeholder":"","style":"IPY_MODEL_dcb2570db3c040d2a6c640c08b52baa0","value":" 100/4003 [01:17<41:31, 1.57it/s]"}},"ce9ccb08fc88434b9d9fc8d65a9903dd":{"model_module":"@jupyter-widgets/base","model_module_version":"1.2.0","model_name":"LayoutModel","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}},"dcb2570db3c040d2a6c640c08b52baa0":{"model_module":"@jupyter-widgets/controls","model_module_version":"1.5.0","model_name":"DescriptionStyleModel","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":""}},"ea0e5a279f2f42308f2eb69e88713ca0":{"model_module":"@jupyter-widgets/controls","model_module_version":"1.5.0","model_name":"HTMLModel","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_ce9ccb08fc88434b9d9fc8d65a9903dd","placeholder":"","style":"IPY_MODEL_4d11d24698e94a7e852530ac32f1ffe2","value":" 2%"}}}}},"nbformat":4,"nbformat_minor":0}