| # Phase 2b — retrain failed DINOv2 + RETFound and re-run Phase 3 ensemble. | |
| set -e | |
| cd ~/fundus_project | |
| source ~/.venv/bin/activate | |
| echo "=== Phase 2b: DINOv2 + RETFound (fixed) ===" | |
| python comparison_experiment/run_foundation_models.py \ | |
| --manifest holdout_split_augmented.json \ | |
| --out-dir final_experiments_v3 \ | |
| --weights-dir weights_v3 \ | |
| --retfound-weights weights_retfound.pth \ | |
| --models dinov2_l retfound \ | |
| --batch-size 24 \ | |
| --workers 4 \ | |
| --lp-epochs 20 \ | |
| --ft-epochs 15 \ | |
| --patience 8 | |
| echo "=== Phase 3: ensemble all models ===" | |
| mkdir -p final_experiments_all | |
| cp final_experiments_v2/*_test_preds.json final_experiments_all/ 2>/dev/null || true | |
| cp final_experiments_v2/*_test.json final_experiments_all/ 2>/dev/null || true | |
| cp final_experiments_v3/*_test_preds.json final_experiments_all/ 2>/dev/null || true | |
| cp final_experiments_v3/*_test.json final_experiments_all/ 2>/dev/null || true | |
| python comparison_experiment/ensemble_and_stats.py \ | |
| --results-dir final_experiments_all \ | |
| --out final_experiments_all/ensemble_report.json | |
| echo "=== Done. Final outputs: ===" | |
| ls -la final_experiments_all/ | |