Hi,
If you want to get stable results, I am afraid that you should use nn.ConvTranspose2d instead of interpolate. I agree the view you mentioned that the transposed convolution makes the information lose.
I evaluated that the transposed convolution loses the more information as the bigger upsampling rate used (caused by its implemented mechanism). For counterworking lose information, you could add some addtion block to refine the output from convtransposed convlution.
But it is more expensive compared to the parameter-free operation interpolate.