File "/home/user/script.py", line 21, in <module>
print(f'{main(2)=}')
~~~~^^^
File "/home/user/script.py", line 17, in main
return torchmetrics.functional.segmentation.hausdorff_distance(a, b, num_classes=1)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^
File "/home/user/miniforge3/envs/general/lib/python3.13/site-packages/torchmetrics/functional/segmentation/hausdorff_distance.py", line 99, in hausdorff_distance
dist = edge_surface_distance(
preds=preds[b, c],
...<3 lines>...
symmetric=not directed,
)
File "/home/user/miniforge3/envs/general/lib/python3.13/site-packages/torchmetrics/functional/segmentation/utils.py", line 499, in edge_surface_distance
surface_distance(edges_preds, edges_target, distance_metric=distance_metric, spacing=spacing),
~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/user/miniforge3/envs/general/lib/python3.13/site-packages/torchmetrics/functional/segmentation/utils.py", line 469, in surface_distance
dis = distance_transform(~target, sampling=spacing, metric=distance_metric)
File "/home/user/miniforge3/envs/general/lib/python3.13/site-packages/torchmetrics/functional/segmentation/utils.py", line 351, in distance_transform
z[i1 * h + j1] = mindis
~^^^^^^^^^^^^^
IndexError: index 156 is out of bounds for dimension 0 with size 156
shell returned 1
🐛 Bug
For certain shapes of inputs the
torchmetrics.functional.segmentation.hausdorff_distance()throws an index error. It works e.g. well for 10x10 and 10x11 images, but not for 11x10 images.To Reproduce
Code sample
Error
Environment