File size: 1,742 Bytes
057ec4b
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
#!/bin/bash
# Bulk predict-on-test + 7-metric eval for the 6 remaining nnU-Net datasets
# (IDs 005-010, each fold 0/1/2). Splits work across the two idle A100s (#4,#5).
set -u
cd /home/wzhang/LSC/Code/NPJ
source /opt/anaconda3/etc/profile.d/conda.sh
conda activate nnunet
export CUDA_DEVICE_ORDER=PCI_BUS_ID
export nnUNet_raw=/home/wzhang/LSC/Code/NPJ/nnunet_workspace/raw
export nnUNet_preprocessed=/home/wzhang/LSC/Code/NPJ/nnunet_workspace/preprocessed
export nnUNet_results=/home/wzhang/LSC/Code/NPJ/nnunet_workspace/results_nnunet
DATA_ROOT=/home/wzhang/LSC/Dataset/Segmentation/processed_unified
PRED=/home/wzhang/LSC/Code/NPJ/nnunet_workspace/predTs

run_ds () {
  local gpu=$1; shift
  for spec in "$@"; do
    IFS=: read -r id ds proto <<< "$spec"
    dsname=$(printf "Dataset%03d_%s_%s" "$id" "$ds" "$proto")
    for f in 0 1 2; do
      outdir=$PRED/d${id}_f${f}
      mkdir -p "$outdir"
      echo "[predict] gpu=$gpu $dsname fold$f -> $outdir"
      CUDA_VISIBLE_DEVICES=$gpu nnUNetv2_predict \
        -i "$nnUNet_raw/$dsname/imagesTs" -o "$outdir" \
        -d "$id" -c 2d -f "$f" -tr nnUNetTrainer_250epochs --disable_tta \
        > "$outdir/predict.log" 2>&1
      echo "[eval] $dsname fold$f"
      python framework/nnunet_eval.py --data_root "$DATA_ROOT" \
        --dataset "$ds" --protocol "$proto" --raw "$nnUNet_raw" \
        --dataset_id "$id" --fold "$f" --pred_dir "$outdir" \
        --arch nnunet --exp_name baselines > "$outdir/eval.log" 2>&1
      tail -1 "$outdir/eval.log"
    done
  done
}

run_ds 4 "5:busi:fold01" "6:idridd_segmentation:fold01" "7:acdc_png:official" &
run_ds 5 "8:pannuke_semantic:fold01" "9:medsegdb_isic2018:holdout" "10:medsegdb_kits19:fold01" &
wait
echo ALL_NNUNET_PREDICT_EVAL_DONE