I am getting inconsistent results when I tried doing the convolution operation using F.conv2d()

Lets say `h**2`

is the input and w>=0 is the filter kernel. Now, `F.conv2d(h**2,w,padding=1)`

and `F.conv2d(h**2,w)`

should give only non-negative results. However, to my surprise, the former does give negative numbers in the output for some w>=0. Mathematically padding should not affect the sign change