Spaces:
Sleeping
Sleeping
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 |