Spaces:
Sleeping
Sleeping
File size: 3,039 Bytes
427d150 |
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 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 |
#!/bin/bash
set -e
GPUID1=0
export CUDA_VISIBLE_DEVICES=$GPUID1
# Configs
MODEL_NAME='dinov2_l14' # relevant for ALPNET, aviailable: dinov2_l14, dinov2_l14_reg, dinov2_b14, dinov2_b14_reg, dlfcn_res101 (deeplabv3)
COARSE_PRED_ONLY="False" # True will output the coarse segmentation result
PROTOSAM_SAM_VER="sam_h" # available: sam_h, sam_b, medsam
INPUT_SIZE=256 # resolution
ORGAN="rk" # relevant for MRI and CT, available: rk, lk, liver, spleen
# get modality as arg
MODALITY=$1
PROTO_GRID=8 # using 32 / 8 = 4, 4-by-4 prototype pooling window during training
ALL_EV=( 0 ) # 5-fold cross validation (0, 1, 2, 3, 4)
SEED=42
if [ $MODALITY != "ct" ] && [ $MODALITY != "mri" ] && [ $MODALITY != "polyp" ]
then
echo "modality must be either ct ,mri or polyp"
exit 1
fi
if [ $MODALITY == "ct" ]
then
DATASET='SABS_Superpix'
fi
if [ $MODALITY == "mri" ]
then
DATASET='CHAOST2_Superpix'
fi
if [ $MODALITY == "polyp" ]
then
DATASET='polyps'
fi
if [ $INPUT_SIZE -gt 256 ]
then
DATASET=${DATASET}'_672'
fi
NWORKER=4
LORA=0
RELOAD_PATH=( "None" )
SKIP_SLICES="True"
DO_CCA="True"
ALL_SCALE=( "MIDDLE") # config of pseudolabels
if [ $MODALITY == "polyp" ]
then
ORGAN="polyps"
fi
FREE_DESC=""
CPT="${MODEL_NAME}_${MODALITY}"
if [ -n "$FREE_DESC" ]
then
CPT="${CPT}_${FREE_DESC}"
fi
if [ $LORA -ne 0 ]
then
CPT="${CPT}_lora_${LORA}"
fi
if [ $DO_CCA = "True" ]
then
CPT="${CPT}_cca"
fi
CPT="${CPT}_grid_${PROTO_GRID}_res_${INPUT_SIZE}_${ORGAN}_fold"
SUPP_ID='[6]'
if [ $MODALITY == "mri" ]
then
SUPP_ID='[4]'
fi
echo ===================================
for ((i=0; i<${#ALL_EV[@]}; i++))
do
EVAL_FOLD=${ALL_EV[i]}
CPT_W_FOLD="${CPT}_${EVAL_FOLD}"
echo $CPT_W_FOLD on GPU $GPUID1
for SUPERPIX_SCALE in "${ALL_SCALE[@]}"
do
PREFIX="test_vfold${EVAL_FOLD}"
echo $PREFIX
LOGDIR="./test_${MODALITY}/${CPT_W_FOLD}"
if [ ! -d $LOGDIR ]
then
mkdir -p $LOGDIR
fi
python3 validation_protosam.py with \
"modelname=$MODEL_NAME" \
"base_model=alpnet" \
"coarse_pred_only=$COARSE_PRED_ONLY" \
"protosam_sam_ver=$PROTOSAM_SAM_VER" \
"curr_cls=$ORGAN" \
'usealign=True' \
'optim_type=sgd' \
reload_model_path=${RELOAD_PATH[i]} \
num_workers=$NWORKER \
scan_per_load=-1 \
'use_wce=True' \
exp_prefix=$PREFIX \
'clsname=grid_proto' \
eval_fold=$EVAL_FOLD \
dataset=$DATASET \
proto_grid_size=$PROTO_GRID \
min_fg_data=1 seed=$SEED \
save_snapshot_every=$SNAPSHOT_INTERVAL \
superpix_scale=$SUPERPIX_SCALE \
path.log_dir=$LOGDIR \
support_idx=$SUPP_ID \
lora=$LORA \
"input_size=($INPUT_SIZE, $INPUT_SIZE)"
done
done |