{"metadata":{"kernelspec":{"language":"python","display_name":"Python 3","name":"python3"},"language_info":{"name":"python","version":"3.12.12","mimetype":"text/x-python","codemirror_mode":{"name":"ipython","version":3},"pygments_lexer":"ipython3","nbconvert_exporter":"python","file_extension":".py"},"kaggle":{"accelerator":"gpu","dataSources":[{"sourceId":112509,"databundleVersionId":14254895,"isSourceIdPinned":false,"sourceType":"competition"},{"sourceId":290921955,"sourceType":"kernelVersion"},{"sourceId":4535,"sourceType":"modelInstanceVersion","isSourceIdPinned":false,"modelInstanceId":3327,"modelId":986}],"dockerImageVersionId":31236,"isInternetEnabled":false,"language":"python","sourceType":"notebook","isGpuEnabled":true}},"nbformat_minor":4,"nbformat":4,"cells":[{"cell_type":"markdown","source":"# Inference notebook\n\n**EDA**: https://www.kaggle.com/code/simonedegasperis/starter-eda-baseline-brainstorming\n\n**Training**: https://www.kaggle.com/code/simonedegasperis/dinov2-training?scriptVersionId=290921955\n\n\n**Ref notebooks**\n\nGlobal structure --> the structure was revised as well as the model used\n- https://www.kaggle.com/code/sasaleaf/csiro-pytorch-baseline-train/notebook#%F0%9F%8C%B1-PyTorch-CNN-Baseline\n\nDino v2 2 streams --> the model was reimplemented from scratch\n- https://www.kaggle.com/code/none00000/lb-0-57-infer-model-code\n\nAvg pool and max pool on patch tokens --> nice addition that allowed to improve my solution based only on cls feature by 0.02\n- https://www.kaggle.com/code/zjayzz/1-6-vesion2","metadata":{}},{"cell_type":"markdown","source":"![model3.jpg](attachment:2cd6a8ca-e45a-4460-a5c1-2b6f6ebab933.jpg)","metadata":{},"attachments":{"2cd6a8ca-e45a-4460-a5c1-2b6f6ebab933.jpg":{"image/jpeg":"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kGED/wAeFbtouLaHP9xf5U/9c8Ty39nH8Q/sWje3O/wPY/DXj7QvF8s8WkajHdzQYMkWCrqD0OCAce9dB/WvB/C+Yvif4YZPlaQXMTkfxJ5RbafbcAfwr3cnA6/jX3+TZjLM8Kq842fY+exuHWFquEXcdRRRXuXRwBRRRTAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAr5o/4KCavqeg/Ai2v9G+yjVIdatjbm9VWhDlJQCwbKkDOeRjivpevmT/goX4rl8D/ASDW4LeK6ntdXh8qKdiE3NFMgYn2LBvfGO9TLZie2p8I694r+JXiP4Q2Gk+J7uKS7N39su59NaPCWi48py0cqgg/OQq4+6OzcavgXSv7S8L366v5EOmQr563GpXtw5QDawkihUByMDPzxBBjjPNc5qOl6hd/DC38Qfav7W16a8EX9miZxayOqF/LdMkF2wxUMCD5g9an8O3ni+D4f6nqGmabci2S3lstY0refMtpADuCIww6MSclDkdDnAr5dznOUlJX1PNnzSnaKPXtP8Y3uv+INC1S18Oz2OjzxNYXz3FsbUzhGEiFowioEYbipAAPHTFedeIfiH4e+EPig6Tb+IpYLmy+0QoJI3vbW2jcMV2W7Iqq7kKMqzg5ySM16T8GrHVPGvgtbvUbW+8OLDbiG4GoKNskZG0fucZVQACDknI7V4N8Z/hFBrPieK6i1SWSRUEgURCS4YxuY9sisRlcheemCfpXFGbhPlqdTSnGNOS51ue0alcXPjvxpbaVYXFxDeXdl5V5eaHc70uPMj3BFLMu77qt5YY4zxnBrmdXstX/Z58P+LILLX11aPUbcWd25R49+R80fBw8g3EHk9+O9O1aV/g78NtEm07UodC1OCczLDC+6W2TyihklZh94uVHHvgGsHxl8e7P40eEvDunanpi22o/bBDd6qZjHFfxJExEhi/vbsDOa2gnGMnHdfiaezVOEpSR33gW7uPGNlM2p/Ym8R6JvhnENqEmlbaoSRfK8squcryDuCnvmsjxJ420fXdavrG18Rf2zrem7RFDqLCazl4IMUe/EjFlXLKRgEYHOc2Y9Wk8BXnivVrG1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baVY9QufJihE0fmFN2DgDcBjGTis1g8N1j+Jgo0tND71/wCGy7kf8ya2f+v1f8Kev7ZMpXLeEJAeuPti/wCFfFFn8aGfwfd69c6Wiwabfiz1EQSlliQ4xLHkDcORkHmu08H63ceKvDMGry2f2GO7Bmt4t+5jCfuM3oWHOO2apYLDPozSNKjLY+pD+2POOng6Tnjm8Uf0qI/tmXQ6eDHI971f8K/O74f6xqd3B4Xn0u81681aS/caoZw7WP2ZXcH5m+XhQuNvcV3mnfGe4urrS76bRo4fC+p37afbXwuN0yuGKq7rjG1iOmc0lg8M94/iZxjSe6PtVf2zbhuT4NkA7/6av+FOb9s2VMFvBc7r/EqXibse1fFMHxlmuZtP1AaOB4av9T/suC887M+/cUDtHjAUspHWtb4OXUt34d1F5pHkZdWvVBdskATNgc+nahYHDN2SLVOi3yo/STwD8Z/CXxIRV0fVoze4G7T7n91cocZwUPJP0zXReJvFWk+DNJl1TW76LTbCNlV55s7QScAcepr88JrKKdld1/eJysq5VlPqGHIqXxd4v8SXmlWFhe+JdWvtPa9hU2l1cmSPAyV4PYEDFck8ral7stCZYV30eh9q/wDDSnwyz/yOFj+Un/xNdH4P+J/hXx+1wvh7XLXVHtwDKkLEMoPQ4IBx718F7AB0FdZ8GfE+l+Dfi9oOoarefYbNre7iaQIz7v3YIBCgk80q2XKlTc+bYmWGUI8x94A5orzcftD/AA+BI/t8n6WNyf8A2nSn9on4fD/mPt/4AXP/AMbrwkcR6PXmPxDXPxi+Fh9JNR/9EJUw/aL+Hh/5mA/jY3P/AMbrldR+I3h/4g/GX4cp4fvJdRNmb97graTIsamFQCWdAOTx1pge5UUA5ooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigD4b/aCLW/xt8UGWORVk+zMjeWxDAQqDg45rz77dF/t/wDftv8ACv0jManOQD+FHlr/AHV/KvXpZg6cFDl2OuGIcElY/N03sajPzj/tm3+FL/aEB/iYH/cav0h2Lj7oP4UeWndF/Ktf7Ul/IivrT7H5R6r8J/D2tWdzbXYup4p9VfVmwCpEjDDIMD7hHbr70urfCrStcvdTumu7+3u768gvvNiX/UyxLtUqpUggjqCK/Vsov91fyo2L/dFR/aT/AJER7Zfyn5Sx/CbQ4ontrq8v7q2mvhqFzb3OCLmTGAH+UZXvgY59q6jwnomm+ENEGl2tzcS2iu7QxzAt5Ksc7FO37o5x+XSv0xMSn+EflS+Wv90flVLM2teRDVdRd1E/Mjwpoum+DvD8GjWks01vD5hDTKSx3MWOSAP7xH0rkrD4U6DYaxbTJe6hJYWl219b6VISbeKZjksBgE+wJwK/WPyl4+VfypfLXP3R+VJ5k39gXt07LlWh+TFt8JtBsNTtpkvNQbT7a8N/b6W+TbxT5LBx8ueGJOM4ya6rwnoNh4Ssry3s5bm4S5u5bzY0RZlaRtxRQFyRnp1PJr9PfLX+6v5UFFxwo/Kj+0ne6giliEndRPiLwr+z98QPFyrKNLh8P2bci51l8OR6iFct+Dba2PiD+yV4h0vw1Bf2es/8JBe2txFL/Z1lp2xpOSDhmkJAAYn8K+xgMd6MVzSzCvKV7kPETbPgk/DDxuengzWR/wBu4/xr0P8AZ++FXimz+KFhreq6Jc6Rp2nwTqzXwCGR5FCqFXJzjrmvrMDk5PWjHfvVVMwq1IODW4SxEpLlZGLeMj/Vp/3yKUW8Q/5Zp/3yKkAxRXmHMR/Z4h/yzT/vkUCFFbKoin1C1JRQACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKAP/Z"}}},{"cell_type":"markdown","source":"1) input images are divided in 2 parts to have square images in input dino v2 model.\n2) features are extracted with dino v2. The following info are extracted:\n\n- CLS → to capture semantic summary\n- Avg pooled patches to capture global spatial info\n- Max pooled patches to capture strongest local cues\n\n3) multi head regression on the extracted heature to predict \"Dry_Clover_g\", \"Dry_Dead_g\", \"Dry_Green_g\" I then derive from them \"Dry_Total_g\", \"GDM_g\"\n\n- 5 models with this same architecture were trained on 5 different folds (see training notebook).\n- at inference, the results of the 5 models are averaged.","metadata":{}},{"cell_type":"markdown","source":"# Imports","metadata":{}},{"cell_type":"code","source":"import os\nimport sys\n\nos.environ[\"USE_TF\"] = \"0\"\nos.environ[\"PROTOCOL_BUFFERS_PYTHON_IMPLEMENTATION\"] = \"python\"\n\nimport os\nimport pandas as pd\nimport random\nimport numpy as np\nimport torch\nimport gc\n\nimport math\nfrom PIL import Image\nfrom collections import Counter\nfrom sklearn.model_selection import KFold, StratifiedKFold\nimport matplotlib.pyplot as plt\nimport albumentations as A\nimport torch.optim as optim\n\nimport cv2\nfrom albumentations.pytorch import ToTensorV2\n\nimport os\nimport pandas as pd\nfrom PIL import Image\n\nimport torch\nimport torch.nn as nn\nfrom torch.utils.data import Dataset, DataLoader\nfrom torchvision import transforms, models\nfrom transformers import AutoModel","metadata":{"trusted":true},"outputs":[],"execution_count":null},{"cell_type":"markdown","source":"# Config","metadata":{}},{"cell_type":"code","source":"base_path = '/kaggle/input/csiro-biomass/'","metadata":{"trusted":true},"outputs":[],"execution_count":null},{"cell_type":"code","source":"class CONFIG():\n    train_path = os.path.join(base_path, 'train')\n    test_path = os.path.join(base_path, 'test')\n    test_csv_path = os.path.join(base_path, 'test.csv')\n    train_csv_path = os.path.join(base_path, 'train.csv')\n    data_dir = os.path.join(base_path,  \"\")\n    nFolds = 5\n    seed = 42\n    pretrained = False\n    pretrained_weights_path = os.path.join(base_path, \"\")\n    best_model_dir = \"/kaggle/input/dinov2-training\"\n    device = torch.device(\"cuda\" if torch.cuda.is_available() else \"cpu\")\n    epochs = 15\n    batch_size = 8\n    lr = 1e-3\n    eta_min = 1e-5\n    weight_decay = 1e-6\n    \n    # image\n    img_size_h = 448 # 224\n    img_size_w = 448 # 224\n    in_chans = 3\n    \n    # target columns\n    target_cols = [\n        \"Dry_Clover_g\",\n        \"Dry_Dead_g\",\n        \"Dry_Green_g\",\n        \"Dry_Total_g\",\n        \"GDM_g\"\n    ]\n    n_targets = 3\n    # we can predict multiple configs\n    targets_configs = [\"Dry_Clover_g\", \"Dry_Dead_g\", \"Dry_Green_g\"]\n    weights = np.array([0.1, 0.1, 0.1, 0.5, 0.2])\n    mapping = {\"Dry_Clover_g\": 0, \"Dry_Dead_g\": 1, \"Dry_Green_g\": 2, \"Dry_Total_g\": 3, \"GDM_g\": 4}","metadata":{"trusted":true},"outputs":[],"execution_count":null},{"cell_type":"markdown","source":"# Functions","metadata":{}},{"cell_type":"code","source":"class BiomassTwoStreamDataset(Dataset):\n    \"\"\"\n    Dataset that splits each image into two square crops (left & right)\n    Returns:\n        - x_left: (3, 224, 224)\n        - x_right: (3, 224, 224)\n        - y: (3,) targets if training/validation, else None\n    \"\"\"\n    def __init__(self, df, transforms=None, is_test=False, input_res=224, targets=[\"Dry_Green_g\", \"Dry_Total_g\", \"GDM_g\"]):\n        self.df = df.reset_index(drop=True)\n        self.image_paths = df[\"image_path\"].values\n        self.transforms = transforms\n        self.is_test = is_test\n        self.input_res = input_res\n\n        if not is_test:\n            self.targets_3 = df[targets].values.astype(\"float32\")\n\n    def __len__(self):\n        return len(self.df)\n\n    def to_tensor(self, img):\n        \"\"\"\n        Convert image to tensor and normalize to ImageNet\n        \"\"\"\n        img = torch.from_numpy(img).permute(2, 0, 1).float() #/ 255.0\n        # mean = torch.tensor(IMAGENET_MEAN).view(3,1,1)\n        # std  = torch.tensor(IMAGENET_STD).view(3,1,1)\n        # img = (img - mean) / std\n        return img\n\n    def split_into_two_squares(self, img):\n        \"\"\"\n        Split rectangular image into two square crops (left & right)\n        \"\"\"\n        H, W, _ = img.shape\n        if W < H:\n            raise ValueError(f\"Expected W >= H, got image shape {img.shape}\")\n        \n        left  = img[:, :H, :]\n        right = img[:, W-H:, :]\n        return left, right\n\n    def __getitem__(self, idx):\n        # Load image\n        image_path = self.image_paths[idx]\n        full_path = os.path.join(config.data_dir, image_path)\n        img = cv2.imread(full_path)\n        if img is None:\n            raise FileNotFoundError(f\"Image not found at {full_path}\")\n        img = cv2.cvtColor(img, cv2.COLOR_BGR2RGB)\n\n        # Split into two squares\n        x_left, x_right = self.split_into_two_squares(img)\n\n        # Resize to input resolution\n        # x_left  = cv2.resize(x_left, (self.input_res, self.input_res), interpolation=cv2.INTER_LINEAR)\n        # x_right = cv2.resize(x_right, (self.input_res, self.input_res), interpolation=cv2.INTER_LINEAR)\n\n        # Apply transforms if provided\n        if self.transforms:\n            x_left  = self.transforms(image=x_left)[\"image\"]\n            x_right = self.transforms(image=x_right)[\"image\"]\n        else:\n            x_left  = self.to_tensor(x_left)\n            x_right = self.to_tensor(x_right)\n\n        if self.is_test:\n            return x_left, x_right\n        else:\n            y = torch.tensor(self.targets_3[idx], dtype=torch.float32)\n            return x_left, x_right, y\n\nclass DINOv2TwoStreamRegressor(nn.Module):\n    def __init__(self, n_targets=3, model_path=\"/kaggle/input/dinov2/pytorch/large/1\",\n                 freeze_backbone=True, hidden_dim=512, dropout=0.1):\n        super().__init__()\n\n        self.backbone = AutoModel.from_pretrained(model_path)\n        embed_dim = self.backbone.config.hidden_size\n\n        pooled_dim = embed_dim * 3  # CLS + avg + max\n\n        self.regressor = nn.Sequential(\n            nn.Linear(pooled_dim * 2, hidden_dim),\n            nn.GELU(),\n            nn.Dropout(dropout),\n            nn.Linear(hidden_dim, n_targets)\n        )\n\n        if freeze_backbone:\n            for p in self.backbone.parameters():\n                p.requires_grad = False\n\n    def _pool_tokens(self, outputs):\n        last_hidden = outputs.last_hidden_state\n        cls = last_hidden[:, 0]\n        patches = last_hidden[:, 1:]\n\n        avg_pool = patches.mean(dim=1)\n        max_pool = patches.max(dim=1)[0]\n\n        return torch.cat([cls, avg_pool, max_pool], dim=1)\n\n    def forward(self, x_left, x_right):\n        out_l = self.backbone(pixel_values=x_left)\n        out_r = self.backbone(pixel_values=x_right)\n\n        emb_l = self._pool_tokens(out_l)\n        emb_r = self._pool_tokens(out_r)\n\n        combined = torch.cat([emb_l, emb_r], dim=1)\n        return self.regressor(combined)\n\n# -------------------------------------------------------------\n#  Training & Validation Loops\n# -------------------------------------------------------------\ndef train_one_epoch(model, loader, optimizer, criterion, device):\n    model.train()\n    running_loss = 0.0\n\n    for img_left, img_right, labels in loader:\n        img_left, img_right, labels = img_left.to(device), img_right.to(device), labels.to(device)\n\n        optimizer.zero_grad()\n        preds = model(img_left, img_right)\n        loss = criterion(preds, labels)\n\n        loss.backward()\n        optimizer.step()\n        running_loss += loss.item() * img_left.size(0)\n\n    return running_loss / len(loader.dataset)\n\ndef val_fn(model, dataloader, criterion, device, targets):\n    \"\"\"\n    Validation / evaluation for 1 epoch.\n    Assumes the dataset returns only 3 independent targets per sample.\n    \"\"\"\n    model.eval()\n    total_loss = 0\n    all_targets_5_np = []\n    all_preds_5_np = []\n\n    with torch.no_grad():\n        for img_left, img_right, targets_3 in dataloader:\n            img_left, img_right, targets_3 = img_left.to(device), img_right.to(device), targets_3.to(device)  # shape (B, 3)\n\n            # Model forward\n            outputs_3 = model(img_left, img_right)  # (B, 3)\n\n            # Compute loss directly on independent targets\n            loss = criterion(outputs_3, targets_3)\n            total_loss += loss.item() * img_left.size(0)  # scale by batch size\n\n            # Expand predictions to 5 for metrics\n            preds_5 = expand_predictions_torch(outputs_3, targets)\n            all_preds_5_np.append(preds_5.cpu().numpy())\n\n            # Expand targets to 5 as well\n            targets_5 = expand_predictions_torch(targets_3, targets)\n            all_targets_5_np.append(targets_5.cpu().numpy())\n\n    # Average loss over dataset\n    val_loss = total_loss / len(dataloader.dataset)\n\n    # Concatenate all predictions / targets\n    y_true_5 = np.concatenate(all_targets_5_np, axis=0)\n    y_pred_5 = np.concatenate(all_preds_5_np, axis=0)\n\n    # Compute weighted R² metric on full 5 targets\n    weighted_r2, _ = weighted_r2_score(y_true_5, y_pred_5)\n\n    return val_loss, weighted_r2\n\n\ndef weighted_r2_score(y_true: np.ndarray, y_pred: np.ndarray):\n    \"\"\"\n    Metric\n    y_true, y_pred: shape (N, 5)\n    \"\"\"\n    weights = config.weights\n    r2_scores = []\n    \n    for i in range(y_true.shape[1]):\n        y_t = y_true[:, i]\n        y_p = y_pred[:, i]\n        ss_res = np.sum((y_t - y_p) ** 2)\n        ss_tot = np.sum((y_t - np.mean(y_t)) ** 2)\n        r2 = 1 - ss_res / ss_tot if ss_tot > 0 else 0.0\n        r2_scores.append(r2)\n        \n    r2_scores = np.array(r2_scores)\n    weighted_r2 = np.sum(r2_scores * weights) / np.sum(weights)\n    return weighted_r2, r2_scores\n\n# ======== 3. Preprocessing ========\ndef get_processed_data():\n    \"\"\"\n    'long' -> 'wide'\n    \"\"\"\n    train_df = pd.read_csv(config.train_csv_path)\n    \n    # unique id\n    train_df[\"image_id\"] = train_df[\"image_path\"].apply(lambda x: x.split('/')[-1].split('.')[0])\n    \n    # pivot\n    train_pivot = train_df.pivot(\n        index=\"image_id\", \n        columns=\"target_name\", \n        values=\"target\"\n    ).reset_index()\n    \n    meta_df = train_df.drop_duplicates(subset=\"image_id\").drop(\n        columns=[\"sample_id\", \"target_name\", \"target\"]\n    )\n    \n    train_processed_df = meta_df.merge(train_pivot, on=\"image_id\", how=\"left\")\n    \n    # CV fold\n    #kf = KFold(n_splits=config.nFolds, shuffle=True, random_state=config.seed)\n    #train_processed_df[\"fold\"] = -1\n    #for fold, (train_idx, val_idx) in enumerate(kf.split(train_processed_df)):\n    #    train_processed_df.loc[val_idx, \"fold\"] = fold\n\n    # StratifiedKFold\n    skf = StratifiedKFold(n_splits=config.nFolds, shuffle=True, random_state=config.seed)\n\n    train_processed_df[\"fold\"] = -1\n\n    # Add the stratification column (State)\n    for fold, (train_idx, val_idx) in enumerate(skf.split(train_processed_df, train_processed_df[\"State\"])):\n        train_processed_df.loc[val_idx, \"fold\"] = fold\n        \n    return train_processed_df\n\ndef get_transforms(is_train):\n    if is_train:\n        return A.Compose([\n            A.RandomResizedCrop((config.img_size_h, config.img_size_w), scale=(0.8, 1.0)),\n            A.HorizontalFlip(p=0.5),\n            A.Rotate(limit=15, p=0.5),\n            A.ColorJitter(brightness=0.1, contrast=0.1, saturation=0.1, hue=0.05, p=0.5),\n            A.Normalize(mean=[0.485,0.456,0.406], std=[0.229,0.224,0.225]),\n            ToTensorV2(),\n        ])\n    else:\n        return A.Compose([\n            A.Resize(config.img_size_h, config.img_size_w),\n            A.Normalize(mean=[0.485,0.456,0.406], std=[0.229,0.224,0.225]),\n            ToTensorV2(),\n        ])\n    \ndef get_two_stream_transforms(is_train):\n    if is_train:\n        return A.Compose([\n            A.HorizontalFlip(p=0.5),\n            A.Rotate(limit=15, p=0.5),\n            A.ColorJitter(brightness=0.1, contrast=0.1, saturation=0.1, hue=0.05, p=0.5),\n            A.Resize(config.img_size_h, config.img_size_w),  # ensure DINOv2 input size\n            A.Normalize(mean=[0.485,0.456,0.406], std=[0.229,0.224,0.225]),\n            ToTensorV2(),\n        ])\n    else:\n        return A.Compose([\n            A.Resize(config.img_size_h, config.img_size_w),\n            A.Normalize(mean=[0.485,0.456,0.406], std=[0.229,0.224,0.225]),\n            ToTensorV2(),\n        ])\n\ndef expand_predictions_torch(preds_3, targets):\n    \"\"\"\n    [torch] Expand the 3 NN predictions (N, 3) to 5 predictions (N, 5).\n    \"\"\"\n    if targets == [\"Dry_Green_g\", \"Dry_Total_g\", \"GDM_g\"]:\n        # clip\n        P_Green = torch.clamp(preds_3[:, 0], min=0)\n        P_Total = torch.clamp(preds_3[:, 1], min=0)\n        P_GDM = torch.clamp(preds_3[:, 2], min=0)\n        \n        # Compute derived targets based on constraints.\n        P_Clover = torch.clamp(P_GDM - P_Green, min=0)\n        P_Dead = torch.clamp(P_Total - P_GDM, min=0)\n    \n    elif targets == [\"Dry_Clover_g\", \"Dry_Dead_g\", \"Dry_Green_g\"]:\n        P_Clover = torch.clamp(preds_3[:, 0], min=0)\n        P_Dead = torch.clamp(preds_3[:, 1], min=0)\n        P_Green = torch.clamp(preds_3[:, 2], min=0)\n\n        # Compute derived targets based on constraints.\n        P_GDM = torch.clamp(P_Green + P_Clover, min=0)\n        P_Total = torch.clamp(P_GDM + P_Dead, min=0)\n\n    elif targets == [\"Dry_Clover_g\", \"Dry_Dead_g\", \"GDM_g\"]:\n        P_Clover = torch.clamp(preds_3[:, 0], min=0)\n        P_Dead =torch.clamp(preds_3[:, 1], min=0)\n        P_GDM = torch.clamp(preds_3[:, 2], min=0)\n\n        # Compute derived targets based on constraints.\n        P_Green = torch.clamp(P_GDM - P_Clover, min=0)\n        P_Total = torch.clamp(P_GDM + P_Dead, min=0)\n\n    \n    preds_5 = torch.stack(\n        [\n            P_Clover, # Index 0\n            P_Dead,   # Index 1\n            P_Green,  # Index 2\n            P_Total,  # Index 3\n            P_GDM     # Index 4\n        ],\n        dim=1\n    )\n    return preds_5\n\ndef expand_predictions_np(preds_3, targets):\n    \"\"\"\n    [Numpy] Expand the three NN predictions (N, 3) to five predictions (N, 5).\n    \"\"\"\n\n    if targets == [\"Dry_Green_g\", \"Dry_Total_g\", \"GDM_g\"]:\n        # clip\n        P_Green = np.clip(preds_3[:, 0], a_min=0, a_max=None)\n        P_Total = np.clip(preds_3[:, 1], a_min=0, a_max=None)\n        P_GDM = np.clip(preds_3[:, 2], a_min=0, a_max=None)\n        \n        # Compute derived targets based on constraints.\n        P_Clover = np.clip(P_GDM - P_Green, a_min=0, a_max=None)\n        P_Dead = np.clip(P_Total - P_GDM, a_min=0, a_max=None)\n    \n    elif targets == [\"Dry_Clover_g\", \"Dry_Dead_g\", \"Dry_Green_g\"]:\n        P_Clover = np.clip(preds_3[:, 0], a_min=0, a_max=None)\n        P_Dead = np.clip(preds_3[:, 1], a_min=0, a_max=None)\n        P_Green = np.clip(preds_3[:, 2], a_min=0, a_max=None)\n\n        # Compute derived targets based on constraints.\n        P_GDM = np.clip(P_Green + P_Clover, a_min=0, a_max=None)\n        P_Total = np.clip(P_GDM + P_Dead, a_min=0, a_max=None)\n\n    elif targets == [\"Dry_Clover_g\", \"Dry_Dead_g\", \"GDM_g\"]:\n        P_Clover = np.clip(preds_3[:, 0], a_min=0, a_max=None)\n        P_Dead = np.clip(preds_3[:, 1], a_min=0, a_max=None)\n        P_GDM = np.clip(preds_3[:, 2], a_min=0, a_max=None)\n\n        # Compute derived targets based on constraints.\n        P_Green = np.clip(P_GDM - P_Clover, a_min=0, a_max=None)\n        P_Total = np.clip(P_GDM + P_Dead, a_min=0, a_max=None)\n    \n    preds_5 = np.stack(\n        [P_Clover, P_Dead, P_Green, P_Total, P_GDM],\n        axis=1\n    )\n    return preds_5\n        \n# ======== 8. Inference ========\ndef run_inference(targets):\n    print(\"\\n======== Starting Inference ========\")\n    \n    # data\n    test_df = pd.read_csv(config.test_csv_path)\n    test_unique_df = test_df.drop_duplicates(subset=\"image_path\").reset_index(drop=True)\n    \n    test_dataset = BiomassTwoStreamDataset(\n        test_unique_df, \n        transforms=get_two_stream_transforms(is_train=False), \n        is_test=True,\n        targets=targets\n    )\n    test_loader = DataLoader(\n        test_dataset, batch_size=config.batch_size * 2, shuffle=False,\n        num_workers=os.cpu_count(), pin_memory=True\n    )\n    \n    # Prediction using 5-fold models\n    all_fold_preds = []\n    for fold in range(config.nFolds):\n        print(f\"Predicting with Fold {fold+1}...\")\n        model_path = os.path.join(config.best_model_dir, f\"model_fold_{fold}.pth\")\n\n        model = DINOv2TwoStreamRegressor(n_targets=3, freeze_backbone=True).to(config.device)\n\n        try:\n            model.load_state_dict(torch.load(model_path))\n        except FileNotFoundError:\n            print(f\"Warning: Model file {model_path} not found. Skipping fold {fold+1}.\")\n            continue\n            \n        model.eval()\n        \n        fold_preds = []\n        with torch.no_grad():\n            for img_left, img_right in test_loader:\n                img_left, img_right = img_left.to(config.device), img_right.to(config.device)\n                outputs = model(img_left, img_right)\n                fold_preds.append(outputs.cpu().numpy())\n        \n        all_fold_preds.append(np.concatenate(fold_preds, axis=0))\n    \n    if not all_fold_preds:\n        print(\"Error: No models were loaded. Cannot perform inference.\")\n        return\n\n    # average\n    # (nFolds, n_test_images, n_targets) -> (n_test_images, n_targets)\n    avg_preds_3 = np.mean(all_fold_preds, axis=0) # (n_test_images, 3)\n    avg_preds_5 = expand_predictions_np(avg_preds_3, targets) # (n_test_images, 5)\n    \n    # submission\n    \n    preds_df = pd.DataFrame(avg_preds_5, columns=config.target_cols)\n    test_unique_df = pd.concat([test_unique_df, preds_df], axis=1)\n    \n    test_pred_long_df = test_unique_df.melt(\n        id_vars=[\"image_path\"], \n        value_vars=config.target_cols,\n        var_name=\"target_name\",\n        value_name=\"target\"\n    )\n\n    submission_df = test_df[[\"sample_id\", \"image_path\", \"target_name\"]].merge(\n        test_pred_long_df,\n        on=[\"image_path\", \"target_name\"],\n        how=\"left\"\n    )\n    \n    final_submission = submission_df[[\"sample_id\", \"target\"]].copy()\n\n    # sanitize\n    final_submission[\"target\"] = final_submission[\"target\"].fillna(0)\n    final_submission[\"target\"] = final_submission[\"target\"].replace([np.inf, -np.inf], 0)\n    final_submission[\"target\"] = final_submission[\"target\"].clip(lower=0)\n    \n    # submission\n    final_submission.to_csv(\"submission.csv\", index=False)\n    print(\"Inference complete. submission.csv saved.\")\n    print(final_submission.head())\n\nclass EarlyStopping:\n    def __init__(self, patience=5, min_delta=1e-4):\n        self.patience = patience\n        self.min_delta = min_delta\n        self.counter = 0\n        self.best_score = None\n\n    def step(self, score):\n        if self.best_score is None or score < self.best_score - self.min_delta:\n            self.best_score = score\n            self.counter = 0\n            return True\n        else:\n            self.counter += 1\n            return False\n\n    def should_stop(self):\n        return self.counter >= self.patience","metadata":{"trusted":true},"outputs":[],"execution_count":null},{"cell_type":"markdown","source":"# Inference","metadata":{}},{"cell_type":"code","source":"config = CONFIG()\ntargets = config.targets_configs\nrun_inference(targets)","metadata":{"trusted":true},"outputs":[],"execution_count":null}]}