kabiriitb's picture
Upload folder using huggingface_hub
820fab0 verified
Raw History Blame Contribute Delete
1.62 kB
#!/bin/bash
# ============================================================
# 5-Fold Cross-Validation — SwinUNet, top-20 bands, cosine LR
# Each fold: honest held-out val → checkpoint selected on generalisation
# ============================================================
set -e
source /data1/nasiruddink/miniconda3/etc/profile.d/conda.sh
conda activate brats
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/data1/nasiruddink/miniconda3/envs/brats/lib:/data1/nasiruddink/miniconda3/envs/brats/lib/python3.10/site-packages/nvidia/cudnn/lib
export TF_CPP_MIN_LOG_LEVEL=2
BANDS="band_25,band_18,band_22,band_23,band_10,band_6,band_24,band_27,band_17,band_11,band_13,band_14,band_4,band_3,band_9,band_26,band_8,band_5,band_15,band_7"
mkdir -p bandselection/logs
train_fold() {
local gpu=$1 fold=$2
echo "[GPU $gpu] training fold $fold ..."
CUDA_VISIBLE_DEVICES=$gpu MODEL_NAME="swin_unet" \
DATA_DIR="dataset/cv_folds/fold_${fold}" \
BAND_LIST=$BANDS EPOCHS=250 \
RUN_NAME="cv_fold${fold}" CKPT_DIR="bandselection/cv_fold${fold}" \
python3 train.py > bandselection/logs/cv_fold${fold}.log 2>&1
echo "[GPU $gpu] fold $fold done."
}
# Batch 1: folds 0,1,2 on GPU 0,1,2
train_fold 0 0 & P0=$!
train_fold 1 1 & P1=$!
train_fold 2 2 & P2=$!
echo "Batch 1 running (folds 0,1,2)..."
wait $P0 $P1 $P2
echo "Batch 1 done. 60s cooldown."; sleep 60
# Batch 2: folds 3,4 on GPU 0,1
train_fold 0 3 & P3=$!
train_fold 1 4 & P4=$!
echo "Batch 2 running (folds 3,4)..."
wait $P3 $P4
echo ""
echo "ALL 5 FOLDS TRAINED."
echo "Checkpoints: bandselection/cv_fold{0..4}/best_model.weights.h5"