From 7adf291ac21e6d9450c68bec8b1b40494a28fa0b Mon Sep 17 00:00:00 2001 From: Kheil-Z Date: Wed, 12 Nov 2025 12:16:46 +0100 Subject: [PATCH 1/3] docs: add differentiability warning for Warp with mode='nearest' --- monai/networks/blocks/warp.py | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/monai/networks/blocks/warp.py b/monai/networks/blocks/warp.py index 8a570e42c4..d48219dfc6 100644 --- a/monai/networks/blocks/warp.py +++ b/monai/networks/blocks/warp.py @@ -52,6 +52,13 @@ def __init__(self, mode=GridSampleMode.BILINEAR.value, padding_mode=GridSamplePa Define reference grid on non-integer values Reference: B. Likar and F. Pernus. A heirarchical approach to elastic registration based on mutual information. Image and Vision Computing, 19:33-44, 2001. + + Note that using mode= ``"nearest"`` makes the warping operation effectively non-differentiable: + gradients are zero almost everywhere, which can block gradient flow during training. + For learning-based registration, use "bilinear" (2D) or "trilinear" (3D) interpolation instead. + + See https://github.com/Project-MONAI/tutorials/blob/main/3d_registration/learn2reg_oasis_unpaired_brain_mr.ipynb + for examples of semi-supervised registration using segmentations. """ super().__init__() # resolves _interp_mode for different methods From 5f5936ea74a80aec7d49d1bdc977ef7b28ac6c4f Mon Sep 17 00:00:00 2001 From: Kheil-Z Date: Wed, 12 Nov 2025 13:31:08 +0100 Subject: [PATCH 2/3] Fix docstring formatting: backticks and spacing --- monai/networks/blocks/warp.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/monai/networks/blocks/warp.py b/monai/networks/blocks/warp.py index d48219dfc6..d10089c597 100644 --- a/monai/networks/blocks/warp.py +++ b/monai/networks/blocks/warp.py @@ -53,9 +53,9 @@ def __init__(self, mode=GridSampleMode.BILINEAR.value, padding_mode=GridSamplePa Reference: B. Likar and F. Pernus. A heirarchical approach to elastic registration based on mutual information. Image and Vision Computing, 19:33-44, 2001. - Note that using mode= ``"nearest"`` makes the warping operation effectively non-differentiable: + Note that using ``mode="nearest"`` makes the warping operation effectively non-differentiable: gradients are zero almost everywhere, which can block gradient flow during training. - For learning-based registration, use "bilinear" (2D) or "trilinear" (3D) interpolation instead. + For learning-based registration, use ``"bilinear"`` (2D) or ``"trilinear"`` (3D) interpolation instead. See https://github.com/Project-MONAI/tutorials/blob/main/3d_registration/learn2reg_oasis_unpaired_brain_mr.ipynb for examples of semi-supervised registration using segmentations. From 2eefa92fef5c2c7c088600c37dce93db5f74e4bb Mon Sep 17 00:00:00 2001 From: Kheil-Z Date: Wed, 12 Nov 2025 16:43:03 +0100 Subject: [PATCH 3/3] DCO Remediation Commit for Kheil-Z I, Kheil-Z , hereby add my Signed-off-by to this commit: 7adf291ac21e6d9450c68bec8b1b40494a28fa0b I, Kheil-Z , hereby add my Signed-off-by to this commit: 5f5936ea74a80aec7d49d1bdc977ef7b28ac6c4f Signed-off-by: Kheil-Z