112 lines
3.7 KiB
Bash
Executable File
112 lines
3.7 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
# Phase 2 overnight batch — image-only ResNet50, 10x5 rep-CV
|
|
# Runs 6 configurations:
|
|
# 1. Leaky CV (eye-level splits)
|
|
# 2. Proper CV (patient-level, baseline)
|
|
# 3. GT crop scale=1.1 (paper-matched tight crop)
|
|
# 4. GT crop scale=2.5 (default generous crop)
|
|
# 5. UNet crop scale=1.1
|
|
# 6. UNet crop scale=2.5
|
|
set -euo pipefail
|
|
|
|
SCRIPT="python -m v3.scripts.main.run_cv"
|
|
OUTROOT="v3/results/phase2"
|
|
MANIFEST="manifest.csv"
|
|
UNET_WEIGHTS="models/v2/refuge/segmentation/per_image/best.pt"
|
|
|
|
BASE="--eval-mode binary \
|
|
--tower-mode single \
|
|
--bridge-mode image_only \
|
|
--backbone resnet50 \
|
|
--epochs 30 \
|
|
--augment \
|
|
--in-memory-cache \
|
|
--reps 10 \
|
|
--rep-seed-start 100 \
|
|
--rep-seed-step 100 \
|
|
--output-root ${OUTROOT}"
|
|
|
|
echo "============================================================"
|
|
echo " Phase 2 overnight batch"
|
|
echo " $(date)"
|
|
echo "============================================================"
|
|
|
|
# ----------------------------------------------------------------
|
|
# 1. Leaky CV (eye-level splits, no crop)
|
|
# ----------------------------------------------------------------
|
|
echo ""
|
|
echo "=== [1/6] Leaky CV (eye-level) ==="
|
|
$SCRIPT $BASE \
|
|
--leaky-cv \
|
|
--run-name imageonly_resnet50_leaky
|
|
|
|
# ----------------------------------------------------------------
|
|
# 2. Proper CV (patient-level, no crop) — baseline
|
|
# ----------------------------------------------------------------
|
|
echo ""
|
|
echo "=== [2/6] Proper CV (patient-level, baseline) ==="
|
|
$SCRIPT $BASE \
|
|
--run-name imageonly_resnet50_proper
|
|
|
|
# ----------------------------------------------------------------
|
|
# 3. GT crop, scale=1.1 (paper-matched tight crop)
|
|
# ----------------------------------------------------------------
|
|
echo ""
|
|
echo "=== [3/6] GT crop, scale=1.1 ==="
|
|
$SCRIPT $BASE \
|
|
--img-crop-gt \
|
|
--img-crop-manifest ${MANIFEST} \
|
|
--img-crop-scale 1.1 \
|
|
--img-crop-size 200 \
|
|
--run-name imageonly_resnet50_gtcrop_1.1
|
|
|
|
# ----------------------------------------------------------------
|
|
# 4. GT crop, scale=2.5 (default generous crop)
|
|
# ----------------------------------------------------------------
|
|
echo ""
|
|
echo "=== [4/6] GT crop, scale=2.5 ==="
|
|
$SCRIPT $BASE \
|
|
--img-crop-gt \
|
|
--img-crop-manifest ${MANIFEST} \
|
|
--img-crop-scale 2.5 \
|
|
--img-crop-size 200 \
|
|
--run-name imageonly_resnet50_gtcrop_2.5
|
|
|
|
# ----------------------------------------------------------------
|
|
# 5. UNet crop, scale=1.1
|
|
# ----------------------------------------------------------------
|
|
echo ""
|
|
echo "=== [5/6] UNet crop, scale=1.1 ==="
|
|
$SCRIPT $BASE \
|
|
--img-crop-weights ${UNET_WEIGHTS} \
|
|
--img-crop-manifest ${MANIFEST} \
|
|
--img-crop-scale 1.1 \
|
|
--img-crop-size 200 \
|
|
--run-name imageonly_resnet50_unetcrop_1.1
|
|
|
|
# ----------------------------------------------------------------
|
|
# 6. UNet crop, scale=2.5
|
|
# ----------------------------------------------------------------
|
|
echo ""
|
|
echo "=== [6/6] UNet crop, scale=2.5 ==="
|
|
$SCRIPT $BASE \
|
|
--img-crop-weights ${UNET_WEIGHTS} \
|
|
--img-crop-manifest ${MANIFEST} \
|
|
--img-crop-scale 2.5 \
|
|
--img-crop-size 200 \
|
|
--run-name imageonly_resnet50_unetcrop_2.5
|
|
|
|
# ----------------------------------------------------------------
|
|
# 7. Refugelike backbone (proper CV, no crop) — pre-training effect
|
|
# ----------------------------------------------------------------
|
|
echo ""
|
|
echo "=== [7/7] Refugelike backbone (proper CV, no crop) ==="
|
|
$SCRIPT $BASE \
|
|
--backbone refugelike \
|
|
--run-name imageonly_refugelike_proper
|
|
|
|
echo ""
|
|
echo "============================================================"
|
|
echo " All done — $(date)"
|
|
echo "============================================================"
|