Different results of nearest interpolation

I am doing image segmentation using pytorch. I found that, for nearest interpolation, the result of nn.functional.interpolate is different from scipy.ndimage.zoom.

My prediction is p. And the ground truth is gt. Then p is interpolated to the same size as gt. I use nn.functional.interpolate and scipy.ndimage.zoom, respectively. Then I calculate dice or IoU. The results are different. And zoom gave me a better performance. But they are both nearest interpolation. Why?