I was interested in a similar question: what dimensions should be transposed when sharing weights for deconvolution ? is transposing filters redundant ?
I experienced with non symmetric filters:
self.encoder = nn.Sequential(nn.Conv2d(1, 64, (4, 2), 2, 1))
self.decoder = nn.Sequential(nn.ConvTranspose2d(64, 1, (2, 4), 2, 1))

does NOT work. The correct decoder is as follows:
self.decoder = nn.Sequential(nn.ConvTranspose2d(64, 1, (4, 2), 2, 1))

Therefore I think weight=self.conv1.weight.transpose(0,1) should do the job for transposed convolution