I have the same problem for a similar use case where I want to convert a feature map with size [2, 64, 128, 400] to [2, 3, 512, 1600]. Using the following code, I get an output shape of [2, 3, 511, 1599]:
img_decoder_block = nn.Sequential(nn.ConvTranspose2d(
        img_feats.size(1),
        int(img_feats.size(1) // 2),
        3,
        stride=2,
        padding=1,
        bias=False),
        nn.ConvTranspose2d(
        int(img_feats.size(1) // 2),
        3,
        3,
        stride=2,
        bias=False),
        nn.BatchNorm2d(3, eps=1e-3, momentum=0.01),
        nn.ReLU(inplace=True),
        nn.Tanh(),
    ).cuda()
decoded_img = img_decoder_block(img_feats).cuda()