Hi everyone,
Hope you are safe and well.
I am trying to get the inverse of a Conv3d operation by using the ConvTranspose3d.
My input has the size of [128,128,12,16,12] and I want to get an output of size [128,256, 24,32,24].
I successfully done it using torch.nn.ConvTranspose3d(128, 256, 3, 2, padding=1, output_padding=1), but I do not really understand how padding and output_padding really work.
I read the second note in the documentation of ConvTranspose3d but still can’t manage to get a grip of the influence they have on each other.
What I have tried to get the right size is:
x = torch.randn(128, 128, 12, 16, 12)
print(x.shape)
c1 = torch.nn.ConvTranspose3d(128, 256, 3, 2)
print(c1(x).shape)
c1 = torch.nn.ConvTranspose3d(128, 256, 3, 2, padding=1)
print(c1(x).shape)
c1 = torch.nn.ConvTranspose3d(128, 256, 3, 2, padding=1, output_padding=1)
print(c1(x).shape)

Can you please explain to me how they really work?
Thank you and stay safe!