Hi Adam!
In general, if you are building a “conventional” convolutional network
(whatever that means), you should use Conv2d
.
The noteworthy use case for ConvTranspose2d
that I am familiar with
(I’m sure that there are others.) is in the U-Net architecture, where it is
used as an “upsampling” or “dilation” operation.
I believe that the "up-conv 2x2"operations in the original U-Net paper
can be exactly implemented as:
ConvTranspose2d (in_channels, out_channels, kernel_size = 2, stride = 2)
Best.
K. Frank