From 0a097c00a66759ac2f7fffeda3fe4904b727ec26 Mon Sep 17 00:00:00 2001 From: Atharva Joshi Date: Wed, 8 Apr 2026 21:37:24 -0400 Subject: [PATCH] Fix make_gaussian_kernel truncated parameter (#8780) The truncated parameter was set to kernel_size // 2, but gaussian_1d interprets it as the number of standard deviations. With kernel_size=15 and sigma=5.0, this produced tail=35 (a 71-element kernel), which when sliced to kernel_size gave near-zero values. Fix: compute truncated as (kernel_size // 2) / sigma so that the resulting tail equals kernel_size // 2, producing a correctly-sized kernel with meaningful values. --- monai/losses/image_dissimilarity.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/monai/losses/image_dissimilarity.py b/monai/losses/image_dissimilarity.py index 29cce74926..01fb513cc7 100644 --- a/monai/losses/image_dissimilarity.py +++ b/monai/losses/image_dissimilarity.py @@ -35,7 +35,9 @@ def make_triangular_kernel(kernel_size: int) -> torch.Tensor: def make_gaussian_kernel(kernel_size: int) -> torch.Tensor: sigma = torch.tensor(kernel_size / 3.0) - kernel = gaussian_1d(sigma=sigma, truncated=kernel_size // 2, approx="sampled", normalize=False) * ( + # truncated is the number of std devs; set so that tail = kernel_size // 2 + truncated = (kernel_size // 2) / float(sigma) + kernel = gaussian_1d(sigma=sigma, truncated=truncated, approx="sampled", normalize=False) * ( 2.5066282 * sigma ) return kernel[:kernel_size]