From 2dd9fa9a2ac4b36f766125c702c95891a3b03e02 Mon Sep 17 00:00:00 2001 From: Wenqi Li Date: Thu, 27 Oct 2022 08:22:44 +0100 Subject: [PATCH] fixes #5414 Signed-off-by: Wenqi Li --- monai/transforms/utils.py | 6 +++--- tests/test_generate_pos_neg_label_crop_centers.py | 15 ++++++++++++++- 2 files changed, 17 insertions(+), 4 deletions(-) diff --git a/monai/transforms/utils.py b/monai/transforms/utils.py index 3096d76889..e96d906f20 100644 --- a/monai/transforms/utils.py +++ b/monai/transforms/utils.py @@ -505,11 +505,11 @@ def generate_pos_neg_label_crop_centers( raise ValueError("No sampling location available.") if len(fg_indices) == 0 or len(bg_indices) == 0: + pos_ratio = 0 if len(fg_indices) == 0 else 1 warnings.warn( - f"N foreground {len(fg_indices)}, N background {len(bg_indices)}," - "unable to generate class balanced samples." + f"Num foregrounds {len(fg_indices)}, Num backgrounds {len(bg_indices)}, " + f"unable to generate class balanced samples, setting `pos_ratio` to {pos_ratio}." ) - pos_ratio = 0 if fg_indices.size == 0 else 1 for _ in range(num_samples): indices_to_use = fg_indices if rand_state.rand() < pos_ratio else bg_indices diff --git a/tests/test_generate_pos_neg_label_crop_centers.py b/tests/test_generate_pos_neg_label_crop_centers.py index 91db0e9d96..d1a208770f 100644 --- a/tests/test_generate_pos_neg_label_crop_centers.py +++ b/tests/test_generate_pos_neg_label_crop_centers.py @@ -31,7 +31,20 @@ list, 2, 3, - ] + ], + [ + { + "spatial_size": [2, 2, 2], + "num_samples": 2, + "pos_ratio": 0.0, + "label_spatial_shape": [3, 3, 3], + "fg_indices": [], + "bg_indices": [3, 12, 21], + }, + list, + 2, + 3, + ], ]