fundus-9model-benchmark / code /hparams.json
DoB24's picture
Add academic polish: inference example, hparams, CITATION.cff, dataset figures, per-class CSVs
33be17a verified
Raw
History Blame Contribute Delete
2.21 kB
{
"common": {
"image_size": 224,
"batch_size": 32,
"optimizer": "AdamW",
"weight_decay": 0.0001,
"lr_schedule": "warmup-cosine",
"warmup_epochs": 3,
"total_epochs": 60,
"early_stopping_patience": 12,
"label_smoothing": 0.1,
"loss": "CrossEntropyLoss (label-smoothed)",
"mixup_alpha": 0.2,
"cutmix_alpha": 1.0,
"mixup_cutmix_prob": 0.7,
"sampler": "WeightedRandomSampler (inverse-frequency)",
"augmentations": [
"CLAHE (cliplimit=2.0, tilegrid=8x8)",
"RandAugment (n=2, m=9)",
"RandomHorizontalFlip(0.5)",
"RandomVerticalFlip(0.2)",
"ColorJitter(brightness=0.2, contrast=0.2, saturation=0.2)",
"RandomErasing(p=0.25)",
"Normalize(ImageNet stats)"
],
"tta": {
"crops": 6,
"ops": [
"centre",
"horizontal-flip",
"vertical-flip",
"rot90",
"rot180",
"rot270"
]
},
"amp": "fp16",
"split": "Group-aware StratifiedGroupKFold(5) on pHash groups, fold 0 = test"
},
"per_model_learning_rate": {
"vgg19": 0.0001,
"resnet50": 0.0001,
"resnet101": 0.0001,
"densenet121": 0.0001,
"inception_v3": 0.0001,
"swin_b": 5e-05,
"clip_openai": 5e-05,
"dinov2_l": {
"stage1_head_only_lr": 0.001,
"stage1_epochs": 20,
"stage2_full_lr": 1e-05,
"stage2_epochs": 40
},
"retfound": {
"stage1_head_only_lr": 0.001,
"stage1_epochs": 20,
"stage2_full_lr": 1e-05,
"stage2_epochs": 40
}
},
"ensemble": {
"method": "soft-vote",
"weights": "per-model validation F1, L1-normalised",
"calibration": "per-model temperature scaling on validation set",
"conformal": "Mondrian (class-conditioned) split-conformal at 90% coverage"
},
"hardware": {
"gpu": "NVIDIA Tesla T4 (16 GB)",
"cuda": "12.8",
"pytorch": "2.11.0+cu128",
"approx_gpu_hours": {
"vgg19": 2.5,
"resnet50": 2.3,
"resnet101": 3.1,
"densenet121": 2.8,
"inception_v3": 2.2,
"swin_b": 4.5,
"clip_openai": 3.8,
"dinov2_l": 11.2,
"retfound": 9.4,
"ensemble_and_stats": 0.3,
"total": 42.1
}
}
}