{"cells":[{"cell_type":"code","source":["from google.colab import drive\n","drive.mount('/content/drive')"],"metadata":{"colab":{"base_uri":"https://localhost:8080/"},"id":"3RFn586au5yO","executionInfo":{"status":"ok","timestamp":1774196321774,"user_tz":-330,"elapsed":21251,"user":{"displayName":"JEGAN S","userId":"14149547572816431959"}},"outputId":"1afea3a4-779d-46bf-c413-41e6662944d2"},"id":"3RFn586au5yO","execution_count":1,"outputs":[{"output_type":"stream","name":"stdout","text":["Mounted at /content/drive\n"]}]},{"cell_type":"code","execution_count":2,"id":"6b1adf18","metadata":{"execution":{"iopub.execute_input":"2023-04-22T09:55:21.109788Z","iopub.status.busy":"2023-04-22T09:55:21.109363Z","iopub.status.idle":"2023-04-22T09:55:21.154814Z","shell.execute_reply":"2023-04-22T09:55:21.153689Z"},"papermill":{"duration":0.057354,"end_time":"2023-04-22T09:55:21.157507","exception":false,"start_time":"2023-04-22T09:55:21.100153","status":"completed"},"tags":[],"id":"6b1adf18","executionInfo":{"status":"ok","timestamp":1774196324021,"user_tz":-330,"elapsed":2218,"user":{"displayName":"JEGAN S","userId":"14149547572816431959"}}},"outputs":[],"source":["import os\n","train_images_path = '/content/drive/My Drive/Data/dataset/VesselNet/VesselNet/dataset/train/origin'\n","train_mask_path = '/content/drive/My Drive/Data/dataset/VesselNet/VesselNet/dataset/train/groundtruth'\n","\n","test_images_path = '/content/drive/My Drive/Data/dataset/VesselNet/VesselNet/test/origin'\n","test_mask_path = '/content/drive/My Drive/Data/dataset/VesselNet/VesselNet/test/groundtruth'\n","\n","\n","train_images_files = sorted([os.path.join(train_images_path, i) for i in os.listdir(train_images_path)])\n","train_mask_files = sorted([os.path.join(train_mask_path, i) for i in os.listdir(train_mask_path)])\n","\n","test_images_files = sorted([os.path.join(test_images_path, i) for i in os.listdir(test_images_path)])\n","test_mask_files = sorted([os.path.join(test_mask_path, i) for i in os.listdir(test_mask_path)])"]},{"cell_type":"code","execution_count":3,"id":"c1473d16","metadata":{"execution":{"iopub.execute_input":"2023-04-22T09:55:21.172555Z","iopub.status.busy":"2023-04-22T09:55:21.172276Z","iopub.status.idle":"2023-04-22T09:55:21.177988Z","shell.execute_reply":"2023-04-22T09:55:21.176791Z"},"papermill":{"duration":0.016238,"end_time":"2023-04-22T09:55:21.180786","exception":false,"start_time":"2023-04-22T09:55:21.164548","status":"completed"},"tags":[],"colab":{"base_uri":"https://localhost:8080/"},"id":"c1473d16","executionInfo":{"status":"ok","timestamp":1774196324060,"user_tz":-330,"elapsed":35,"user":{"displayName":"JEGAN S","userId":"14149547572816431959"}},"outputId":"cf3ac416-de27-4998-bc62-7602c42ddb37"},"outputs":[{"output_type":"stream","name":"stdout","text":["40\n","40\n","20\n","20\n"]}],"source":["print(len(train_images_files))\n","print(len(train_mask_files))\n","print(len(test_images_files))\n","print(len(test_mask_files))"]},{"cell_type":"code","execution_count":4,"id":"555a02ea","metadata":{"execution":{"iopub.execute_input":"2023-04-22T09:55:21.196435Z","iopub.status.busy":"2023-04-22T09:55:21.195651Z","iopub.status.idle":"2023-04-22T09:55:31.765075Z","shell.execute_reply":"2023-04-22T09:55:31.763915Z"},"papermill":{"duration":10.580374,"end_time":"2023-04-22T09:55:31.767800","exception":false,"start_time":"2023-04-22T09:55:21.187426","status":"completed"},"tags":[],"id":"555a02ea","executionInfo":{"status":"ok","timestamp":1774196339687,"user_tz":-330,"elapsed":15625,"user":{"displayName":"JEGAN S","userId":"14149547572816431959"}}},"outputs":[],"source":["import cv2\n","import math\n","import numpy as np\n","import matplotlib.pyplot as plt\n","import seaborn as sns\n","sns.set()\n","\n","import tensorflow as tf\n","import tensorflow.keras.backend as K\n","from tensorflow.keras.utils import Sequence\n","from tensorflow.keras.models import Model\n","from tensorflow.keras.layers import Input, Conv2D, MaxPooling2D, Conv2DTranspose, concatenate, BatchNormalization, Dropout, average\n","from tensorflow.keras.losses import binary_crossentropy\n","from tensorflow.keras.callbacks import EarlyStopping, ReduceLROnPlateau\n","\n","# ✅ FINAL FIXED albumentations (latest compatible)\n","from albumentations import (\n","    Compose, OneOf,\n","    CLAHE, HorizontalFlip, VerticalFlip, Rotate,\n","    RGBShift, RandomBrightnessContrast,\n","    Transpose, ShiftScaleRotate, RandomRotate90,\n","    OpticalDistortion, GridDistortion, ElasticTransform,\n","    ChannelShuffle, RandomCrop\n",")\n","\n","from sklearn.metrics import classification_report\n","from PIL import Image"]},{"cell_type":"code","execution_count":5,"id":"4a127258","metadata":{"execution":{"iopub.execute_input":"2023-04-22T09:55:31.783749Z","iopub.status.busy":"2023-04-22T09:55:31.783070Z","iopub.status.idle":"2023-04-22T09:55:31.801530Z","shell.execute_reply":"2023-04-22T09:55:31.800464Z"},"papermill":{"duration":0.029202,"end_time":"2023-04-22T09:55:31.804201","exception":false,"start_time":"2023-04-22T09:55:31.774999","status":"completed"},"tags":[],"colab":{"base_uri":"https://localhost:8080/"},"id":"4a127258","executionInfo":{"status":"ok","timestamp":1774196339710,"user_tz":-330,"elapsed":20,"user":{"displayName":"JEGAN S","userId":"14149547572816431959"}},"outputId":"3f09f1f3-74b0-43f4-98e1-c60d0cbb2ec1"},"outputs":[{"output_type":"stream","name":"stderr","text":["/tmp/ipykernel_2455/4233546162.py:30: UserWarning: Argument(s) 'always_apply' are not valid for transform CLAHE\n","  CLAHE(always_apply=True, p=1.0),\n","/usr/local/lib/python3.12/dist-packages/albumentations/core/validation.py:114: UserWarning: ShiftScaleRotate is a special case of Affine transform. Please use Affine transform instead.\n","  original_init(self, **validated_kwargs)\n","/tmp/ipykernel_2455/4233546162.py:87: UserWarning: Argument(s) 'always_apply' are not valid for transform CLAHE\n","  CLAHE(always_apply=True, p=1.0)\n"]}],"source":["def read_image(file_loc, dim=(256,256)):\n","    img = Image.open(file_loc)\n","    img = img.resize(dim)\n","    img = np.array(img)\n","    return img\n","\n","def read_mask(file_loc, dim=(256,256)):\n","    img = Image.open(file_loc)\n","    img = img.resize(dim)\n","    img = np.array(img)\n","    img = (img>0).astype(np.uint8)\n","    return img\n","\n","#...............................................................................................................\n","\n","class Train_Generator(Sequence):\n","\n","  def __init__(self, x_set, y_set, batch_size=5, img_dim=(512,512), augmentation=False):\n","      self.x = x_set\n","      self.y = y_set\n","      self.batch_size = batch_size\n","      self.img_dim = img_dim\n","      self.augmentation = augmentation\n","\n","  def __len__(self):\n","      return math.ceil(len(self.x) / self.batch_size)\n","\n","  aug = Compose(\n","    [\n","      CLAHE(always_apply=True, p=1.0),\n","\n","      OneOf([\n","             HorizontalFlip(p=0.5),\n","             VerticalFlip(p=0.5),\n","             Transpose()\n","             ], p=1.0),\n","\n","      OneOf([\n","             ShiftScaleRotate(),\n","             RandomRotate90()\n","             ], p=0.9),\n","\n","      OneOf([\n","             OpticalDistortion(),\n","             GridDistortion(),\n","             ElasticTransform(),\n","      ], p=0.4),\n","\n","      OneOf([\n","             RGBShift(),\n","             RandomBrightnessContrast()\n","      ], p=0.2)\n","    ])\n","\n","  def __getitem__(self, idx):\n","      batch_x = self.x[idx * self.batch_size:(idx + 1) * self.batch_size]\n","      batch_y = self.y[idx * self.batch_size:(idx + 1) * self.batch_size]\n","\n","      batch_x = np.array([read_image(file_name, self.img_dim) for file_name in batch_x])\n","      batch_y = np.array([read_mask(file_name, self.img_dim) for file_name in batch_y])\n","\n","      if self.augmentation is True:\n","        aug = [self.aug(image=i, mask=j) for i, j in zip(batch_x, batch_y)]\n","        batch_x = np.array([i['image'] for i in aug])\n","        batch_y = np.array([j['mask'] for j in aug])\n","\n","      batch_y = np.expand_dims(batch_y, -1)\n","      #return batch_x/255.0, [batch_y, batch_y, batch_y, batch_y]\n","      return batch_x/255.0, batch_y/1.0\n","\n","#...............................................................................................................\n","\n","class Val_Generator(Sequence):\n","\n","  def __init__(self, x_set, y_set, batch_size=5, img_dim=(512,512), augmentation=False):\n","      self.x = x_set\n","      self.y = y_set\n","      self.batch_size = batch_size\n","      self.img_dim = img_dim\n","      self.augmentation = augmentation\n","\n","  def __len__(self):\n","      return math.ceil(len(self.x) / self.batch_size)\n","\n","  aug = Compose(\n","    [\n","      CLAHE(always_apply=True, p=1.0)\n","    ])\n","\n","  def __getitem__(self, idx):\n","      batch_x = self.x[idx * self.batch_size:(idx + 1) * self.batch_size]\n","      batch_y = self.y[idx * self.batch_size:(idx + 1) * self.batch_size]\n","\n","      batch_x = np.array([read_image(file_name, self.img_dim) for file_name in batch_x])\n","      batch_y = np.array([read_mask(file_name, self.img_dim) for file_name in batch_y])\n","\n","      if self.augmentation is True:\n","        aug = [self.aug(image=i, mask=j) for i, j in zip(batch_x, batch_y)]\n","        batch_x = np.array([i['image'] for i in aug])\n","        batch_y = np.array([j['mask'] for j in aug])\n","\n","      batch_y = np.expand_dims(batch_y, -1)\n","      return batch_x/255.0, batch_y/1.0\n","\n","     # return batch_x/255.0, [batch_y, batch_y, batch_y, batch_y]"]},{"cell_type":"markdown","id":"a5b94b65","metadata":{"papermill":{"duration":0.006357,"end_time":"2023-04-22T09:55:31.817330","exception":false,"start_time":"2023-04-22T09:55:31.810973","status":"completed"},"tags":[],"id":"a5b94b65"},"source":["Input pipeline\n"]},{"cell_type":"code","execution_count":6,"id":"e1b47678","metadata":{"execution":{"iopub.execute_input":"2023-04-22T09:55:31.832018Z","iopub.status.busy":"2023-04-22T09:55:31.831686Z","iopub.status.idle":"2023-04-22T09:55:35.551328Z","shell.execute_reply":"2023-04-22T09:55:35.550242Z"},"papermill":{"duration":3.729851,"end_time":"2023-04-22T09:55:35.553930","exception":false,"start_time":"2023-04-22T09:55:31.824079","status":"completed"},"tags":[],"id":"e1b47678","executionInfo":{"status":"ok","timestamp":1774196340199,"user_tz":-330,"elapsed":463,"user":{"displayName":"JEGAN S","userId":"14149547572816431959"}},"colab":{"base_uri":"https://localhost:8080/"},"outputId":"66c34b9c-9727-4b7f-f078-c69c1e6176b1"},"outputs":[{"output_type":"stream","name":"stderr","text":["WARNING:tensorflow:From /tmp/ipykernel_2455/1615918769.py:9: calling DatasetV2.from_generator (from tensorflow.python.data.ops.dataset_ops) with output_types is deprecated and will be removed in a future version.\n","Instructions for updating:\n","Use output_signature instead\n","WARNING:tensorflow:From /tmp/ipykernel_2455/1615918769.py:9: calling DatasetV2.from_generator (from tensorflow.python.data.ops.dataset_ops) with output_shapes is deprecated and will be removed in a future version.\n","Instructions for updating:\n","Use output_signature instead\n"]}],"source":["batch_img_dim = (10, 256, 256, 3)\n","batch_msk_dim = (10, 256, 256, 1)\n","\n","def train_generator():\n","  return Train_Generator(train_images_files, train_mask_files, batch_size = batch_img_dim[0], img_dim=(batch_img_dim[1], batch_img_dim[2]), augmentation=True).__iter__()\n","def valid_generator():\n","  return Val_Generator(test_images_files, test_mask_files, batch_size = batch_img_dim[0], img_dim=(batch_img_dim[1], batch_img_dim[2]), augmentation=True).__iter__()\n","\n","ds_train = tf.data.Dataset.from_generator(\n","    train_generator,\n","    output_types=(tf.float32, tf.float32),\n","    output_shapes=([batch_img_dim[0], batch_img_dim[1], batch_img_dim[2], batch_img_dim[3]], [batch_msk_dim[0], batch_msk_dim[1], batch_msk_dim[2], batch_msk_dim[3]])\n",").repeat()\n","\n","ds_valid = tf.data.Dataset.from_generator(\n","    valid_generator,\n","    output_types=(tf.float32, tf.float32),\n","    output_shapes=([batch_img_dim[0], batch_img_dim[1], batch_img_dim[2], batch_img_dim[3]], [batch_msk_dim[0], batch_msk_dim[1], batch_msk_dim[2], batch_msk_dim[3]])\n",").repeat()"]},{"cell_type":"code","source":["import gc\n","tf.keras.backend.clear_session()\n","gc.collect()"],"metadata":{"colab":{"base_uri":"https://localhost:8080/"},"id":"J3ONcYEr83A9","executionInfo":{"status":"ok","timestamp":1774196340627,"user_tz":-330,"elapsed":22,"user":{"displayName":"JEGAN S","userId":"14149547572816431959"}},"outputId":"6add6d8d-7c7e-4a6e-91bb-cdc7c51a7536"},"id":"J3ONcYEr83A9","execution_count":7,"outputs":[{"output_type":"execute_result","data":{"text/plain":["0"]},"metadata":{},"execution_count":7}]},{"cell_type":"code","source":["import tensorflow as tf\n","import random\n","# 🔥 ADD THIS\n","seed = 5 #\n","np.random.seed(seed)\n","tf.random.set_seed(seed)\n","random.seed(seed)\n","\n","import tensorflow.keras.backend as K\n","from tensorflow.keras.layers import *\n","from tensorflow.keras.models import Model\n","from tensorflow.keras.optimizers import Adam\n","from tensorflow.keras.callbacks import EarlyStopping, ReduceLROnPlateau\n","\n","# =========================\n","# LOSS & METRICS\n","# =========================\n","def dice_loss(y_true, y_pred):\n","    intersection = tf.reduce_sum(y_true * y_pred) + 1.0\n","    dice_score = (2. * intersection + 1.0) / (tf.reduce_sum(y_true) + tf.reduce_sum(y_pred) + 1.0)\n","    return 1. - dice_score\n","\n","def dice(y_true, y_pred):\n","    intersection = tf.reduce_sum(y_true * y_pred) + 1.0\n","    return (2. * intersection + 1.0) / (tf.reduce_sum(y_true) + tf.reduce_sum(y_pred) + 1.0)\n","\n","def bce_dice_loss(y_true, y_pred):\n","    return tf.keras.losses.binary_crossentropy(y_true, y_pred) + dice_loss(y_true, y_pred)\n","\n","def iou(y_true, y_pred):\n","    y_true = tf.cast(y_true > 0.5, tf.float32)\n","    y_pred = tf.cast(y_pred > 0.5, tf.float32)\n","    intersection = tf.reduce_sum(y_true * y_pred)\n","    union = tf.reduce_sum(y_true) + tf.reduce_sum(y_pred) - intersection\n","    return (intersection + 1e-7) / (union + 1e-7)\n","\n","# =========================\n","# BLOCKS\n","# =========================\n","class conv_bnorm(tf.keras.layers.Layer):\n","    def __init__(self, f, **kwargs):\n","        super(conv_bnorm, self).__init__(**kwargs)\n","        self.conv1 = Conv2D(f, 3, activation='relu', padding='same')\n","        self.bn1 = BatchNormalization()\n","        self.conv2 = Conv2D(f, 3, activation='relu', padding='same')\n","        self.bn2 = BatchNormalization()\n","\n","    def call(self, x):\n","        x = self.conv1(x)\n","        x = self.bn1(x)\n","        x = self.conv2(x)\n","        x = self.bn2(x)\n","        return x\n","\n","def SubpixelUpsampling(x, y):\n","    depth = K.int_shape(x)[-1]\n","    x = Conv2D(depth * 2, 1, padding='same')(x)\n","    x = Lambda(lambda z: tf.nn.depth_to_space(z, 2))(x)\n","    return concatenate([x, y])\n","\n","# =========================\n","# MODEL\n","# =========================\n","inputs = Input((256,256,3))\n","\n","# -------- M1 --------\n","c1 = conv_bnorm(32)(inputs); p1 = MaxPooling2D()(c1)\n","c2 = conv_bnorm(64)(p1); p2 = MaxPooling2D()(c2)\n","c3 = conv_bnorm(128)(p2); p3 = MaxPooling2D()(c3)\n","c4 = conv_bnorm(256)(p3); p4 = MaxPooling2D()(c4)\n","c5 = conv_bnorm(512)(p4); p5 = MaxPooling2D()(c5)\n","c6 = conv_bnorm(1024)(p5)\n","\n","u5 = SubpixelUpsampling(c6, c5); u5 = conv_bnorm(512)(u5)\n","u4 = SubpixelUpsampling(u5, c4); u4 = conv_bnorm(256)(u4)\n","u3 = SubpixelUpsampling(u4, c3); u3 = conv_bnorm(128)(u3)\n","u2 = SubpixelUpsampling(u3, c2); u2 = conv_bnorm(64)(u2)\n","u1 = SubpixelUpsampling(u2, c1); u1 = conv_bnorm(32)(u1)\n","\n","m1out = Conv2D(1,1,activation='sigmoid')(u1)\n","\n","# -------- M2 --------\n","m2 = concatenate([u1, inputs])\n","c1_2 = conv_bnorm(32)(m2); p1_2 = MaxPooling2D()(c1_2)\n","c2_2 = conv_bnorm(64)(p1_2); p2_2 = MaxPooling2D()(c2_2)\n","c3_2 = conv_bnorm(128)(p2_2); p3_2 = MaxPooling2D()(c3_2)\n","c4_2 = conv_bnorm(256)(p3_2); p4_2 = MaxPooling2D()(c4_2)\n","c5_2 = conv_bnorm(512)(p4_2); p5_2 = MaxPooling2D()(c5_2)\n","c6_2 = conv_bnorm(1024)(p5_2)\n","\n","u5_2 = SubpixelUpsampling(c6_2, c5_2)\n","u5_2 = concatenate([u5_2, u5]); u5_2 = conv_bnorm(512)(u5_2)\n","\n","u4_2 = SubpixelUpsampling(u5_2, c4_2)   # FIXED\n","u4_2 = concatenate([u4_2, u4]); u4_2 = conv_bnorm(256)(u4_2)\n","\n","u3_2 = SubpixelUpsampling(u4_2, c3_2)\n","u3_2 = concatenate([u3_2, u3]); u3_2 = conv_bnorm(128)(u3_2)\n","\n","u2_2 = SubpixelUpsampling(u3_2, c2_2)\n","u2_2 = concatenate([u2_2, u2]); u2_2 = conv_bnorm(64)(u2_2)\n","\n","u1_2 = SubpixelUpsampling(u2_2, c1_2)\n","u1_2 = concatenate([u1_2, u1]); u1_2 = conv_bnorm(32)(u1_2)\n","\n","# -------- M3 --------\n","m3 = concatenate([u1_2, inputs])\n","c1_3 = conv_bnorm(32)(m3); p1_3 = MaxPooling2D()(c1_3)\n","c2_3 = conv_bnorm(64)(p1_3); p2_3 = MaxPooling2D()(c2_3)\n","c3_3 = conv_bnorm(128)(p2_3); p3_3 = MaxPooling2D()(c3_3)\n","c4_3 = conv_bnorm(256)(p3_3); p4_3 = MaxPooling2D()(c4_3)\n","c5_3 = conv_bnorm(512)(p4_3); p5_3 = MaxPooling2D()(c5_3)\n","c6_3 = conv_bnorm(1024)(p5_3)\n","\n","u5_3 = SubpixelUpsampling(c6_3, c5_3)\n","u5_3 = concatenate([u5_3, u5, u5_2]); u5_3 = conv_bnorm(512)(u5_3)\n","\n","u4_3 = SubpixelUpsampling(u5_3, c4_3)   # FIXED\n","u4_3 = concatenate([u4_3, u4, u4_2]); u4_3 = conv_bnorm(256)(u4_3)\n","\n","u3_3 = SubpixelUpsampling(u4_3, c3_3)\n","u3_3 = concatenate([u3_3, u3, u3_2]); u3_3 = conv_bnorm(128)(u3_3)\n","\n","u2_3 = SubpixelUpsampling(u3_3, c2_3)\n","u2_3 = concatenate([u2_3, u2, u2_2]); u2_3 = conv_bnorm(64)(u2_3)\n","\n","u1_3 = SubpixelUpsampling(u2_3, c1_3)\n","u1_3 = concatenate([u1_3, u1, u1_2]); u1_3 = conv_bnorm(32)(u1_3)\n","\n","# -------- M4 --------\n","m4 = concatenate([u1_3, inputs])\n","c1_4 = conv_bnorm(32)(m4); p1_4 = MaxPooling2D()(c1_4)\n","c2_4 = conv_bnorm(64)(p1_4); p2_4 = MaxPooling2D()(c2_4)\n","c3_4 = conv_bnorm(128)(p2_4); p3_4 = MaxPooling2D()(c3_4)\n","c4_4 = conv_bnorm(256)(p3_4); p4_4 = MaxPooling2D()(c4_4)\n","c5_4 = conv_bnorm(512)(p4_4); p5_4 = MaxPooling2D()(c5_4)\n","c6_4 = conv_bnorm(1024)(p5_4)\n","\n","u5_4 = SubpixelUpsampling(c6_4, c5_4)\n","u5_4 = concatenate([u5_4, u5, u5_2, u5_3]); u5_4 = conv_bnorm(512)(u5_4)\n","\n","u4_4 = SubpixelUpsampling(u5_4, c4_4)   # FIXED\n","u4_4 = concatenate([u4_4, u4, u4_2, u4_3]); u4_4 = conv_bnorm(256)(u4_4)\n","\n","u3_4 = SubpixelUpsampling(u4_4, c3_4)\n","u3_4 = concatenate([u3_4, u3, u3_2, u3_3]); u3_4 = conv_bnorm(128)(u3_4)\n","\n","u2_4 = SubpixelUpsampling(u3_4, c2_4)\n","u2_4 = concatenate([u2_4, u2, u2_2, u2_3]); u2_4 = conv_bnorm(64)(u2_4)\n","\n","u1_4 = SubpixelUpsampling(u2_4, c1_4)\n","u1_4 = concatenate([u1_4, u1, u1_2, u1_3]); u1_4 = conv_bnorm(32)(u1_4)\n","\n","output = Conv2D(1,1,activation='sigmoid')(u1_4)\n","\n","model = Model(inputs, output)\n","\n","# =========================\n","# COMPILE\n","# =========================\n","model.compile(\n","    optimizer=Adam(1e-3),\n","    loss=bce_dice_loss,\n","    metrics=[iou, dice]\n",")\n","\n","# =========================\n","# CALLBACKS\n","# =========================\n","callbacks = [\n","    EarlyStopping(patience=10, restore_best_weights=True),\n","    ReduceLROnPlateau(patience=3)\n","]\n","\n","# =========================\n","# TRAIN\n","# =========================\n","history = model.fit(\n","    ds_train,\n","    steps_per_epoch=20,\n","    epochs=40,\n","    validation_data=ds_valid,\n","    validation_steps=4,\n","    callbacks=callbacks\n",")"],"metadata":{"colab":{"base_uri":"https://localhost:8080/"},"id":"adaUOD3mkjLe","executionInfo":{"status":"ok","timestamp":1774197789970,"user_tz":-330,"elapsed":1449341,"user":{"displayName":"JEGAN S","userId":"14149547572816431959"}},"outputId":"93c6c12e-4e47-40bc-ba3f-21f707ef3cc0"},"id":"adaUOD3mkjLe","execution_count":8,"outputs":[{"output_type":"stream","name":"stdout","text":["Epoch 1/40\n","\u001b[1m20/20\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m294s\u001b[0m 5s/step - dice: 0.4145 - iou: 0.3561 - loss: 1.1738 - val_dice: 0.1943 - val_iou: 0.0281 - val_loss: 1.3845 - learning_rate: 0.0010\n","Epoch 2/40\n","\u001b[1m20/20\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m27s\u001b[0m 1s/step - dice: 0.5446 - iou: 0.5476 - loss: 0.8298 - val_dice: 0.0524 - val_iou: 0.0217 - val_loss: 16.0603 - learning_rate: 0.0010\n","Epoch 3/40\n","\u001b[1m20/20\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m27s\u001b[0m 1s/step - dice: 0.6090 - iou: 0.6054 - loss: 0.6991 - val_dice: 0.3007 - val_iou: 0.1769 - val_loss: 126.4290 - learning_rate: 0.0010\n","Epoch 4/40\n","\u001b[1m20/20\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m27s\u001b[0m 1s/step - dice: 0.6670 - iou: 0.6459 - loss: 0.5920 - val_dice: 0.3010 - val_iou: 0.1772 - val_loss: 115.2760 - learning_rate: 0.0010\n","Epoch 5/40\n","\u001b[1m20/20\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m28s\u001b[0m 1s/step - dice: 0.6974 - iou: 0.6670 - loss: 0.5377 - val_dice: 0.3060 - val_iou: 0.1804 - val_loss: 30.3500 - learning_rate: 1.0000e-04\n","Epoch 6/40\n","\u001b[1m20/20\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m28s\u001b[0m 1s/step - dice: 0.7050 - iou: 0.6748 - loss: 0.5226 - val_dice: 0.3406 - val_iou: 0.2057 - val_loss: 6.7376 - learning_rate: 1.0000e-04\n","Epoch 7/40\n","\u001b[1m20/20\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m29s\u001b[0m 1s/step - dice: 0.7089 - iou: 0.6777 - loss: 0.5155 - val_dice: 0.3846 - val_iou: 0.2673 - val_loss: 1.3490 - learning_rate: 1.0000e-04\n","Epoch 8/40\n","\u001b[1m20/20\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m29s\u001b[0m 1s/step - dice: 0.7119 - iou: 0.6761 - loss: 0.5144 - val_dice: 0.3884 - val_iou: 0.2763 - val_loss: 1.2140 - learning_rate: 1.0000e-04\n","Epoch 9/40\n","\u001b[1m20/20\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m29s\u001b[0m 1s/step - dice: 0.7184 - iou: 0.6850 - loss: 0.4975 - val_dice: 0.3714 - val_iou: 0.2296 - val_loss: 0.9919 - learning_rate: 1.0000e-04\n","Epoch 10/40\n","\u001b[1m20/20\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m29s\u001b[0m 1s/step - dice: 0.7232 - iou: 0.6885 - loss: 0.4893 - val_dice: 0.4413 - val_iou: 0.3127 - val_loss: 0.9064 - learning_rate: 1.0000e-04\n","Epoch 11/40\n","\u001b[1m20/20\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m28s\u001b[0m 1s/step - dice: 0.7263 - iou: 0.6875 - loss: 0.4874 - val_dice: 0.4603 - val_iou: 0.3245 - val_loss: 0.9008 - learning_rate: 1.0000e-04\n","Epoch 12/40\n","\u001b[1m20/20\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m28s\u001b[0m 1s/step - dice: 0.7291 - iou: 0.6901 - loss: 0.4811 - val_dice: 0.4500 - val_iou: 0.3100 - val_loss: 0.9307 - learning_rate: 1.0000e-04\n","Epoch 13/40\n","\u001b[1m20/20\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m42s\u001b[0m 2s/step - dice: 0.7333 - iou: 0.6931 - loss: 0.4728 - val_dice: 0.5426 - val_iou: 0.4429 - val_loss: 0.8123 - learning_rate: 1.0000e-04\n","Epoch 14/40\n","\u001b[1m20/20\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m28s\u001b[0m 1s/step - dice: 0.7371 - iou: 0.6942 - loss: 0.4693 - val_dice: 0.5033 - val_iou: 0.3671 - val_loss: 0.8753 - learning_rate: 1.0000e-04\n","Epoch 15/40\n","\u001b[1m20/20\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m42s\u001b[0m 2s/step - dice: 0.7410 - iou: 0.6989 - loss: 0.4595 - val_dice: 0.5738 - val_iou: 0.4631 - val_loss: 0.7826 - learning_rate: 1.0000e-04\n","Epoch 16/40\n","\u001b[1m20/20\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m40s\u001b[0m 2s/step - dice: 0.7443 - iou: 0.7018 - loss: 0.4527 - val_dice: 0.5847 - val_iou: 0.4727 - val_loss: 0.8017 - learning_rate: 1.0000e-04\n","Epoch 17/40\n","\u001b[1m20/20\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m29s\u001b[0m 1s/step - dice: 0.7466 - iou: 0.7003 - loss: 0.4515 - val_dice: 0.6004 - val_iou: 0.4871 - val_loss: 0.7498 - learning_rate: 1.0000e-04\n","Epoch 18/40\n","\u001b[1m20/20\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m28s\u001b[0m 1s/step - dice: 0.7502 - iou: 0.7034 - loss: 0.4444 - val_dice: 0.6220 - val_iou: 0.5254 - val_loss: 0.7309 - learning_rate: 1.0000e-04\n","Epoch 19/40\n","\u001b[1m20/20\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m28s\u001b[0m 1s/step - dice: 0.7533 - iou: 0.7058 - loss: 0.4387 - val_dice: 0.6359 - val_iou: 0.5365 - val_loss: 0.7160 - learning_rate: 1.0000e-04\n","Epoch 20/40\n","\u001b[1m20/20\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m28s\u001b[0m 1s/step - dice: 0.7567 - iou: 0.7096 - loss: 0.4309 - val_dice: 0.6627 - val_iou: 0.5660 - val_loss: 0.6375 - learning_rate: 1.0000e-04\n","Epoch 21/40\n","\u001b[1m20/20\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m28s\u001b[0m 1s/step - dice: 0.7572 - iou: 0.7067 - loss: 0.4335 - val_dice: 0.6930 - val_iou: 0.6132 - val_loss: 0.5600 - learning_rate: 1.0000e-04\n","Epoch 22/40\n","\u001b[1m20/20\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m28s\u001b[0m 1s/step - dice: 0.7586 - iou: 0.7066 - loss: 0.4306 - val_dice: 0.7104 - val_iou: 0.6379 - val_loss: 0.5134 - learning_rate: 1.0000e-04\n","Epoch 23/40\n","\u001b[1m20/20\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m41s\u001b[0m 2s/step - dice: 0.7643 - iou: 0.7141 - loss: 0.4179 - val_dice: 0.7277 - val_iou: 0.6620 - val_loss: 0.4789 - learning_rate: 1.0000e-04\n","Epoch 24/40\n","\u001b[1m20/20\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m29s\u001b[0m 1s/step - dice: 0.7669 - iou: 0.7150 - loss: 0.4149 - val_dice: 0.7484 - val_iou: 0.6863 - val_loss: 0.4377 - learning_rate: 1.0000e-04\n","Epoch 25/40\n","\u001b[1m20/20\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m29s\u001b[0m 1s/step - dice: 0.7689 - iou: 0.7153 - loss: 0.4123 - val_dice: 0.7497 - val_iou: 0.6859 - val_loss: 0.4318 - learning_rate: 1.0000e-04\n","Epoch 26/40\n","\u001b[1m20/20\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m30s\u001b[0m 2s/step - dice: 0.7697 - iou: 0.7156 - loss: 0.4104 - val_dice: 0.7640 - val_iou: 0.7039 - val_loss: 0.4105 - learning_rate: 1.0000e-04\n","Epoch 27/40\n","\u001b[1m20/20\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m28s\u001b[0m 1s/step - dice: 0.7741 - iou: 0.7201 - loss: 0.4017 - val_dice: 0.7663 - val_iou: 0.7126 - val_loss: 0.4015 - learning_rate: 1.0000e-04\n","Epoch 28/40\n","\u001b[1m20/20\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m28s\u001b[0m 1s/step - dice: 0.7791 - iou: 0.7253 - loss: 0.3926 - val_dice: 0.7727 - val_iou: 0.7146 - val_loss: 0.3926 - learning_rate: 1.0000e-04\n","Epoch 29/40\n","\u001b[1m20/20\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m28s\u001b[0m 1s/step - dice: 0.7850 - iou: 0.7301 - loss: 0.3835 - val_dice: 0.7782 - val_iou: 0.7203 - val_loss: 0.3873 - learning_rate: 1.0000e-04\n","Epoch 30/40\n","\u001b[1m20/20\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m28s\u001b[0m 1s/step - dice: 0.7829 - iou: 0.7267 - loss: 0.3878 - val_dice: 0.7778 - val_iou: 0.7184 - val_loss: 0.3854 - learning_rate: 1.0000e-04\n","Epoch 31/40\n","\u001b[1m20/20\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m28s\u001b[0m 1s/step - dice: 0.7886 - iou: 0.7337 - loss: 0.3756 - val_dice: 0.7819 - val_iou: 0.7207 - val_loss: 0.3852 - learning_rate: 1.0000e-04\n","Epoch 32/40\n","\u001b[1m20/20\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m28s\u001b[0m 1s/step - dice: 0.7864 - iou: 0.7276 - loss: 0.3829 - val_dice: 0.7852 - val_iou: 0.7232 - val_loss: 0.3774 - learning_rate: 1.0000e-04\n","Epoch 33/40\n","\u001b[1m20/20\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m27s\u001b[0m 1s/step - dice: 0.7882 - iou: 0.7316 - loss: 0.3761 - val_dice: 0.7870 - val_iou: 0.7246 - val_loss: 0.3778 - learning_rate: 1.0000e-04\n","Epoch 34/40\n","\u001b[1m20/20\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m28s\u001b[0m 1s/step - dice: 0.7952 - iou: 0.7371 - loss: 0.3664 - val_dice: 0.7890 - val_iou: 0.7248 - val_loss: 0.3772 - learning_rate: 1.0000e-04\n","Epoch 35/40\n","\u001b[1m20/20\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m28s\u001b[0m 1s/step - dice: 0.7920 - iou: 0.7330 - loss: 0.3712 - val_dice: 0.7924 - val_iou: 0.7275 - val_loss: 0.3711 - learning_rate: 1.0000e-04\n","Epoch 36/40\n","\u001b[1m20/20\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m28s\u001b[0m 1s/step - dice: 0.7933 - iou: 0.7322 - loss: 0.3719 - val_dice: 0.7947 - val_iou: 0.7296 - val_loss: 0.3665 - learning_rate: 1.0000e-04\n","Epoch 37/40\n","\u001b[1m20/20\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m27s\u001b[0m 1s/step - dice: 0.7985 - iou: 0.7396 - loss: 0.3588 - val_dice: 0.7942 - val_iou: 0.7263 - val_loss: 0.3774 - learning_rate: 1.0000e-04\n","Epoch 38/40\n","\u001b[1m20/20\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m28s\u001b[0m 1s/step - dice: 0.7942 - iou: 0.7326 - loss: 0.3675 - val_dice: 0.7958 - val_iou: 0.7295 - val_loss: 0.3656 - learning_rate: 1.0000e-04\n","Epoch 39/40\n","\u001b[1m20/20\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m27s\u001b[0m 1s/step - dice: 0.8017 - iou: 0.7421 - loss: 0.3529 - val_dice: 0.7979 - val_iou: 0.7296 - val_loss: 0.3676 - learning_rate: 1.0000e-04\n","Epoch 40/40\n","\u001b[1m20/20\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m27s\u001b[0m 1s/step - dice: 0.8066 - iou: 0.7469 - loss: 0.3458 - val_dice: 0.7999 - val_iou: 0.7282 - val_loss: 0.3700 - learning_rate: 1.0000e-04\n"]}]},{"cell_type":"code","source":["print(\"Final Train Loss:\", history.history['loss'][-1])\n","print(\"Final Val Loss:\", history.history['val_loss'][-1])"],"metadata":{"colab":{"base_uri":"https://localhost:8080/"},"id":"hC-Ne264kfbQ","executionInfo":{"status":"ok","timestamp":1774197789998,"user_tz":-330,"elapsed":11,"user":{"displayName":"JEGAN S","userId":"14149547572816431959"}},"outputId":"efda7a2a-6af6-4360-c433-4736015ab873"},"id":"hC-Ne264kfbQ","execution_count":9,"outputs":[{"output_type":"stream","name":"stdout","text":["Final Train Loss: 0.3458475172519684\n","Final Val Loss: 0.3700132668018341\n"]}]},{"cell_type":"code","source":["import matplotlib.pyplot as plt\n","\n","plt.plot(history.history['loss'], label='Train Loss')\n","plt.plot(history.history['val_loss'], label='Val Loss')\n","plt.legend()\n","plt.title('Training vs Validation Loss')\n","plt.xlabel('Epochs')\n","plt.ylabel('Loss')\n","plt.show()"],"metadata":{"colab":{"base_uri":"https://localhost:8080/","height":480},"id":"U70OkYfJrV9u","executionInfo":{"status":"ok","timestamp":1774197790502,"user_tz":-330,"elapsed":500,"user":{"displayName":"JEGAN S","userId":"14149547572816431959"}},"outputId":"06a959ad-54c8-4b03-ff1f-5aa7294628d6"},"id":"U70OkYfJrV9u","execution_count":10,"outputs":[{"output_type":"display_data","data":{"text/plain":["<Figure size 640x480 with 1 Axes>"],"image/png":"iVBORw0KGgoAAAANSUhEUgAAAkUAAAHPCAYAAABdva7iAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjAsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvlHJYcgAAAAlwSFlzAAAPYQAAD2EBqD+naQAAYnJJREFUeJzt3Xl4U2Xe//H3ydIF2pSCiMoiFIe9UBxkBxVQZBFHBAVFXFCUERQYR4Fn1NHxcRtnRBB1BFfcF9SfWlERBEVkHp1BXFCBsiOoLF2gpWlyfn+kSRta6JKkSU4/r+vianKfk3O+d05Kvr23Y5imaSIiIiJSz9miHYCIiIhILFBSJCIiIoKSIhERERFASZGIiIgIoKRIREREBFBSJCIiIgIoKRIREREBlBSJiIiIAEqKRERERAAlRSJxbdasWQwaNKhWr50/fz7t27cPc0TWVNl7NWjQIGbNmlXla5csWUL79u3ZuXNn2OLZuXMn7du3Z8mSJWE7pogoKRKJiPbt21fr39q1a6MdqqXs27ePTp06cfPNNx9zn4KCArp27crUqVPrMLLaeeedd3jmmWeiHUaQWbNm0b1792iHIRIRjmgHIGJFDzzwQNDzt99+m9WrV1cob9u2bUjn+dvf/kZtb184ZcoUJk+eHNL5Y02TJk3o27cvH3/8MYWFhSQnJ1fY56OPPuLIkSOMGjUqpHMtXboUwzBCOkZV3n33XTZu3MiVV14ZVN68eXPWr1+Pw6H/wkXCSb9RIhFwwQUXBD3/+uuvWb16dYXyox3ri/xYnE5nreIDcDgclvxSPf/88/n0009Zvnw5I0aMqLD93XffJTU1lbPOOiuk8yQkJIT0+lAYhkFiYmLUzi9iVeo+E4mSyy+/nJEjR/Ltt99y2WWX0a1bN/75z38CsGzZMiZPnkz//v3p0qULQ4YMYcGCBXg8nqBjHD2myD/W5Mknn+SVV15hyJAhdOnShYsuuoj169cHvbaycTLt27fnrrvuYtmyZYwcOZIuXbowYsQIVq1aVSH+tWvXMnr0aDIzMxkyZAgvv/xytcYp3XXXXXTv3p3CwsIK22bOnEm/fv0C9fzmm2+YNGkSvXr1omvXrgwaNIjZs2cf9/jnnHMODRo04J133qmwbd++faxZs4ahQ4eSkJDAl19+yY033shZZ51Fly5dOPPMM7nnnnsoKio67jmg8jFFGzduZOLEiXTt2pWBAwfy6KOP4vV6K7y2Otf38ssv55NPPmHXrl2B7lb/tT7WmKI1a9Zw6aWXkpWVRY8ePZgyZQqbN28O2sd/jbZt28asWbPo0aMHv//975k9e3al16S23n//fUaPHk3Xrl3p1asXN998M3v37g3a59dff2X27NkMHDiQLl260L9/f6ZMmRI0/qo2nwGR2rLen4kiceTgwYNce+21jBgxglGjRtGkSRMA3nzzTRo0aMBVV11FgwYN+OKLL5g3bx4FBQXceuutVR733Xff5dChQ1xyySUYhsGiRYuYNm0ay5Ytq7J16auvvuLDDz/k0ksvpWHDhixevJgbb7yRFStWkJ6eDsD333/PNddcQ9OmTZk2bRper5cFCxbQuHHjKmMbPnw4L7zwAp988gnDhg0LlBcWFrJixQouvPBC7HY7+/btY9KkSaSnpzN58mRcLhc7d+7ko48+Ou7xGzRowKBBg/jggw84ePAgjRo1CmzLzs7G4/Fw/vnnA74usKKiIsaPH0+jRo1Yv349zz//PHv27GHevHlV1qW8X3/9lYkTJ+LxeJg8eTLJycm8+uqrlbboVOf6Xn/99eTn57Nnz55AEtCwYcNjnv/zzz/n2muvpUWLFkydOpWioiKef/55xo8fz5IlS2jRokXQ/tOnT6dFixbMnDmT77//ntdee43GjRvz5z//uUb1rsySJUuYPXs2mZmZzJw5k3379vHcc8/xn//8h7feeguXywXAtGnT2LRpExMmTKB58+bs37+f1atX8/PPP9OiRYtafwZEas0UkYi78847zXbt2gWVTZgwwWzXrp350ksvVdi/sLCwQtltt91mduvWzTxy5Eig7NZbbzXPPvvswPMdO3aY7dq1M3v27GkePHgwUL5s2TKzXbt25vLlywNl8+bNqxBTu3btzM6dO5vbtm0LlG3YsMFs166duXjx4kDZddddZ3br1s3cs2dPoGzr1q1mp06dKhzzaF6v1xwwYIA5bdq0oPLs7GyzXbt25v/93/+ZpmmaH330kdmuXTtz/fr1xz1eZT755BOzXbt25ssvvxxUfvHFF5sDBgwwPR6PaZqVv8//+te/zPbt25u7du0KlFX2Xp199tnmrbfeGnj+v//7v2a7du3Mr7/+OlC2b98+8/e//73Zrl07c8eOHYHy6l7fyZMnB11fP/91fuONNwJlF1xwgdmnTx/zwIEDgbINGzaYHTp0MG+55ZYKdZk9e3bQMW+44QazZ8+eFc51tFtvvdXMyso65vbi4mKzT58+5siRI82ioqJA+YoVK8x27dqZDz/8sGmappmbm2u2a9fOXLRo0TGPFcpnQKQ21H0mEkUJCQmMHj26QnlSUlLgcUFBAfv376dHjx4UFhaSk5NT5XGHDx9OWlpa4HmPHj0A2LFjR5Wv7du3L61atQo879ChAykpKYHXejwe1qxZw+DBg2nWrFlgv1NPPZUBAwZUeXzDMDjvvPNYuXIlhw4dCpS///77NGvWjN///vcApKamAvDJJ5/gdrurPG55/fr1o3Hjxrz77ruBsh07drBu3TpGjBiBzeb7r6/8+3z48GH2799P9+7dMU2T77//vkbnXLlyJVlZWXTt2jVQ1rhx40CrVHmhXt+j/fLLL2zYsIELL7wwqGWsQ4cO9O3bl5UrV1Z4zbhx44Ke9+jRg4MHD1JQUFDj85f37bffsm/fPsaPHx/USnbWWWeRkZHBJ598AvjeA6fTyb///W9yc3MrPVYonwGR2lD3mUgUNWvWrNIBuxs3bmTu3Ll88cUXFb6k8vPzqzzuySefHPTcnyDl5eXV+LX+1/tfu2/fPoqKijj11FMr7FdZWWWGDx/Os88+y/Llyzn//PM5dOgQK1euDHT3AfTs2ZOhQ4fyyCOP8Mwzz9CzZ0+GDBnC+eefX+UgZ4fDwfDhw3nxxRfZu3cvzZo1CyRI5Wed7d69m3nz5rF8+fIKX8w1TQ52795Nt27dKpS3adOmQlmo17eycx/rXG3btuWzzz7j8OHDNGjQIFB+yimnBO3n79LKzc0lJSWlxjFUJ5aMjAy++uorwPcHwc0338z9999Pv3796NatG2eddRZ/+MMfaNq0KRDaZ0CkNtRSJBJF5VsM/PLy8pgwYQI//PADN954I48//jhPP/10YO2dygbuHs1ut1dablZj+n4or62urKwsmjdvzvvvvw/AihUrKCoqYvjw4YF9DMNg3rx5vPLKK0yYMIG9e/cyZ84cRo8eHdTCdCyjRo3C6/UGkqH33nuP0047jY4dOwK+Fq+rrrqKTz75hGuuuYYFCxbw9NNPc9999wHVe59rIxzXNxz8rWVHC+d1rsqVV17JBx98wMyZM0lMTOThhx9m+PDhgVa6UD8DIjWlpEgkxvz73//m4MGD3HfffVxxxRWcffbZ9O3bN6g7LJqaNGlCYmIi27Ztq7CtsrJjGTZsGJ9++ikFBQVkZ2fTvHlzsrKyKuyXlZXFjBkzWLJkCQ8++CAbN24kOzu7yuN369aNVq1a8e677/LDDz+wcePGoK6sn376ia1btzJr1iwmT57MkCFD6Nu3LyeeeGK161DeKaecUmn9t2zZEvS8Jte3uusg+Vt9jj4XQE5ODunp6UGtRJF0vFi2bNlSoYWqVatWXH311Tz11FO8++67uN1unnrqqaB9avsZEKkpJUUiMcb/F3z5v9iLi4t58cUXoxVSELvdHlggsfwU623btvHpp59W+zjDhw+nuLiYN998k08//TRoJhr4unGObrXwt/IUFxdX6xznn38+33//PfPmzcMwDEaOHBnYVtn7bJomzz33XLXrUN6ZZ57JunXrgpY+2L9/f4WlAWpyfZOTk6vVnXbiiSfSsWNH3nrrraAu0p9++onVq1dz5pln1rg+tdWlSxeaNGnCyy+/HHSdVq5cyebNmwPrQxUWFnLkyJGg17Zq1YqGDRsGXheOz4BITWhMkUiM6d69O2lpacyaNYvLL78cwzB4++2367RboypTp07ls88+Y/z48YwfPx6v18vzzz/P7373OzZs2FCtY3Tu3JlTTz2Vhx56iOLi4qCuM/BNW3/ppZcYMmQIrVq14tChQ7z66qukpKQwcODAap1j1KhRLFiwgI8//pjTTz89aFp6RkYGrVq14v7772fv3r2kpKTwwQcfVGvcVWWuueYa3n77ba655homTpwYmJJ/yimn8OOPPwb2q8n17dy5M9nZ2dx7771kZmYGlhuozC233MK1117LJZdcwpgxYwJT8lNTU8N+SxO3282jjz5aoTwtLY3LLruMm2++mdmzZzNhwgRGjBgRmJLfvHnzwOrcW7du5corr+S8887jtNNOw263s2zZMn777bfAopvh+AyI1ISSIpEYk56ezuOPP87999/P3LlzcblcjBo1ij59+jBp0qRohwf4WgMWLlzIAw88wMMPP8zJJ5/MjTfeSE5OTo1mTw0bNozHH3+cU089lc6dOwdt69mzJ9988w3Z2dn89ttvpKam0rVrVx588EFatmxZreO3bt2azMxMvvnmmwqzwJxOJ48//jh33303//rXv0hMTOScc87hsssuq3Ll8cqceOKJPPfc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kVinSN1nIiJSHygpsppwzj7TbT5ERKQeUVJkMeEcU4RuCCsiIvWIkiILMU0zrGOK1H0mIiL1iZIiK/EUBx6GZUxRglqKRESk/lBSZCH+QdYA2MN37zPcRZimN/TjiYiIxDAlRVbiT4rsDgxb6Jc20H0G4D4S8vFERERimZIiC/EPsg7LGkUAdicYvo+IutBERMTqlBRZSTjvewYYhhHUhSYiImJlSoosxAzjGkV+gVt96KawIiJicUqKrCTMLUWgBRxFRKT+UFJkIWEfUwRl9z9TUiQiIhanpMhKItFSVLqqtcYUiYiI1SkpspCym8GGr6XIUEuRiIjUE3GZFH388ceMHTuW7t27079/f2666SZ27NhRYb/XXnuNoUOHkpmZyahRo1ixYkUUoq1DERhojX9MUbGSIhERsba4S4rWrl3L1KlTOe2001iwYAFz5szhhx9+4Oqrr6aoqOyL+7333uO2225j2LBhLFy4kKysLKZOncq6deuiF3yEhfVmsKXK7n+m2WciImJtjmgHUFPvvfcep5xyCvfcc49vHR2gcePGXHHFFXz77bf06NEDgHnz5jFixAimT58OQO/evfnpp59YsGABCxcujFb4kRWRKfm6/5mIiNQPcddSVFJSQsOGDQMJEUBqaipQepd4YMeOHWzdupVhw4YFvXb48OGsWbOG4uJirCgSY4q0eKOIiNQXcddSNHr0aN5++21eeOEFRo0axcGDB/nnP/9Jp06dOP300wHIyckBoE2bNkGvbdu2LW63mx07dtC2bdtax+BwhDeXtNttQT9ry+bxJUW2hMSwxViSVDr7rORIyMcMVz1jneppHfWhjqB6Wo3qWXtxlxT16NGDRx55hD/96U/cddddAHTs2JFFixZht9sByM3NBcDlcgW91v/cv702bDaD9PSGtX798bhcySG93m33cgRokJpCozDFmN8ojULAYbrDVu9Q6xkvVE/rqA91BNXTalTPmou7pOg///kPt9xyCxdffDFnnXUWBw8e5NFHH2Xy5Mm8+OKLJCUlVX2QEHi9Jnl5h8N6TLvdhsuVTF5eIR6Pt9bHOXLoEACFbgPzwKGwxFZc7OumLD5cwIEQjxmuesY61dM66kMdQfW0GtWzIpcruVotSnGXFN1999307t2bWbNmBcqysrI466yzePvtt7nkkktIS0sDID8/n6ZNmwb2y8vLAwhsr62Sksh8yDweb0jH9hb7Zp+ZNmfYYvTafeOTzOKisB0z1HrGC9XTOupDHUH1tBrVs+birsNx8+bNdOjQIajspJNOIj09ne3btwOQkZEBlI0t8svJycHpdNKyZcu6CbauRfKGsJqSLyIiFhd3SdEpp5zC999/H1S2a9cuDhw4QPPmzQFo2bIlrVu3ZunSpUH7ZWdn06dPHxISwri4YQwxI3CbD/y3+dDijSIiYnFx1302btw47rnnHu6++24GDRrEwYMHeeyxx2jSpEnQFPxp06Zx880306pVK3r16kV2djbr16/n+eefj2L0ERZoKQrjbT4SdJsPERGpH+IuKZo4cSIJCQm89NJLvPHGGzRs2JCsrCzmzp1Lenp6YL+RI0dSWFjIwoULeeKJJ2jTpg2PPPII3bt3j2L0kRXRFa29JZieEgx73H1kREREqiXuvuEMw2D8+PGMHz++yn3Hjh3L2LFj6yCqGBGJe585y83mcxeBPSV8xxYREYkhcTemSI4tEmOKDJsd7L7jabC1iIhYmZIiK4nAmCLQuCIREakflBRZhOktAdMDhHn2GZR1oWkGmoiIWJiSIqsoKXeT23C3FDnVUiQiItanpMgi/OOJMGxgs4f12EqKRESkPlBSZBXlZp4ZhhHeY/u7z5QUiYiIhSkpsohIrFHkp5YiERGpD5QUWUWEZp5BudlnxZqSLyIi1qWkyCJMd+RaigL3P1NLkYiIWJiSIquIxGrWpdR9JiIi9YGSIouIxGrWfoGkSN1nIiJiYUqKrKJ0oHUkxhRp9pmIiNQHSoosIqItRQm+MUXqPhMREStTUmQVGlMkIiISEiVFFhHJliJ1n4mISH2gpMgqIjimKLBOkZIiERGxMCVFFlE3s8+UFImIiHUpKbKKCI4pCnSflRRhmmb4jy8iIhIDlBRZRGRbikpXtDbNsuRLRETEYpQUWUUk1ylyJIBhAGC6tYCjiIhYk5Iii4hoS5FhgKO0C03jikRExKKUFFlFYExRBFqK0Aw0ERGxPkcoL969eze7d++mR48egbIffviBp556iuLiYkaOHMmQIUNCDlKqFtF1ivDNQDNR95mIiFhXSEnR3XffzeHDh3nmmWcA+O2335g4cSJut5uGDRvywQcf8PDDD3PuueeGI1Y5nsCYosgkRVrAUURErC6k7rP169fTt2/fwPO33nqLoqIi3n77bVatWkWfPn146qmnQg5SqlbWUhSh7jPd6kNERCwupKQoNzeXJk2aBJ5/8sknnHHGGbRq1QqbzcY555xDTk5OyEFK1cwItxQFbgqrgdYiImJRISVFjRs3Zvfu3QDk5eWxbt06BgwYENju8XgoKSkJLUKpngiPKVL3mYiIWF1IY4r69u3L4sWLSUlJYe3atZimyeDBgwPbN23axMknnxxykHJ8pukFj9v3JIIDrUHdZyIiYl0hJUV/+tOf2LJlC/fffz9Op5NbbrmFli1bAlBcXMz777/P+eefH5ZA5ThK3IGHGlMkIiJSOyElRSeccAIvv/wy+fn5JCYmkpBQ1krh9Xp59tlnOemkk0IOUo4vMJ4IwOGMzEkC3Weaki8iItYUUlLkl5qaWqEsKSmJDh06hOPwUhX/wo12J4YRmfU4NdBaRESsLqRv0DVr1rBo0aKgstdff52zzjqLvn37cs899+DxeEIKUKpmBlazjtAga9R9JiIi1hdSUjR//nx++OGHwPMff/yRO+64g8aNG9OzZ08WL17Mk08+GXKQUoUIr1EEaPaZiIhYXkhJ0ebNm+nSpUvg+dtvv01KSgovvPACc+fOZezYsbz99tshBynHF+k1iqB8S5HGFImIiDWFlBQVFhaSkpISeP7pp5/Sv39/kpN9408yMzMD6xhJBEV6jSLKJUUaUyQiIhYVUlJ08skn88033wCwbds2Nm7cSP/+/QPbc3Nzg2akSWRE+hYfACSo+0xERKwtpNln559/PgsWLGDv3r1s2rSJtLS0oMUbv/vuO1q3bh1qjFKVOu0+U1IkIiLWFFJSdP311+N2u1m5ciUnn3wy9913Hy6XC4CDBw/y73//m4kTJ4YlUDk2s066z3xdonjcmF4Phs0esXOJiIhEQ0hJkcPhYMaMGcyYMaPCtkaNGrF69epQDi/VFZiSXwfdZ+DrQktsGLlziYiIREFYFm8EOHToEHv27AHgpJNOomFDfWnWFf/ss4i2FNkcYHeApwTTXYShpEhERCwm5KRo/fr1/P3vf+c///kPXq8XAJvNxu9//3v+/Oc/k5mZGXKQlXnzzTd59tln2bx5Mw0aNCAzM5NHHnmEpCRfi8by5cuZO3cuW7Zs4ZRTTmHy5MlcdNFFEYkl6upg8UbwdaGZnnzNQBMREUsKKSn6+uuvufzyy3E6nYwZM4a2bdsCvvWL3nvvPSZMmMDixYvp2rVrWIL1e+yxx1i4cCHXX389WVlZHDhwgDVr1gRWz/7yyy+ZOnUqY8aMYc6cOXzxxRf8z//8Dw0bNuS8884LayyxoC7GFAG+BRyL8nX/MxERsaSQkqKHHnqIZs2a8eKLL9K0adOgbdOmTWP8+PE89NBDPP300yEFWV5OTg6PPPIIjz76KGeeeWagfOjQoYHHjz32GF27duWuu+4CoHfv3uzYsYN58+ZZMikqm30WwTFF+GagmWgGmoiIWFNI6xR9/fXXXHLJJRUSIoATTjiBiy++mHXr1oVyigqWLFlCixYtghKi8oqLi1m7dm2F5Gf48OFs3ryZnTt3hjWeWFBXLUWali8iIlYWUkuRzWY77g1fvV4vNlt479r+9ddf065dOx599FEWL15Mfn4+Xbp0Yfbs2XTr1o3t27fjdrvJyMgIep2/ay8nJ4cWLVqEFIPDEd462e22oJ81ZXjcANgSE8MeW9B5En3T8m2eI7U6T6j1jBeqp3XUhzqC6mk1qmfthZQUde/enRdeeIGRI0fSvHnzoG27d+/mxRdf5PTTTw8pwKP9+uuvfPvtt/z000/ccccdJCcn8/jjj3P11Vfz4YcfkpubCxBYL8nP/9y/vbZsNoP09MjMvHK5kmv1uiKjBDeQ4kolNUKxARQ3bEgJkOzwkhbCeWpbz3ijelpHfagjqJ5Wo3rWXEhJ0cyZM7nssssYNmwY55xzTmD16i1btvDxxx9js9n405/+FI44A0zT5PDhwzz88MN06NABgG7dujFo0CCef/75oNuMRILXa5KXdzisx7TbbbhcyeTlFeLxeGv8enehb+Dz4WIoOXAorLEFncd0AnAoNxdvLc4Taj3jheppHfWhjqB6Wo3qWZHLlVytFqWQkqJOnTrx2muv8dBDD7F8+XIKS7+ck5OTGTBgAFOnTiU9PT2UU1Tgcrlo1KhRICEC30KRnTp1YtOmTYwYMQKA/Pz8oNfl5eUBkJaWFnIMJSWR+ZB5PN5aHdvr9g209hrOiMUGYJYO5PYeKQzpPLWtZ7xRPa2jPtQRVE+rUT1rLuR1ik477TQWLFiA1+tl//79ADRu3BibzcZjjz3GvHnz2LBhQ8iBlj/f9u3bK9125MgRWrVqhdPpJCcnhwEDBgS25eTkAFQYa2QJdbZOUelAa61TJCIiFhS20Uk2m40TTjiBE044IeyDq8s7++yzOXjwYFCideDAAb777js6d+5MQkICvXr14oMPPgh6XXZ2Nm3btg15kHUsqrt1inz9tpp9JiIiVhS223zUlSFDhpCZmcmNN97IjBkzSExM5IknniAhIYFLL70UgClTpjBx4kT++te/MmzYMNauXcu7777LQw89FOXoI6Su1iny3/9MSZGIiFhQ3M3Xs9lsPPHEE2RlZXH77bczc+ZMUlJSeOGFFwLrJfXo0YP58+fz1VdfMWnSJN59913uvvtuhg0bFuXoI0PrFImIiIQu7lqKwDdm6e9///tx9xk8eDCDBw+uo4iixzTNsjFFzkivaO3vPtNtPkRExHpqnBR999131d73l19+qenhpaa8HjB9o+4jPqZI3WciImJhNU6KLrroIgzDqNa+pmlWe1+pJf94ItDsMxERkRDUOCm69957IxGH1JJ/PBGGHcMW2d5QjSkSERErq/G36IUXXhiJOKS2AjPPItx1BuAs6z5TK6CIiFhN3M0+k2B1tkYRZS1FmF4ovQmtiIiIVSgpind1tJo1EDS7TV1oIiJiNUqK4lxZS1Fkp+MDGIatrAutWNPyRUTEWpQUxbu6HFOEBluLiIh1KSmKc3U5pggItBQpKRIREatRUhTv6nJMEWAk+Fa1Rqtai4iIxSgpinNmafdZXbUUaQFHERGxKiVF8S7QUhT5gdagMUUiImJdSoriXLTGFOn+ZyIiYjVKiuJdXY8pUkuRiIhYlJKiOFfXY4o0+0xERKxKSVG887cUOetoTFGCf/FGJUUiImItSoriXF2uaA3qPhMREetSUhTnTHfdrmhd1n2mdYpERMRalBTFO0/dzj4znP7FG9VSJCIi1qKkKM6Z0Zp9pjFFIiJiMUqK4l1g9lndjCkiQWOKRETEmpQUxblotRTp3mciImI1SoriXR2vaO0fU6SWIhERsRolRXGurluK/N1nlBRjer11c04REZE6oKQo3tXxmKJA9xlAiVqLRETEOpQUxTHT6wVPie9JXXWf2Z1gs/vOrxloIiJiIUqK4lnpGkVQh/c+A93/TERELElJURwLjCcCsDvr7LxlM9CUFImIiHUoKYpnpeOJsCdgGHV3KTUDTURErEhJURwz63g6fkCC7n8mIiLWo6QontX1dPxSge4zDbQWERELUVIUxwItRc46usVHqcD9z9RSJCIiFqKk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X8vq1DPeryXAypUrmTBhAr1796ZLly4MHjyYe++9l/z8/KD9li9fzqhRo8jMzGTo0KG88cYbUYq45qpTx1mzZlV6LVetWhXFyENz6NAhBg4cSPv27fnmm2+CtoXr99MRjkCl5nJzc7niiito3bo18+fPZ+/evdx3330UFRVx++23Rzu8sFu0aBGpqamB582aNYtiNKHbuHEjK1eupFu3bni93gpfoADvvfcet912G9dffz29e/cmOzubqVOn8sILL5CVlVX3QddCdeoJcPrpp3PrrbcGlbVo0aIuQgzZM888Q/PmzZk1axbp6el8/vnn3HbbbezZs4epU6cC1riW1aknxPe1BDh48CBdu3bl8ssvp1GjRmzcuJH58+ezceNGnnrqKQC+/PJLpk6dypgxY5gzZw5ffPEF//M//0PDhg0577zzolyDqlWnjgAtW7as8Ado27Zt6zrcsHn00UfxeDwVysP6+2lKVDz++ONmVlaWeeDAgUDZyy+/bHbs2NHcs2dP9AILszfeeMNs166duW/fvmiHElYejyfw+NZbbzVHjBhRYZ9zzz3XnDlzZlDZJZdcYl5zzTURjy9cqlPPCRMmmJMnT67LsMKqss/mX/7yF/P0008P1N8K17I69Yz3a3ksr7zyitmuXbvA/61XX321eckllwTtM3PmTHPYsGHRCC8sjq7jsX5f49WmTZvMrKws86WXXjLbtWtnrl+/PrAtnL+f6j6LklWrVtGnTx8aNWoUKBs2bBher5fVq1dHLzCpFpvt+L86O3bsYOvWrQwbNiyofPjw4axZsyZuukmrqqcVNG7cuEJZx44dKSgo4PDhw5a5llXV08r8/8+63W6Ki4tZu3ZthRah4cOHs3nzZnbu3BmFCENXvo5WdPfddzNu3DjatGkTVB7u30/r/48Xo3JycsjIyAgqc7lcNG3alJycnChFFTkjR46kY8eODB48mH/961+VNoFaif8aHv0L3LZtW9xuNzt27IhGWBHz73//m6ysLDIzM5kwYQL/93//F+2QQvLVV1/RrFkzUlJSLH0ty9fTzyrX0uPxcOTIEb777jsWLFjAoEGDaNGiBdu3b8ftdlf4/9ffrRRP//8eq45+27Zt4/e//z1dunRh9OjRLFu2LIrR1t7SpUv56aefuOGGGypsC/fvp8YURUleXh4ul6tCeVpaGrm5uVGIKDKa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\n"},"metadata":{}}]},{"cell_type":"code","source":["from sklearn.metrics import roc_auc_score\n","\n","y_true_all = []\n","y_pred_all = []\n","\n","for x, y in ds_valid.take(4):\n","    pred = model.predict(x)\n","    y_true_all.append(y.numpy().flatten())\n","    y_pred_all.append(pred.flatten())\n","\n","y_true_all = np.concatenate(y_true_all)\n","y_pred_all = np.concatenate(y_pred_all)\n","\n","auc = roc_auc_score(y_true_all, y_pred_all)\n","print(\"AUC:\", auc)"],"metadata":{"colab":{"base_uri":"https://localhost:8080/"},"id":"hW1idwH7dz8m","executionInfo":{"status":"ok","timestamp":1774198424949,"user_tz":-330,"elapsed":3087,"user":{"displayName":"JEGAN S","userId":"14149547572816431959"}},"outputId":"8078c93a-405f-4149-8c1f-465042da2e7f"},"id":"hW1idwH7dz8m","execution_count":13,"outputs":[{"output_type":"stream","name":"stdout","text":["\u001b[1m1/1\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 449ms/step\n","\u001b[1m1/1\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 384ms/step\n","\u001b[1m1/1\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 386ms/step\n","\u001b[1m1/1\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 378ms/step\n","AUC: 0.9709942072440457\n"]}]},{"cell_type":"code","source":["model.save(\"final_model.h5\")"],"metadata":{"colab":{"base_uri":"https://localhost:8080/"},"id":"l7cuwyyWrfP1","executionInfo":{"status":"ok","timestamp":1774198526127,"user_tz":-330,"elapsed":96169,"user":{"displayName":"JEGAN S","userId":"14149547572816431959"}},"outputId":"ff3d0a03-ce7d-4029-ca9a-0af93ff299b4"},"id":"l7cuwyyWrfP1","execution_count":14,"outputs":[{"output_type":"stream","name":"stderr","text":["WARNING:absl:You are saving your model as an HDF5 file via `model.save()` or `keras.saving.save_model(model)`. This file format is considered legacy. We recommend using instead the native Keras format, e.g. `model.save('my_model.keras')` or `keras.saving.save_model(model, 'my_model.keras')`. \n"]}]},{"cell_type":"code","source":["import numpy as np\n","\n","auc_list = [0.9664, 0.9655, 0.9654, 0.9682, 0.9710]\n","\n","mean_auc = np.mean(auc_list)\n","std_auc = np.std(auc_list)\n","\n","print(\"Mean AUC:\", round(mean_auc, 4))\n","print(\"Std AUC:\", round(std_auc, 4))"],"metadata":{"colab":{"base_uri":"https://localhost:8080/"},"id":"TmVvZj-viNU3","executionInfo":{"status":"ok","timestamp":1774199563016,"user_tz":-330,"elapsed":49,"user":{"displayName":"JEGAN S","userId":"14149547572816431959"}},"outputId":"3e333fbd-78a0-4a24-8f6c-9edcc11c0375"},"id":"TmVvZj-viNU3","execution_count":15,"outputs":[{"output_type":"stream","name":"stdout","text":["Mean AUC: 0.9673\n","Std AUC: 0.0021\n"]}]},{"cell_type":"code","source":["import matplotlib.pyplot as plt\n","\n","# AUC values\n","auc_list = [0.9664, 0.9655, 0.9654, 0.9682, 0.9710]\n","\n","runs = [1, 2, 3, 4, 5]\n","\n","plt.figure()\n","plt.plot(runs, auc_list, marker='o')\n","\n","plt.title(\"AUC Across 5 Runs\")\n","plt.xlabel(\"Run\")\n","plt.ylabel(\"AUC\")\n","\n","plt.xticks(runs)\n","\n","plt.grid()\n","plt.savefig(\"auc_plot.png\", dpi=300)\n","plt.show()"],"metadata":{"id":"iqFqJLK_jZMq","executionInfo":{"status":"ok","timestamp":1774199890495,"user_tz":-330,"elapsed":683,"user":{"displayName":"JEGAN S","userId":"14149547572816431959"}},"outputId":"e09332a6-d63f-44e4-c3fc-def4b3022e03","colab":{"base_uri":"https://localhost:8080/","height":480}},"id":"iqFqJLK_jZMq","execution_count":16,"outputs":[{"output_type":"display_data","data":{"text/plain":["<Figure size 640x480 with 1 Axes>"],"image/png":"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\n"},"metadata":{}}]}],"metadata":{"kernelspec":{"display_name":"Python 3","name":"python3"},"language_info":{"codemirror_mode":{"name":"ipython","version":3},"file_extension":".py","mimetype":"text/x-python","name":"python","nbconvert_exporter":"python","pygments_lexer":"ipython3","version":"3.7.12"},"papermill":{"default_parameters":{},"duration":1131.665479,"end_time":"2023-04-22T10:14:02.609305","environment_variables":{},"exception":null,"input_path":"__notebook__.ipynb","output_path":"__notebook__.ipynb","parameters":{},"start_time":"2023-04-22T09:55:10.943826","version":"2.4.0"},"colab":{"provenance":[],"gpuType":"T4"},"accelerator":"GPU"},"nbformat":4,"nbformat_minor":5}