From be36e392062eadc4863d09867f3b03fcf1b02d9e Mon Sep 17 00:00:00 2001 From: Anton Schwaighofer Date: Mon, 21 Jun 2021 14:39:09 +0100 Subject: [PATCH] Bug fix for regression test (#496) - The regresssion test code in #492 missed out files in AzureML, because the wrong function was called in the main workflow. - Cleaner folder structure for regression test results --- .amlignore | 2 + .../Template__Run_ML_on_AzureML.xml | 2 +- CHANGELOG.md | 1 + .../Statistics/wilcoxon_signed_rank_test.py | 2 +- InnerEye/ML/baselines_util.py | 68 +++++++++---------- InnerEye/ML/run_ml.py | 10 +-- .../ML/visualizers/metrics_scatterplot.py | 4 +- .../ML/visualizers/plot_cross_validation.py | 2 +- .../{ => OUTPUT}/Train/epoch_metrics.csv | 0 .../{ => OUTPUT}/Val/epoch_metrics.csv | 0 .../Test/005/background.nii.gz | 0 .../Test/005/posterior_lung_l.nii.gz | 0 .../Test/005/uncertainty.nii.gz | 0 .../best_validation_epoch/Test/dataset_id.txt | 0 .../Test/ground_truth_ids.txt | 0 .../Test/image_channel_ids.txt | 0 .../best_validation_epoch/Test/metrics.csv | 0 .../Test/metrics_aggregates.csv | 0 .../Test/metrics_boxplot.png | 0 .../Test/thumbnails/005_lung_l_slice_053.png | 0 .../Test/thumbnails/005_lung_r_slice_037.png | 0 .../thumbnails/005_spinalcord_slice_088.png | 0 .../Val/002/background.nii.gz | 0 .../Val/002/posterior_lung_r.nii.gz | 0 .../best_validation_epoch/Val/metrics.csv | 0 .../Val/metrics_aggregates.csv | 0 .../Val/metrics_boxplot.png | 0 .../Val/thumbnails/002_lung_l_slice_069.png | 0 .../Val/thumbnails/002_lung_r_slice_052.png | 0 .../thumbnails/002_spinalcord_slice_113.png | 0 .../patch_sampling/0_sampled_patches_dim0.png | 0 .../patch_sampling/0_sampled_patches_dim1.png | 0 .../patch_sampling/0_sampled_patches_dim2.png | 0 .../model_inference_config.json | 0 .../{ => OUTPUT}/test_mse.txt | 0 .../{ => OUTPUT}/Train/epoch_metrics.csv | 0 .../{ => OUTPUT}/Val/epoch_metrics.csv | 0 .../best_validation_epoch/Test/metrics.csv | 0 .../best_validation_epoch/Val/metrics.csv | 0 .../CrossValResults/Dice_Test_splits.jpg | 3 - .../CrossValResults/Dice_Val_splits.jpg | 3 - .../HausdorffDistance_mm_Test_splits.jpg | 3 - .../HausdorffDistance_mm_Val_splits.jpg | 3 - .../CrossValResults/MetricsAcrossAllRuns.csv | 19 ------ .../model_inference_config.json | 2 +- .../{ => OUTPUT}/Train/epoch_metrics.csv | 0 .../{ => OUTPUT}/Val/epoch_metrics.csv | 0 Tests/ML/test_regression_tests.py | 62 +++++++++-------- docs/building_models.md | 8 +-- 49 files changed, 86 insertions(+), 108 deletions(-) rename RegressionTestResults/PR_BasicModel2Epochs/{ => OUTPUT}/Train/epoch_metrics.csv (100%) rename RegressionTestResults/PR_BasicModel2Epochs/{ => OUTPUT}/Val/epoch_metrics.csv (100%) rename RegressionTestResults/PR_BasicModel2Epochs/{ => OUTPUT}/best_validation_epoch/Test/005/background.nii.gz (100%) rename RegressionTestResults/PR_BasicModel2Epochs/{ => OUTPUT}/best_validation_epoch/Test/005/posterior_lung_l.nii.gz (100%) rename RegressionTestResults/PR_BasicModel2Epochs/{ => OUTPUT}/best_validation_epoch/Test/005/uncertainty.nii.gz (100%) rename RegressionTestResults/PR_BasicModel2Epochs/{ => OUTPUT}/best_validation_epoch/Test/dataset_id.txt (100%) rename RegressionTestResults/PR_BasicModel2Epochs/{ => OUTPUT}/best_validation_epoch/Test/ground_truth_ids.txt (100%) rename RegressionTestResults/PR_BasicModel2Epochs/{ => OUTPUT}/best_validation_epoch/Test/image_channel_ids.txt (100%) rename RegressionTestResults/PR_BasicModel2Epochs/{ => OUTPUT}/best_validation_epoch/Test/metrics.csv (100%) rename RegressionTestResults/PR_BasicModel2Epochs/{ => OUTPUT}/best_validation_epoch/Test/metrics_aggregates.csv (100%) rename RegressionTestResults/PR_BasicModel2Epochs/{ => OUTPUT}/best_validation_epoch/Test/metrics_boxplot.png (100%) rename RegressionTestResults/PR_BasicModel2Epochs/{ => OUTPUT}/best_validation_epoch/Test/thumbnails/005_lung_l_slice_053.png (100%) rename RegressionTestResults/PR_BasicModel2Epochs/{ => OUTPUT}/best_validation_epoch/Test/thumbnails/005_lung_r_slice_037.png (100%) rename RegressionTestResults/PR_BasicModel2Epochs/{ => OUTPUT}/best_validation_epoch/Test/thumbnails/005_spinalcord_slice_088.png (100%) rename RegressionTestResults/PR_BasicModel2Epochs/{ => OUTPUT}/best_validation_epoch/Val/002/background.nii.gz (100%) rename RegressionTestResults/PR_BasicModel2Epochs/{ => OUTPUT}/best_validation_epoch/Val/002/posterior_lung_r.nii.gz (100%) rename RegressionTestResults/PR_BasicModel2Epochs/{ => OUTPUT}/best_validation_epoch/Val/metrics.csv (100%) rename RegressionTestResults/PR_BasicModel2Epochs/{ => OUTPUT}/best_validation_epoch/Val/metrics_aggregates.csv (100%) rename RegressionTestResults/PR_BasicModel2Epochs/{ => OUTPUT}/best_validation_epoch/Val/metrics_boxplot.png (100%) rename RegressionTestResults/PR_BasicModel2Epochs/{ => OUTPUT}/best_validation_epoch/Val/thumbnails/002_lung_l_slice_069.png (100%) rename RegressionTestResults/PR_BasicModel2Epochs/{ => OUTPUT}/best_validation_epoch/Val/thumbnails/002_lung_r_slice_052.png (100%) rename RegressionTestResults/PR_BasicModel2Epochs/{ => OUTPUT}/best_validation_epoch/Val/thumbnails/002_spinalcord_slice_113.png (100%) rename RegressionTestResults/PR_BasicModel2Epochs/{ => OUTPUT}/patch_sampling/0_sampled_patches_dim0.png (100%) rename RegressionTestResults/PR_BasicModel2Epochs/{ => OUTPUT}/patch_sampling/0_sampled_patches_dim1.png (100%) rename RegressionTestResults/PR_BasicModel2Epochs/{ => OUTPUT}/patch_sampling/0_sampled_patches_dim2.png (100%) rename RegressionTestResults/PR_HelloContainer/AZUREML_OUTPUT/{ => final_model}/model_inference_config.json (100%) rename RegressionTestResults/PR_HelloContainer/{ => OUTPUT}/test_mse.txt (100%) rename RegressionTestResults/PR_Train2Nodes/{ => OUTPUT}/Train/epoch_metrics.csv (100%) rename RegressionTestResults/PR_Train2Nodes/{ => OUTPUT}/Val/epoch_metrics.csv (100%) rename RegressionTestResults/PR_Train2Nodes/{ => OUTPUT}/best_validation_epoch/Test/metrics.csv (100%) rename RegressionTestResults/PR_Train2Nodes/{ => OUTPUT}/best_validation_epoch/Val/metrics.csv (100%) delete mode 100644 RegressionTestResults/PR_TrainEnsemble/AZUREML_PARENT_OUTPUT/CrossValResults/Dice_Test_splits.jpg delete mode 100644 RegressionTestResults/PR_TrainEnsemble/AZUREML_PARENT_OUTPUT/CrossValResults/Dice_Val_splits.jpg delete mode 100644 RegressionTestResults/PR_TrainEnsemble/AZUREML_PARENT_OUTPUT/CrossValResults/HausdorffDistance_mm_Test_splits.jpg delete mode 100644 RegressionTestResults/PR_TrainEnsemble/AZUREML_PARENT_OUTPUT/CrossValResults/HausdorffDistance_mm_Val_splits.jpg delete mode 100644 RegressionTestResults/PR_TrainEnsemble/AZUREML_PARENT_OUTPUT/CrossValResults/MetricsAcrossAllRuns.csv rename RegressionTestResults/PR_TrainEnsemble/{ => OUTPUT}/Train/epoch_metrics.csv (100%) rename RegressionTestResults/PR_TrainEnsemble/{ => OUTPUT}/Val/epoch_metrics.csv (100%) diff --git a/.amlignore b/.amlignore index e700f62d4..a8bd214ba 100644 --- a/.amlignore +++ b/.amlignore @@ -3,6 +3,8 @@ .pytest_cache .mypy_cache __pycache__ +azure-pipelines +.github datasets modelweights outputs diff --git a/.idea/runConfigurations/Template__Run_ML_on_AzureML.xml b/.idea/runConfigurations/Template__Run_ML_on_AzureML.xml index f8894bfff..8e58a0a7c 100644 --- a/.idea/runConfigurations/Template__Run_ML_on_AzureML.xml +++ b/.idea/runConfigurations/Template__Run_ML_on_AzureML.xml @@ -12,7 +12,7 @@