| # Launch the full corrected experiment pipeline on the Azure T4 VM. | |
| # Designed to be called via: sshpass + nohup so it survives SSH disconnect. | |
| # | |
| # Outputs go to ~/fundus_project/final_experiments/ | |
| # - run.log progress | |
| # - {model}_kfold.json 5-fold CV summary per model | |
| # - {model}_test.json independent-test metrics per model | |
| # - {model}_test_preds.json per-sample preds for McNemar | |
| # - mcnemar.json pairwise paired tests | |
| # - weights/{model}_final.pth reproducible model weights | |
| # - kfold_summary.json aggregate | |
| set -euo pipefail | |
| cd ~/fundus_project | |
| source ~/.venv/bin/activate | |
| # Use ORIGINAL dataset to avoid data-leakage: in the Augmented dataset, each | |
| # original image has multiple augmented copies with no group ID, so a random | |
| # split puts copies of the same source into BOTH train and test (inflates test | |
| # accuracy 2-6pp). On-the-fly augmentation in the train transform compensates. | |
| echo "[$(date)] building holdout split (ORIGINAL dataset, no leakage)" | |
| python comparison_experiment/build_holdout_split.py \ | |
| --data-dir Database/Original_Dataset \ | |
| --output holdout_split.json \ | |
| --test-size 0.15 --val-size 0.15 --folds 5 --seed 42 | |
| echo "[$(date)] starting unified pipeline (k-fold CV + independent test for all 6 models)" | |
| echo " - class-weighted CE loss (sqrt-inverse-frequency)" | |
| echo " - CLIP uses OpenAI pretrained weights" | |
| echo " - saves per-sample probs for ROC/PR/ECE analysis" | |
| echo " - bootstrap 95% CIs on test metrics" | |
| python comparison_experiment/run_final_experiments.py \ | |
| --manifest holdout_split.json \ | |
| --models vgg19 resnet50 resnet101 densenet121 inception_v3 clip_openai \ | |
| --epochs 60 --folds 5 --batch-size 32 --workers 4 --lr 1e-4 --patience 8 \ | |
| --output-dir final_experiments | |
| echo "[$(date)] generating gradcam figures" | |
| python comparison_experiment/generate_all_gradcam.py \ | |
| --weights-dir final_experiments/weights \ | |
| --manifest holdout_split.json \ | |
| --output-dir gradcam_outputs_final | |
| echo "[$(date)] DONE" | |