Files
hypertower/v3/scripts/main/phase2/phase_2_overnight.sh
T
2026-04-14 19:42:16 +02:00

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 "============================================================"