Diff of /scripts/runner.sh [000000] .. [6969be]

Switch to side-by-side view

--- a
+++ b/scripts/runner.sh
@@ -0,0 +1,329 @@
+#!/bin/bash
+
+# -------------------------------- Prepare datasets ------------------------------------
+(cd ../rocaseg/datasets &&
+ echo "prepare_dataset" &&
+ python prepare_dataset_oai_imo.py \
+    ../../../data_raw/OAI_iMorphics_scans \
+    ../../../data_raw/OAI_iMorphics_annotations \
+    ../../../data/91_OAI_iMorphics_full_meta \
+    --margin 20 \
+)
+
+(cd ../rocaseg/datasets &&
+ echo "prepare_dataset" &&
+ python prepare_dataset_okoa.py \
+    ../../../data_raw/OKOA \
+    ../../../data/31_OKOA_full_meta \
+    --margin 0 \
+)
+
+(cd ../rocaseg/datasets &&
+ echo "prepare_dataset" &&
+ python prepare_dataset_maknee.py \
+    ../../../data_raw/MAKNEE \
+    ../../../data/41_MAKNEE_full_meta \
+    --margin 0 \
+)
+# --------------------------------------------------------------------------------------
+
+# -------------------------------- Resample datasets -----------------------------------
+(cd ../rocaseg/ &&
+ echo "resample" &&
+ python resample.py \
+    --path_root_in ../../data/31_OKOA_full_meta \
+    --spacing_in 0.5859375 0.5859375 \
+    --path_root_out ../../data/32_OKOA_full_meta_rescaled \
+    --spacing_out 0.36458333 0.36458333 \
+    --num_threads 12 \
+    --margin 0 \
+)
+
+(cd ../rocaseg/ &&
+ echo "resample" &&
+ python resample.py \
+    --path_root_in ../../data/41_MAKNEE_full_meta \
+    --spacing_in 0.5859375 0.5859375 \
+    --path_root_out ../../data/42_MAKNEE_full_meta_rescaled \
+    --spacing_out 0.36458333 0.36458333 \
+    --num_threads 12 \
+    --margin 0 \
+)
+# --------------------------------------------------------------------------------------
+
+# --------------------------------- Train models ---------------------------------------
+(cd ../rocaseg/ &&
+ echo "train" &&
+ python train_baseline.py \
+    --path_data_root ../../data \
+    --path_experiment_root ../../results/0_baseline \
+    --model_segm unet_lext \
+    --input_channels 1 \
+    --output_channels 5 \
+    --center_depth 1 \
+    --lr_segm 0.001 \
+    --batch_size 32 \
+    --epoch_num 50 \
+    --fold_num 5 \
+    --fold_idx -1 \
+    --num_workers 12 \
+ )
+
+(cd ../rocaseg/ &&
+ echo "train" &&
+ python train_baseline.py \
+    --path_data_root ../../data \
+    --path_experiment_root ../../results/1_mixup \
+    --model_segm unet_lext \
+    --input_channels 1 \
+    --output_channels 5 \
+    --center_depth 1 \
+    --lr_segm 0.001 \
+    --batch_size 32 \
+    --epoch_num 50 \
+    --fold_num 5 \
+    --fold_idx -1 \
+    --with_mixup \
+    --mixup_alpha 0.7 \
+    --num_workers 12 \
+ )
+
+(cd ../rocaseg/ &&
+ echo "train" &&
+ python train_baseline.py \
+    --path_data_root ../../data \
+    --path_experiment_root ../../results/2_mixup_nowd \
+    --model_segm unet_lext \
+    --input_channels 1 \
+    --output_channels 5 \
+    --center_depth 1 \
+    --lr_segm 0.001 \
+    --wd_segm 0.0 \
+    --batch_size 32 \
+    --epoch_num 50 \
+    --fold_num 5 \
+    --fold_idx -1 \
+    --with_mixup \
+    --mixup_alpha 0.7 \
+    --num_workers 12 \
+ )
+
+(cd ../rocaseg/ &&
+ echo "train" &&
+ python train_uda1.py \
+    --path_data_root ../../data \
+    --path_experiment_root ../../results/3_uda1 \
+    --model_segm unet_lext \
+    --center_depth 1 \
+    --model_discr discriminator_a \
+    --input_channels 1 \
+    --output_channels 5 \
+    --mask_mode all_unitibial_unimeniscus \
+    --loss_segm multi_ce_loss \
+    --lr_segm 0.0001 \
+    --lr_discr 0.00004 \
+    --batch_size 32 \
+    --epoch_num 30 \
+    --fold_num 5 \
+    --fold_idx 0 \
+    --num_workers 12 \
+ )
+
+(cd ../rocaseg/ &&
+ echo "train" &&
+ python train_uda1.py \
+    --path_data_root ../../data \
+    --path_experiment_root ../../results/4_uda2 \
+    --model_segm unet_lext_aux \
+    --center_depth 1 \
+    --model_discr_out discriminator_a \
+    --model_discr_aux discriminator_a \
+    --input_channels 1 \
+    --output_channels 5 \
+    --mask_mode all_unitibial_unimeniscus \
+    --loss_segm multi_ce_loss \
+    --lr_segm 0.0001 \
+    --lr_discr 0.00004 \
+    --batch_size 32 \
+    --epoch_num 30 \
+    --fold_num 5 \
+    --fold_idx 0 \
+    --num_workers 12 \
+ )
+
+(cd ../rocaseg/ &&
+ echo "train" &&
+ python train_uda1.py \
+    --path_data_root ../../data \
+    --path_experiment_root ../../results/5_uda1_mixup_nowd \
+    --model_segm unet_lext \
+    --center_depth 1 \
+    --model_discr discriminator_a \
+    --input_channels 1 \
+    --output_channels 5 \
+    --mask_mode all_unitibial_unimeniscus \
+    --loss_segm multi_ce_loss \
+    --lr_segm 0.0001 \
+    --lr_discr 0.00004 \
+    --wd_segm 0.0 \
+    --batch_size 32 \
+    --epoch_num 30 \
+    --fold_num 5 \
+    --fold_idx 0 \
+    --num_workers 12 \
+    --with_mixup \
+    --mixup_alpha 0.7 \
+ )
+# --------------------------------------------------------------------------------------
+
+# ------------------------------- Run model inference ----------------------------------
+for EXP in 0_baseline 1_mixup 2_mixup_nowd 3_uda1 5_uda1_mixup_nowd
+do
+(cd ../rocaseg/ &&
+ echo "evaluate" &&
+ python evaluate.py \
+    --path_data_root ../../data \
+    --path_experiment_root ../../results/${EXP} \
+    --model_segm unet_lext \
+    --center_depth 1 \
+    --restore_weights \
+    --output_channels 5 \
+    --dataset oai_imo \
+    --subset test \
+    --mask_mode all_unitibial_unimeniscus \
+    --batch_size 64 \
+    --fold_num 5 \
+    --fold_idx -1 \
+    --num_workers 12 \
+    --predict_folds \
+    --merge_predictions \
+)
+done
+
+for EXP in 4_uda2
+do
+(cd ../rocaseg/ &&
+ echo "evaluate" &&
+ python evaluate.py \
+    --path_data_root ../../data \
+    --path_experiment_root ../../results/${EXP} \
+    --model_segm unet_lext_aux \
+    --center_depth 1 \
+    --restore_weights \
+    --output_channels 5 \
+    --dataset oai_imo \
+    --subset test \
+    --mask_mode all_unitibial_unimeniscus \
+    --batch_size 64 \
+    --fold_num 5 \
+    --fold_idx -1 \
+    --num_workers 12 \
+    --predict_folds \
+    --merge_predictions \
+)
+done
+
+for EXP in 0_baseline 1_mixup 2_mixup_nowd 3_uda1 5_uda1_mixup_nowd
+do
+(cd ../rocaseg/ &&
+ echo "evaluate" &&
+ python evaluate.py \
+    --path_data_root ../../data \
+    --path_experiment_root ../../results/${EXP} \
+    --model_segm unet_lext \
+    --center_depth 1 \
+    --restore_weights \
+    --output_channels 5 \
+    --dataset okoa \
+    --subset all \
+    --mask_mode background_femoral_unitibial \
+    --batch_size 64 \
+    --fold_num 5 \
+    --fold_idx -1 \
+    --num_workers 12 \
+    --predict_folds \
+    --merge_predictions \
+)
+done
+
+for EXP in 4_uda2
+do
+(cd ../rocaseg/ &&
+ echo "evaluate" &&
+ python evaluate.py \
+    --path_data_root ../../data \
+    --path_experiment_root ../../results/${EXP} \
+    --model_segm unet_lext_aux \
+    --center_depth 1 \
+    --restore_weights \
+    --output_channels 5 \
+    --dataset okoa \
+    --subset all \
+    --mask_mode background_femoral_unitibial \
+    --batch_size 64 \
+    --fold_num 5 \
+    --fold_idx -1 \
+    --num_workers 12 \
+    --predict_folds \
+    --merge_predictions \
+)
+done
+# --------------------------------------------------------------------------------------
+
+# ------------------------------- Analyze model predictions ----------------------------
+for EXP in 0_baseline 1_mixup 2_mixup_nowd 3_uda1 4_uda2 5_uda1_mixup_nowd
+do
+(cd ../rocaseg/ &&
+ echo "analyze_predictions" &&
+ python analyze_predictions_single.py \
+    --path_experiment_root ../../results/${EXP} \
+    --dirname_pred mask_foldavg \
+    --dirname_true mask_prep \
+    --dataset oai_imo \
+    --atlas segm \
+    --ignore_cache \
+    --num_workers 12 \
+)
+done
+
+for EXP in 0_baseline 1_mixup 2_mixup_nowd 3_uda1 4_uda2 5_uda1_mixup_nowd
+do
+(cd ../rocaseg/ &&
+ echo "analyze_predictions" &&
+ python analyze_predictions_single.py \
+    --path_experiment_root ../../results/${EXP} \
+    --dirname_pred mask_foldavg \
+    --dirname_true mask_prep \
+    --dataset okoa \
+    --atlas okoa \
+    --ignore_cache \
+    --num_workers 12 \
+)
+done
+# --------------------------------------------------------------------------------------
+
+# --------------------------------- Compare models -------------------------------------
+(cd ../rocaseg/ &&
+ echo "analyze_predictions_multi" &&
+ python analyze_predictions_multi.py \
+    --path_results_root ../../results \
+    --experiment_id 0_baseline \
+    --experiment_id 2_mixup_nowd \
+    --experiment_id 4_uda2 \
+    --dataset oai_imo \
+    --atlas segm \
+    --num_workers 12 \
+)
+
+(cd ../rocaseg/ &&
+ echo "analyze_predictions_multi" &&
+ python analyze_predictions_multi.py \
+    --path_results_root ../../results \
+    --experiment_id 0_baseline \
+    --experiment_id 2_mixup_nowd \
+    --experiment_id 4_uda2 \
+    --dataset okoa \
+    --atlas okoa \
+    --num_workers 12 \
+)
+# --------------------------------------------------------------------------------------