{"cells":[{"cell_type":"code","execution_count":1,"id":"740f79bf","metadata":{"_cell_guid":"b1076dfc-b9ad-4769-8c92-a6c4dae69d19","_uuid":"8f2839f25d086af736a60e9eeb907d3b93b6e0e5","execution":{"iopub.execute_input":"2025-10-11T16:03:17.059121Z","iopub.status.busy":"2025-10-11T16:03:17.058522Z","iopub.status.idle":"2025-10-11T16:03:17.064607Z","shell.execute_reply":"2025-10-11T16:03:17.063876Z"},"papermill":{"duration":0.01088,"end_time":"2025-10-11T16:03:17.065874","exception":false,"start_time":"2025-10-11T16:03:17.054994","status":"completed"},"tags":[]},"outputs":[],"source":"import sys\nsys.path.append(\"/kaggle/input/tez-main/tez-main\")"},{"cell_type":"code","execution_count":2,"id":"beee0a0b","metadata":{"execution":{"iopub.execute_input":"2025-10-11T16:03:17.071159Z","iopub.status.busy":"2025-10-11T16:03:17.070728Z","iopub.status.idle":"2025-10-11T16:04:04.132105Z","shell.execute_reply":"2025-10-11T16:04:04.131260Z"},"papermill":{"duration":47.065477,"end_time":"2025-10-11T16:04:04.133658","exception":false,"start_time":"2025-10-11T16:03:17.068181","status":"completed"},"tags":[]},"outputs":[],"source":"import tez\nfrom tez import Tez, TezConfig\nimport albumentations\nimport pandas as pd\nimport cv2\nimport numpy as np\nimport timm\nimport torch.nn as nn\nfrom sklearn import metrics\nimport torch\nfrom tez.callbacks import EarlyStopping\nfrom tqdm import tqdm\nimport math"},{"cell_type":"code","execution_count":3,"id":"203d9bdf","metadata":{"execution":{"iopub.execute_input":"2025-10-11T16:04:04.139226Z","iopub.status.busy":"2025-10-11T16:04:04.138840Z","iopub.status.idle":"2025-10-11T16:04:04.142299Z","shell.execute_reply":"2025-10-11T16:04:04.141750Z"},"papermill":{"duration":0.007177,"end_time":"2025-10-11T16:04:04.143251","exception":false,"start_time":"2025-10-11T16:04:04.136074","status":"completed"},"tags":[]},"outputs":[],"source":"class args:\n    batch_size = 64#16\n    image_size = 384 #64"},{"cell_type":"code","execution_count":4,"id":"21268a1d","metadata":{"execution":{"iopub.execute_input":"2025-10-11T16:04:04.148397Z","iopub.status.busy":"2025-10-11T16:04:04.148166Z","iopub.status.idle":"2025-10-11T16:04:04.151307Z","shell.execute_reply":"2025-10-11T16:04:04.150792Z"},"papermill":{"duration":0.006605,"end_time":"2025-10-11T16:04:04.152263","exception":false,"start_time":"2025-10-11T16:04:04.145658","status":"completed"},"tags":[]},"outputs":[],"source":"def sigmoid(x):\n    return 1 / (1 + math.exp(-x))"},{"cell_type":"code","execution_count":5,"id":"2700b9a8","metadata":{"execution":{"iopub.execute_input":"2025-10-11T16:04:04.157023Z","iopub.status.busy":"2025-10-11T16:04:04.156822Z","iopub.status.idle":"2025-10-11T16:04:04.162402Z","shell.execute_reply":"2025-10-11T16:04:04.161838Z"},"papermill":{"duration":0.009169,"end_time":"2025-10-11T16:04:04.163479","exception":false,"start_time":"2025-10-11T16:04:04.154310","status":"completed"},"tags":[]},"outputs":[],"source":"class MelanomaDataset:\n    def __init__(self, image_paths, dense_features, targets, augmentations):\n        self.image_paths = image_paths\n        self.dense_features = dense_features\n        self.targets = targets\n        self.augmentations = augmentations\n        \n    def __len__(self):\n        return len(self.image_paths)\n    \n    def __getitem__(self, item):\n        image = cv2.imread(self.image_paths[item])\n        image = cv2.cvtColor(image, cv2.COLOR_BGR2RGB)\n        \n        if self.augmentations is not None:\n            augmented = self.augmentations(image=image)\n            image = augmented[\"image\"]\n        \n        image = image.astype(np.float32) / 255.0   \n        image = np.transpose(image, (2, 0, 1)).astype(np.float32)\n        \n        features = self.dense_features[item, :].astype(np.float32)\n        targets = self.targets[item]\n        \n        return {\n            \"image\": torch.tensor(image, dtype=torch.float),\n            \"features\": torch.tensor(features, dtype=torch.float),\n            \"targets\": torch.tensor(targets, dtype=torch.float),\n        }"},{"cell_type":"code","execution_count":6,"id":"286133e8","metadata":{"execution":{"iopub.execute_input":"2025-10-11T16:04:04.168157Z","iopub.status.busy":"2025-10-11T16:04:04.167969Z","iopub.status.idle":"2025-10-11T16:04:04.175026Z","shell.execute_reply":"2025-10-11T16:04:04.174543Z"},"papermill":{"duration":0.010512,"end_time":"2025-10-11T16:04:04.176009","exception":false,"start_time":"2025-10-11T16:04:04.165497","status":"completed"},"tags":[]},"outputs":[],"source":"class MelanomaModel(nn.Module):\n    def __init__(self):\n        super().__init__()        \n        self.model = timm.create_model(\"resnet50\", pretrained=False, num_classes=0)#resnet50#resnet101#eca_nfnet_l1#resnest101e\n\n        \n        self.dropout = nn.Dropout(0.5)# increase dropout\n\n        self.out = nn.Linear(2066, 1)\n\n        \n        self.step_scheduler_after = \"epoch\"\n\n\n    def monitor_metrics(self, outputs, targets, loss):\n        return {\"bce_loss\": loss}\n\n    def optimizer_scheduler(self):\n        opt = torch.optim.AdamW(self.parameters(), lr=2.5e-05, weight_decay=0.01)\n        sch = torch.optim.lr_scheduler.CosineAnnealingWarmRestarts(\n            opt, T_0=10, T_mult=1, eta_min=1e-6, last_epoch=-1\n        )\n        return opt,sch\n\n    def forward(self, image, features, targets=None):\n\n        x = self.model(image)\n        x = self.dropout(x)\n        x = torch.cat([x, features], dim=1)\n        x = self.dropout(x)\n        x = self.out(x)\n\n        if targets is not None:\n            targets = targets.view(-1, 1).float()\n            loss = nn.BCEWithLogitsLoss()(x, targets)\n            metrics = self.monitor_metrics(x, targets, loss)\n            return x, loss, metrics\n        return x, 0, {}\n"},{"cell_type":"code","execution_count":7,"id":"e2bc6815","metadata":{"execution":{"iopub.execute_input":"2025-10-11T16:04:04.180632Z","iopub.status.busy":"2025-10-11T16:04:04.180459Z","iopub.status.idle":"2025-10-11T16:04:04.186594Z","shell.execute_reply":"2025-10-11T16:04:04.186083Z"},"papermill":{"duration":0.009567,"end_time":"2025-10-11T16:04:04.187611","exception":false,"start_time":"2025-10-11T16:04:04.178044","status":"completed"},"tags":[]},"outputs":[],"source":"test_aug = albumentations.Compose(\n    [\n        albumentations.Resize(args.image_size, args.image_size, p=1),\n        albumentations.Normalize(\n            mean=[0.485, 0.456, 0.406],\n            std=[0.229, 0.224, 0.225],\n            max_pixel_value=255.0,\n            p=1.0,\n        ),\n    ],\n    p=1.0,\n)"},{"cell_type":"code","execution_count":8,"id":"948d63aa","metadata":{"execution":{"iopub.execute_input":"2025-10-11T16:04:04.192453Z","iopub.status.busy":"2025-10-11T16:04:04.192003Z","iopub.status.idle":"2025-10-11T16:04:04.240931Z","shell.execute_reply":"2025-10-11T16:04:04.240424Z"},"papermill":{"duration":0.052353,"end_time":"2025-10-11T16:04:04.241929","exception":false,"start_time":"2025-10-11T16:04:04.189576","status":"completed"},"tags":[]},"outputs":[],"source":"\ntest_df = pd.read_csv(\"/kaggle/input/siim-isic-melanoma-classification/test.csv\")\n\n# --- handle missing categorical columns ---\n# If 'diagnosis' is missing, create it with default 'unknown'\nif \"diagnosis\" not in test_df.columns:\n    test_df[\"diagnosis\"] = \"unknown\"\n\n# Fill missing site info\ntest_df[\"anatom_site_general_challenge\"] = test_df[\"anatom_site_general_challenge\"].fillna(\"unknown\")\n\n# --- one-hot encode ---\ntest_df = pd.get_dummies(\n    test_df,\n    columns=[\"diagnosis\", \"anatom_site_general_challenge\"],\n    dtype=np.uint8\n)\n\n# --- encode sex as 1/0 ---\ntest_df[\"sex\"] = test_df[\"sex\"].map({\"male\": 1, \"female\": 0}).fillna(0)\n\n# --- handle numeric missing values ---\nif \"age_approx\" in test_df.columns:\n    test_df[\"age_approx\"] = test_df[\"age_approx\"].fillna(test_df[\"age_approx\"].median())\n\n# --- ensure same feature columns as training ---\nexpected_features= [\n    'image_name','sex', 'age_approx',\n    'diagnosis_atypical melanocytic proliferation', 'diagnosis_cafe-au-lait macule',\n    'diagnosis_lentigo NOS', 'diagnosis_lichenoid keratosis',\n    'diagnosis_melanoma', 'diagnosis_nevus', 'diagnosis_seborrheic keratosis',\n    'diagnosis_solar lentigo', 'diagnosis_unknown',\n    'anatom_site_general_challenge_head/neck', 'anatom_site_general_challenge_lower extremity',\n    'anatom_site_general_challenge_oral/genital', 'anatom_site_general_challenge_palms/soles',\n    'anatom_site_general_challenge_torso', 'anatom_site_general_challenge_unknown',\n    'anatom_site_general_challenge_upper extremity'\n]\n\n\nfor col in expected_features:\n    if col not in test_df.columns:\n        test_df[col] = 0\n\n# Ensure column order matches training\ntest_df = test_df[expected_features]\n\n\n"},{"cell_type":"code","execution_count":9,"id":"90f17ef9","metadata":{"execution":{"iopub.execute_input":"2025-10-11T16:04:04.246857Z","iopub.status.busy":"2025-10-11T16:04:04.246478Z","iopub.status.idle":"2025-10-11T16:04:04.265097Z","shell.execute_reply":"2025-10-11T16:04:04.264451Z"},"papermill":{"duration":0.022133,"end_time":"2025-10-11T16:04:04.266121","exception":false,"start_time":"2025-10-11T16:04:04.243988","status":"completed"},"tags":[]},"outputs":[{"data":{"text/html":["<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>image_name</th>\n","      <th>sex</th>\n","      <th>age_approx</th>\n","      <th>diagnosis_atypical melanocytic proliferation</th>\n","      <th>diagnosis_cafe-au-lait macule</th>\n","      <th>diagnosis_lentigo NOS</th>\n","      <th>diagnosis_lichenoid keratosis</th>\n","      <th>diagnosis_melanoma</th>\n","      <th>diagnosis_nevus</th>\n","      <th>diagnosis_seborrheic keratosis</th>\n","      <th>diagnosis_solar lentigo</th>\n","      <th>diagnosis_unknown</th>\n","      <th>anatom_site_general_challenge_head/neck</th>\n","      <th>anatom_site_general_challenge_lower extremity</th>\n","      <th>anatom_site_general_challenge_oral/genital</th>\n","      <th>anatom_site_general_challenge_palms/soles</th>\n","      <th>anatom_site_general_challenge_torso</th>\n","      <th>anatom_site_general_challenge_unknown</th>\n","      <th>anatom_site_general_challenge_upper extremity</th>\n","    </tr>\n","  </thead>\n","  <tbody>\n","    <tr>\n","      <th>0</th>\n","      <td>ISIC_0052060</td>\n","      <td>1</td>\n","      <td>70.0</td>\n","      <td>0</td>\n","      <td>0</td>\n","      <td>0</td>\n","      <td>0</td>\n","      <td>0</td>\n","      <td>0</td>\n","      <td>0</td>\n","      <td>0</td>\n","      <td>1</td>\n","      <td>0</td>\n","      <td>0</td>\n","      <td>0</td>\n","      <td>0</td>\n","      <td>0</td>\n","      <td>1</td>\n","      <td>0</td>\n","    </tr>\n","    <tr>\n","      <th>1</th>\n","      <td>ISIC_0052349</td>\n","      <td>1</td>\n","      <td>40.0</td>\n","      <td>0</td>\n","      <td>0</td>\n","      <td>0</td>\n","      <td>0</td>\n","      <td>0</td>\n","      <td>0</td>\n","      <td>0</td>\n","      <td>0</td>\n","      <td>1</td>\n","      <td>0</td>\n","      <td>1</td>\n","      <td>0</td>\n","      <td>0</td>\n","      <td>0</td>\n","      <td>0</td>\n","      <td>0</td>\n","    </tr>\n","    <tr>\n","      <th>2</th>\n","      <td>ISIC_0058510</td>\n","      <td>0</td>\n","      <td>55.0</td>\n","      <td>0</td>\n","      <td>0</td>\n","      <td>0</td>\n","      <td>0</td>\n","      <td>0</td>\n","      <td>0</td>\n","      <td>0</td>\n","      <td>0</td>\n","      <td>1</td>\n","      <td>0</td>\n","      <td>0</td>\n","      <td>0</td>\n","      <td>0</td>\n","      <td>1</td>\n","      <td>0</td>\n","      <td>0</td>\n","    </tr>\n","    <tr>\n","      <th>3</th>\n","      <td>ISIC_0073313</td>\n","      <td>0</td>\n","      <td>50.0</td>\n","      <td>0</td>\n","      <td>0</td>\n","      <td>0</td>\n","      <td>0</td>\n","      <td>0</td>\n","      <td>0</td>\n","      <td>0</td>\n","      <td>0</td>\n","      <td>1</td>\n","      <td>0</td>\n","      <td>0</td>\n","      <td>0</td>\n","      <td>0</td>\n","      <td>1</td>\n","      <td>0</td>\n","      <td>0</td>\n","    </tr>\n","    <tr>\n","      <th>4</th>\n","      <td>ISIC_0073502</td>\n","      <td>0</td>\n","      <td>45.0</td>\n","      <td>0</td>\n","      <td>0</td>\n","      <td>0</td>\n","      <td>0</td>\n","      <td>0</td>\n","      <td>0</td>\n","      <td>0</td>\n","      <td>0</td>\n","      <td>1</td>\n","      <td>0</td>\n","      <td>1</td>\n","      <td>0</td>\n","      <td>0</td>\n","      <td>0</td>\n","      <td>0</td>\n","      <td>0</td>\n","    </tr>\n","  </tbody>\n","</table>\n","</div>"],"text/plain":["     image_name  sex  age_approx  \\\n","0  ISIC_0052060    1        70.0   \n","1  ISIC_0052349    1        40.0   \n","2  ISIC_0058510    0        55.0   \n","3  ISIC_0073313    0        50.0   \n","4  ISIC_0073502    0        45.0   \n","\n","   diagnosis_atypical melanocytic proliferation  \\\n","0                                             0   \n","1                                             0   \n","2                                             0   \n","3                                             0   \n","4                                             0   \n","\n","   diagnosis_cafe-au-lait macule  diagnosis_lentigo NOS  \\\n","0                              0                      0   \n","1                              0                      0   \n","2                              0                      0   \n","3                              0                      0   \n","4                              0                      0   \n","\n","   diagnosis_lichenoid keratosis  diagnosis_melanoma  diagnosis_nevus  \\\n","0                              0                   0                0   \n","1                              0                   0                0   \n","2                              0                   0                0   \n","3                              0                   0                0   \n","4                              0                   0                0   \n","\n","   diagnosis_seborrheic keratosis  diagnosis_solar lentigo  diagnosis_unknown  \\\n","0                               0                        0                  1   \n","1                               0                        0                  1   \n","2                               0                        0                  1   \n","3                               0                        0                  1   \n","4                               0                        0                  1   \n","\n","   anatom_site_general_challenge_head/neck  \\\n","0                                        0   \n","1                                        0   \n","2                                        0   \n","3                                        0   \n","4                                        0   \n","\n","   anatom_site_general_challenge_lower extremity  \\\n","0                                              0   \n","1                                              1   \n","2                                              0   \n","3                                              0   \n","4                                              1   \n","\n","   anatom_site_general_challenge_oral/genital  \\\n","0                                           0   \n","1                                           0   \n","2                                           0   \n","3                                           0   \n","4                                           0   \n","\n","   anatom_site_general_challenge_palms/soles  \\\n","0                                          0   \n","1                                          0   \n","2                                          0   \n","3                                          0   \n","4                                          0   \n","\n","   anatom_site_general_challenge_torso  anatom_site_general_challenge_unknown  \\\n","0                                    0                                      1   \n","1                                    0                                      0   \n","2                                    1                                      0   \n","3                                    1                                      0   \n","4                                    0                                      0   \n","\n","   anatom_site_general_challenge_upper extremity  \n","0                                              0  \n","1                                              0  \n","2                                              0  \n","3                                              0  \n","4                                              0  "]},"execution_count":9,"metadata":{},"output_type":"execute_result"}],"source":"test_df.head()"},{"cell_type":"code","execution_count":10,"id":"76fc297c","metadata":{"execution":{"iopub.execute_input":"2025-10-11T16:04:04.271262Z","iopub.status.busy":"2025-10-11T16:04:04.271091Z","iopub.status.idle":"2025-10-11T16:31:51.555979Z","shell.execute_reply":"2025-10-11T16:31:51.555018Z"},"papermill":{"duration":1667.28907,"end_time":"2025-10-11T16:31:51.557550","exception":false,"start_time":"2025-10-11T16:04:04.268480","status":"completed"},"tags":[]},"outputs":[{"name":"stderr","output_type":"stream","text":["86it [05:38,  3.94s/it]\n","86it [05:31,  3.85s/it]\n","86it [05:26,  3.79s/it]\n","86it [05:33,  3.88s/it]\n","86it [05:34,  3.89s/it]\n"]}],"source":"super_final_predictions = []\ndf_test = test_df\ntest_img_paths = [f\"/kaggle/input/siim-isic-melanoma-classification/jpeg/test/{x}.jpg\" for x in df_test[\"image_name\"].values]\nfor i in range(5):\n    i=0\n    model = MelanomaModel()\n    model = Tez(model)\n    model.load(f\"/kaggle/input/mc-moldels/model_f{i}.bin\", weights_only=True)\n    \n    \n    dense_features = [\n        'sex', 'age_approx', 'diagnosis_atypical melanocytic proliferation', 'diagnosis_cafe-au-lait macule', 'diagnosis_lentigo NOS', 'diagnosis_lichenoid keratosis', 'diagnosis_melanoma', 'diagnosis_nevus', 'diagnosis_seborrheic keratosis', 'diagnosis_solar lentigo', 'diagnosis_unknown', 'anatom_site_general_challenge_head/neck', 'anatom_site_general_challenge_lower extremity', 'anatom_site_general_challenge_oral/genital', 'anatom_site_general_challenge_palms/soles', 'anatom_site_general_challenge_torso', 'anatom_site_general_challenge_unknown', 'anatom_site_general_challenge_upper extremity'\n    ]\n    \n    test_dataset = MelanomaDataset(\n        image_paths=test_img_paths,\n        dense_features=df_test[dense_features].values,\n        targets=np.ones(len(test_img_paths)),\n        augmentations=test_aug,\n    )\n    test_predictions = model.predict(test_dataset, batch_size=2*args.batch_size, n_jobs=-1)\n    \n    final_test_predictions = []\n    for preds in tqdm(test_predictions):\n        final_test_predictions.extend(preds.ravel().tolist())\n    \n    # final_test_predictions = [sigmoid(x) * 100 for x in final_test_predictions]\n    super_final_predictions.append(final_test_predictions)\n\nsuper_final_predictions = np.mean(np.column_stack(super_final_predictions), axis=1)\ndf_test[\"target\"] = super_final_predictions\ndf_test = df_test[[\"image_name\", \"target\"]]\ndf_test.to_csv(\"submission.csv\", index=False)"},{"cell_type":"code","execution_count":11,"id":"618c41e4","metadata":{"execution":{"iopub.execute_input":"2025-10-11T16:31:51.595659Z","iopub.status.busy":"2025-10-11T16:31:51.595415Z","iopub.status.idle":"2025-10-11T16:31:51.614340Z","shell.execute_reply":"2025-10-11T16:31:51.613606Z"},"papermill":{"duration":0.039054,"end_time":"2025-10-11T16:31:51.615478","exception":false,"start_time":"2025-10-11T16:31:51.576424","status":"completed"},"tags":[]},"outputs":[{"data":{"text/html":["<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>image_name</th>\n","      <th>target</th>\n","    </tr>\n","  </thead>\n","  <tbody>\n","    <tr>\n","      <th>0</th>\n","      <td>ISIC_0052060</td>\n","      <td>-3.255847</td>\n","    </tr>\n","    <tr>\n","      <th>1</th>\n","      <td>ISIC_0052349</td>\n","      <td>-4.880886</td>\n","    </tr>\n","    <tr>\n","      <th>2</th>\n","      <td>ISIC_0058510</td>\n","      <td>-5.415959</td>\n","    </tr>\n","    <tr>\n","      <th>3</th>\n","      <td>ISIC_0073313</td>\n","      <td>-6.566103</td>\n","    </tr>\n","    <tr>\n","      <th>4</th>\n","      <td>ISIC_0073502</td>\n","      <td>-3.282016</td>\n","    </tr>\n","    <tr>\n","      <th>...</th>\n","      <td>...</td>\n","      <td>...</td>\n","    </tr>\n","    <tr>\n","      <th>10977</th>\n","      <td>ISIC_9992485</td>\n","      <td>-3.683600</td>\n","    </tr>\n","    <tr>\n","      <th>10978</th>\n","      <td>ISIC_9996992</td>\n","      <td>-1.316888</td>\n","    </tr>\n","    <tr>\n","      <th>10979</th>\n","      <td>ISIC_9997917</td>\n","      <td>-0.479301</td>\n","    </tr>\n","    <tr>\n","      <th>10980</th>\n","      <td>ISIC_9998234</td>\n","      <td>-4.445010</td>\n","    </tr>\n","    <tr>\n","      <th>10981</th>\n","      <td>ISIC_9999302</td>\n","      <td>-1.536149</td>\n","    </tr>\n","  </tbody>\n","</table>\n","<p>10982 rows × 2 columns</p>\n","</div>"],"text/plain":["         image_name    target\n","0      ISIC_0052060 -3.255847\n","1      ISIC_0052349 -4.880886\n","2      ISIC_0058510 -5.415959\n","3      ISIC_0073313 -6.566103\n","4      ISIC_0073502 -3.282016\n","...             ...       ...\n","10977  ISIC_9992485 -3.683600\n","10978  ISIC_9996992 -1.316888\n","10979  ISIC_9997917 -0.479301\n","10980  ISIC_9998234 -4.445010\n","10981  ISIC_9999302 -1.536149\n","\n","[10982 rows x 2 columns]"]},"execution_count":11,"metadata":{},"output_type":"execute_result"}],"source":"df=pd.read_csv(\"/kaggle/working/submission.csv\")\ndf"}],"metadata":{"kaggle":{"accelerator":"nvidiaTeslaT4","dataSources":[{"databundleVersionId":1222630,"isSourceIdPinned":false,"sourceId":20270,"sourceType":"competition"},{"datasetId":8457105,"sourceId":13337432,"sourceType":"datasetVersion"},{"datasetId":8457310,"sourceId":13337698,"sourceType":"datasetVersion"},{"datasetId":8457266,"sourceId":13337643,"sourceType":"datasetVersion"}],"dockerImageVersionId":31154,"isGpuEnabled":true,"isInternetEnabled":false,"language":"python","sourceType":"notebook"},"kernelspec":{"display_name":"Python 3","language":"python","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.11.13"},"papermill":{"default_parameters":{},"duration":1720.929178,"end_time":"2025-10-11T16:31:54.715242","environment_variables":{},"exception":null,"input_path":"__notebook__.ipynb","output_path":"__notebook__.ipynb","parameters":{},"start_time":"2025-10-11T16:03:13.786064","version":"2.6.0"}},"nbformat":4,"nbformat_minor":5}