Deconvolution (ConvTranspose2D) can result in some unwanted artefacts in the final images.

  
      
      Distill
  
  
    

Deconvolution and Checkerboard Artifacts 6

When we look very closely at images generated by neural networks, we often see a strange checkerboard pattern of artifacts.


  
  
    
    
  
  


Most state of the art image generation networks (see stylegan or progan) have dedicated upscaling followed by non-resizing convolution (stride-1) layers.
image875×500 58 KB
https://towardsdatascience.com/progan-how-nvidia-generated-images-of-unprecedented-quality-51c98ec2cbd2 3
I would suggest something like this (say we want to double the image resolution):
nn.Upsample(scale_factor=2, mode="nearest" )
nn.Conv2d( in_channels=C_in, out_channels=C_out, kernel_size=3, stride=1, padding=1 )