| #!/bin/bash |
| |
| |
| |
| 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"; } |
|
|
| |
| 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 |
|
|
| |
| 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 |
|
|