88 lines
3.3 KiB
JSON
88 lines
3.3 KiB
JSON
{
|
|
"_notes": [
|
|
"Phase 5 — Full HyperTower: bilateral + clinical data + aggregation strategy comparison.",
|
|
"Goal: show the effect of a dual CNN + clinical data, and compare ensemble vs fused-head.",
|
|
"Best settings from all prior phases: refugelike, iop_ratio_drop_raw, bcd_p05.",
|
|
"Best bilateral architecture from phase 4 should be used — update tower-mode accordingly.",
|
|
"common_args are prepended to every run's args list.",
|
|
"NOTE: update --tower-mode in groups below once phase 4 winner is known.",
|
|
"Placeholder uses 'bilateral' — change to 'siamese' if that wins phase 4."
|
|
],
|
|
|
|
"common_args": [
|
|
"--eval-mode", "binary",
|
|
"--bridge-mode", "fused",
|
|
"--epochs", "30",
|
|
"--in-memory-cache",
|
|
"--augment",
|
|
"--tune-binary-threshold",
|
|
"--backbone", "refugelike",
|
|
"--iop-corr-method", "ratio",
|
|
"--iop-drop-raw",
|
|
"--exclude-cols", "Axial_Length",
|
|
"--output-root", "v3/results"
|
|
],
|
|
|
|
"_common_args_implicit_defaults": {
|
|
"--tower-loss-mode": "bcd",
|
|
"--bcd-prob": "0.5",
|
|
"--warmup-cd-epochs": "40",
|
|
"--single-warmup-tower-epochs": "3",
|
|
"--single-warmup-fused-epochs": "3",
|
|
"--bilat-warmup-tower-epochs": "3",
|
|
"--bilat-warmup-fused-epochs": "3"
|
|
},
|
|
|
|
"baseline": {
|
|
"run_name": "phase5/single_fused",
|
|
"description": "Single-eye + clinical data — phase 3 best config, re-run as direct comparison baseline for phase 5.",
|
|
"extra_args": ["--hypertower-mode", "single"]
|
|
},
|
|
|
|
"groups": [
|
|
{
|
|
"name": "bilateral_clinical",
|
|
"description": "Add clinical data to bilateral architectures.",
|
|
"runs": [
|
|
{
|
|
"run_name": "phase5/ensemble_fused",
|
|
"description": "Ensemble (independent OD+OS) + clinical data via fused bridge.",
|
|
"extra_args": ["--hypertower-mode", "ensemble"]
|
|
},
|
|
{
|
|
"run_name": "phase5/bilateral_fused",
|
|
"description": "BilateralHT + clinical data — full canonical HyperTower.",
|
|
"extra_args": ["--hypertower-mode", "bilateral"]
|
|
},
|
|
{
|
|
"run_name": "phase5/siamese_fused",
|
|
"description": "SiameseHT + clinical data — siamese mean+delta with fused clinical bridge.",
|
|
"extra_args": ["--hypertower-mode", "siamese"]
|
|
}
|
|
]
|
|
},
|
|
|
|
{
|
|
"name": "aggregation",
|
|
"description": "Compare patient-level prediction aggregation strategies on top of ensemble.",
|
|
"runs": [
|
|
{
|
|
"run_name": "phase5/ensemble_fused_head",
|
|
"description": "Ensemble + clinical data + attention scorer head (Linear(C→1) per eye, softmax-weighted average).",
|
|
"extra_args": ["--hypertower-mode", "ensemble", "--fused-head"]
|
|
},
|
|
{
|
|
"run_name": "phase5/logit_mlp_head",
|
|
"description": "Ensemble + clinical data + logit-level MLP head (cat([logit_od, logit_os]) → FC(64) → FC(C)).",
|
|
"extra_args": ["--hypertower-mode", "ensemble", "--fused-head", "--head-type", "logit_mlp"]
|
|
},
|
|
{
|
|
"run_name": "phase5/embedding_mlp_head",
|
|
"description": "Ensemble + clinical data + embedding-level MLP head (cat([z_od, z_os]) → FC(256) → FC(C)).",
|
|
"extra_args": ["--hypertower-mode", "ensemble", "--fused-head", "--head-type", "embedding_mlp"]
|
|
}
|
|
]
|
|
}
|
|
]
|
|
}
|