Answers.Body: <p>Use of Transposed Convolution can lead to checkerboard artifacts.  So we prefer to up-sample and then apply convolution. You can check this article for more information <a href="https://distill.pub/2016/deconv-checkerboard/" rel="nofollow noreferrer">https://distill.pub/2016/deconv-checkerboard/</a>.</p>
  
Answers.ContentLicense: CC BY-SA 4.0
Answers.CreationDate: 2023-02-18T03:50:18.370Z
Answers.Text: Seems to me that the checkerboard patterns only occur when we apply a stride in normal convolution, whereas that shouldn't be a problem with transposed convolution, since the interspersed input is fully convoluted so each pixel is visited the same amount of times (except border pixels). See also this handy GIF reference https://github.com/vdumoulin/conv_arithmetic/blob/master/README.md
Answers.UserDisplayName: Tim Kuipers
Answers.ContentLicense: CC BY-SA 4.0
Answers.CreationDate: 2020-10-04T16:39:51.847Z
Answers.LastActivityDate: 2020-10-04T16:39:51.847Z
Answers.UserDisplayName: Giannis Kousis
Body: <p>I was working recently on Progressive Growing of <a href="https://en.wikipedia.org/wiki/Generative_adversarial_network" rel="nofollow noreferrer">GANs</a> (aka PGGANs). I have implemented the whole architecture, but the problem that was ticking my mind is that in simple GANs, like DCGAN, PIX2PIX, we actually use Transposed Convolution for up-sampling and Convolution for Down-sampling, but in PGGANs in which we gradually add layers to both generator and discriminator so that we can first start with 4x4 image and then increase to 1024x01024 step by step. </p>
  
  <p>I did not understand that once we Increase 1x1x512 dimensional latent vector size to 4x4x512 sort of image we use convolution with high padding, and then once training for 4x4 images, we take still take 512 latent vector and then use the previously trained convolutional layers to convert it to 4x4x512 image, and then we up-sample then given image to 8x8 using nearest neighbor filtering and then again apply convolution and so-on. </p>
  
  <ul>
  <li>My question is that why we need to explicitly up-sample and then apply convolution, when instead we could just use Transposed Convolution which can upsample it automatically and is trainable? Why do we not use it like in other GANs? </li>
  </ul>
  
  <p>Here is the image of architecture:</p>
  
  <p><a href="https://i.sstatic.net/udNPA.png" rel="nofollow noreferrer"><img src="https://i.sstatic.net/udNPA.png" alt="PGGANs architecture"></a></p>
  
  <p>Please explain me the intuition behind this.
  Thanks</p>
  
Tags: <neural-networks><machine-learning><statistical-ai><generative-model><generative-adversarial-networks>
Title: Why do we need Upsampling and Downsampling in Progressive Growing of Gans
UserDisplayName: Muhammad Rafique
ThreadText: # Why do we need Upsampling and Downsampling in Progressive Growing of Gans
  
  (Asked by: username_0 on 2018-08-16)
  
  I was working recently on Progressive Growing of [GANs](https://en.wikipedia.org/wiki/Generative_adversarial_network) (aka PGGANs). I have implemented the whole architecture, but the problem that was ticking my mind is that in simple GANs, like DCGAN, PIX2PIX, we actually use Transposed Convolution for up-sampling and Convolution for Down-sampling, but in PGGANs in which we gradually add layers to both generator and discriminator so that we can first start with 4x4 image and then increase to 1024x01024 step by step.
  
  I did not understand that once we Increase 1x1x512 dimensional latent vector size to 4x4x512 sort of image we use convolution with high padding, and then once training for 4x4 images, we take still take 512 latent vector and then use the previously trained convolutional layers to convert it to 4x4x512 image, and then we up-sample then given image to 8x8 using nearest neighbor filtering and then again apply convolution and so-on.
  
  * My question is that why we need to explicitly up-sample and then apply convolution, when instead we could just use Transposed Convolution which can upsample it automatically and is trainable? Why do we not use it like in other GANs?
  
  Here is the image of architecture:
  
  [![PGGANs architecture](https://i.sstatic.net/udNPA.png)](https://i.sstatic.net/udNPA.png)
  
  Please explain me the intuition behind this.
  Thanks
  
  **Tags:** neural-networks, machine-learning, statistical-ai, generative-model, generative-adversarial-networks
  
  
  ---
  
  ## 1 answers
  
  ### Answer by username_1 on 2020-10-04. Score: 3
  
  Use of Transposed Convolution can lead to checkerboard artifacts. So we prefer to up-sample and then apply convolution. You can check this article for more information <https://distill.pub/2016/deconv-checkerboard/>.
  
  > **Comments:**
  > **username_2**: Seems to me that the checkerboard patterns only occur when we apply a stride in normal convolution, whereas that shouldn't be a problem with transposed convolution, since the interspersed input is fully convoluted so each pixel is visited the same amount of times (except border pixels). See also this handy GIF reference https://github.com/vdumoulin/conv_arithmetic/blob/master/README.md  
  
  ---
  
  