Views
No views yet
| Target | Weight | Description |
|---|---|---|
| Dry_Total_g | 0.50 | Total dry biomass (grams) — most important |
| GDM_g | 0.20 | Green dry matter (grams) |
| Dry_Green_g | 0.10 | Dry green biomass |
| Dry_Dead_g | 0.10 | Dry dead biomass |
| Dry_Clover_g | 0.10 | Dry clover biomass |
log1p(y) → train → expm1(pred) normalizes the distributionTotal ≈ Green + Dead + Clover structural constraintInput Image (224×224)
→ DINOv2-Base backbone (768-dim features)
→ LayerNorm → Dropout(0.3)
→ Linear(768, 512) → GELU → Dropout(0.15)
→ Linear(512, 256) → GELU → Dropout(0.09)
→ Linear(256, 5) → predictions| Backbone | Params | Feature Dim | Input Size | Notes |
|---|---|---|---|---|
vit_base_patch14_dinov2.lvd142m | 86M | 768 | 224×224 | Best generalization |
vit_large_patch14_dinov2.lvd142m | 304M | 1024 | 224×224 | Higher quality, needs more VRAM |
convnext_large.fb_in22k_ft_in1k | 198M | 1536 | 224×224 | Strong CNN baseline |
efficientnet_b4.ra2_in1k | 19M | 1792 | 320×320 | Lightweight, fast |
swin_large_patch4_window7_224 | 197M | 1536 | 224×224 | Hierarchical ViT |
├── train.py # Full training pipeline with CLI
├── inference.py # Inference with ensemble + TTA
├── train_ensemble.py # Multi-backbone ensemble training
├── kaggle_train_notebook.py # Self-contained Kaggle training notebook
├── kaggle_inference_notebook.py # Self-contained Kaggle inference notebook
└── README.md # This filepip install torch torchvision timm albumentations pandas numpy scikit-learn scipy pillow1python train.py \
2 --data_dir /path/to/competition/data \
3 --output_dir ./output \
4 --backbone dinov2_base \
5 --epochs 30 \
6 --batch_size 32 \
7 --backbone_lr 3e-5 \
8 --head_lr 1e-3 \
9 --n_folds 5 \
10 --aug_strength medium \
11 --use_lds \
12 --grad_checkpointing1python train_ensemble.py \
2 --data_dir /path/to/competition/data \
3 --output_dir ./ensemble_output \
4 --backbones dinov2_base convnext_large \
5 --epochs 30 \
6 --n_folds 51python inference.py \
2 --data_dir /path/to/competition/data \
3 --model_dir ./output \
4 --output submission.csv \
5 --n_tta 4kaggle_train_notebook.py as a Kaggle GPU notebookkaggle_inference_notebook.py with models as input dataset| Setting | Value | Rationale |
|---|---|---|
| Backbone LR | 3e-5 | Differential LR (0.5× of head) |
| Head LR | 1e-3 | Fast head convergence |
| Weight Decay | 1e-2 | Standard for AdamW |
| Warmup Ratio | 0.05 | 5% of training for LR warmup |
| Scheduler | Cosine | With warm restart |
| Batch Size | 32 | Effective 64 with grad_accum=2 |
| Augmentations | Medium | D4 + color jitter + CoarseDropout |
| Log Transform | Yes | Normalizes skewed targets |
| LDS | Yes | Handles imbalanced distributions |
| Consistency Weight | 0.1 | Total ≈ Green + Dead + Clover |
| Early Stopping | 8 epochs | Based on validation R² |
backbone_lr: [1e-5, 3e-5, 5e-5]head_lr: [5e-4, 1e-3, 2e-3]dropout: [0.2, 0.3, 0.4]hidden_dim: [256, 512, 1024]consistency_weight: [0.0, 0.05, 0.1, 0.2]aug_strength: [light, medium, heavy]img_size: [224, 384, 448]| Configuration | Expected CV R² |
|---|---|
| DINOv2-Base (single) | 0.55–0.70 |
| ConvNeXt-Large (single) | 0.50–0.65 |
| DINOv2-Base + ConvNeXt-Large ensemble | 0.60–0.75 |
| DINOv2-Large + TTA | 0.60–0.75 |
| Full ensemble (3 backbones + TTA + LDS) | 0.65–0.80 |