Download code/scripts/umamba_predict_eval.sh from MaybeRichard/GenSeg-Baselines: direct link, hf CLI and curl.
- Browser
- Download file 2.65 kB
-
https://huggingface.co/MaybeRichard/GenSeg-Baselines/resolve/78cff97e783eec2dd3e6dd408cda212becc86cba/code/scripts/umamba_predict_eval.sh
- Command line
-
hf download hf://MaybeRichard/GenSeg-Baselines@78cff97e783eec2dd3e6dd408cda212becc86cba/code/scripts/umamba_predict_eval.sh
-
curl -L -o umamba_predict_eval.sh https://huggingface.co/MaybeRichard/GenSeg-Baselines/resolve/78cff97e783eec2dd3e6dd408cda212becc86cba/code/scripts/umamba_predict_eval.sh
2.65 kB
| # U-Mamba finale: predict test sets (umamba env, both A100s) then score the 7 | |
| # framework metrics (seggen env, thread-capped). Mirrors the nnU-Net predict+eval | |
| # flow but with results_umamba / preprocessed_umamba / trainer 100ep / arch=umamba. | |
| set -u | |
| cd /home/wzhang/LSC/Code/NPJ | |
| source /opt/anaconda3/etc/profile.d/conda.sh | |
| export CUDA_DEVICE_ORDER=PCI_BUS_ID | |
| RAW=/home/wzhang/LSC/Code/NPJ/nnunet_workspace/raw | |
| PRE=/home/wzhang/LSC/Code/NPJ/nnunet_workspace/preprocessed_umamba | |
| RES=/home/wzhang/LSC/Code/NPJ/nnunet_workspace/results_umamba | |
| PRED=/home/wzhang/LSC/Code/NPJ/nnunet_workspace/predTs_umamba | |
| DATA_ROOT=/home/wzhang/LSC/Dataset/Segmentation/processed_unified | |
| TR=nnUNetTrainerUMambaBot_100epochs | |
| mkdir -p "$PRED" | |
| dsname () { case $1 in | |
| 1) echo cvc_clinicdb official;; 2) echo kvasir_seg official;; 3) echo fives official;; | |
| 4) echo refuge2 official;; 5) echo busi fold01;; 6) echo idridd_segmentation fold01;; | |
| 7) echo acdc_png official;; 8) echo pannuke_semantic fold01;; 9) echo medsegdb_isic2018 holdout;; | |
| 10) echo medsegdb_kits19 fold01;; | |
| esac; } | |
| rawname () { printf "Dataset%03d_%s_%s" "$1" "$2" "$3"; } | |
| # ---------- Phase 1: predict (umamba env), ids split across GPU4 / GPU5 ---------- | |
| conda activate umamba | |
| export nnUNet_raw=$RAW nnUNet_preprocessed=$PRE nnUNet_results=$RES | |
| export OMP_NUM_THREADS=4 MKL_NUM_THREADS=4 | |
| predict_ids () { | |
| local gpu=$1; shift | |
| for id in "$@"; do | |
| read -r ds proto < <(dsname "$id"); dn=$(rawname "$id" "$ds" "$proto") | |
| for f in 0 1 2; do | |
| out=$PRED/d${id}_f${f}; mkdir -p "$out" | |
| echo "[predict gpu$gpu] $dn f$f" | |
| CUDA_VISIBLE_DEVICES=$gpu nnUNetv2_predict -i "$RAW/$dn/imagesTs" -o "$out" \ | |
| -d "$id" -c 2d -f "$f" -tr "$TR" --disable_tta > "$out/predict.log" 2>&1 | |
| done | |
| done | |
| } | |
| predict_ids 4 1 2 3 4 5 & | |
| predict_ids 5 6 7 8 9 10 & | |
| wait | |
| echo PREDICT_DONE | |
| # ---------- Phase 2: eval (seggen env), parallel, thread-capped, max 10 ---------- | |
| conda deactivate; conda activate seggen | |
| export OMP_NUM_THREADS=8 MKL_NUM_THREADS=8 OPENBLAS_NUM_THREADS=8 NUMEXPR_NUM_THREADS=8 | |
| for id in 1 2 3 4 5 6 7 8 9 10; do | |
| read -r ds proto < <(dsname "$id") | |
| for f in 0 1 2; do | |
| while (( $(jobs -rp | wc -l) >= 10 )); do wait -n; done | |
| ( | |
| python framework/nnunet_eval.py --data_root "$DATA_ROOT" \ | |
| --dataset "$ds" --protocol "$proto" --raw "$RAW" \ | |
| --dataset_id "$id" --fold "$f" --pred_dir "$PRED/d${id}_f${f}" \ | |
| --arch umamba --exp_name baselines > "$PRED/d${id}_f${f}/eval.log" 2>&1 | |
| echo "evaled d${id}_f${f}: $(tail -1 "$PRED/d${id}_f${f}/eval.log")" | |
| ) & | |
| done | |
| done | |
| wait | |
| echo EVAL_DONE | |