The documentation for the nn mentions it does a cross-correlation, however, my results indicate it does a convolution operator.

import torch
import torch.nn.functional as F
im = torch.Tensor([[0,1],[2,3]]).unsqueeze(0).unsqueeze(0)
kernel = torch.Tensor([[0,1,2],[3,4,5], [6,7,8]]).unsqueeze(0).unsqueeze(0)
op = F.conv_transpose2d(im, kernel, stride=2)
print(op)

It outputs :

tensor([[[[ 0.,  0.,  0.,  1.,  2.],
[ 0.,  0.,  3.,  4.,  5.],
[ 0.,  2., 10., 10., 14.],
[ 6.,  8., 19., 12., 15.],
[12., 14., 34., 21., 24.]]]])

which would be the result if there was a convolution, I had expected the correlation result to be:

tensor([[[[ 0.,  0.,  8.,  7.,  6.],
[ 0.,  0.,  5.,  4.,  3.],
[16., 14., 38., 22., 18.],
[10.,  8., 21., 12.,  9.],
[ 4.,  2.,  6.,  3.,  0.]]]])

Did I misunderstand something or is it a bug?