The Discriminator of CycleGan outputs not just a single value to say that the image is real or fake.... But It outputs a grid of numbers (like 8X8 or 7x7), where each number says whether one patch of the input image is fake or real.

So, my question is that, why do we do this.. What benefits does it gives us, and what was the problem in the approach where we only outputted a single value?


1 Answer 1


This is explained in the original CycleGAN paper:

For the discriminator networks we use 70 × 70 PatchGANs, which aim to classify whether 70 × 70 overlapping image patches are real or fake. Such a patch-level discriminator architecture has fewer parameters than a full-image discriminator and can work on arbitrarily sized images in a fully convolutional fashion.

Therefore, the arguments for using patch-based discriminators are that:

  • It has fewer parameters.
  • It enables using them in arbitrarily sized images.
  • $\begingroup$ How does this discriminator enables using arbitrarily size images because as far as i know if we change the shape of the input image, we would get an error $\endgroup$
    – user113403
    Commented Mar 22, 2021 at 3:05
  • $\begingroup$ When you evaluate if images are real or fake based on patches, you apply the same patch discriminator throughout the image. This means that you can apply the discriminator in larger images by just applying it more times to the extra area. In the paper the authors use them for 128x128 and 256x256 images. $\endgroup$
    – noe
    Commented Mar 22, 2021 at 7:59
  • $\begingroup$ Please, consider marking the answer as correct if deemed so. $\endgroup$
    – noe
    Commented May 3, 2021 at 23:14

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.