-
Notifications
You must be signed in to change notification settings - Fork 6.3k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Random noise z augmentation with cGAN #152
Comments
The current model does not take |
@junyanz Could you please explain how did you find z get ignored in detail? What did the result show? |
We tried a few ways of adding z to the nets, e.g., adding z to a latent state, concatenating with a latent state, applying dropout, etc. The output tended not to vary much as a function of z. You can see the effect of random dropout here: https://affinelayer.com/pixsrv/ Click the "pix2pix" button multiple times to see different random samples. In this implementation, the only noise is dropout (as in the pix2pix paper). Some minor details vary from click to click but overall not much changes. Conditional GANs don't really need noise as long as the input you are conditioning on is sufficiently complex, so that it can kind of play the role of noise. Without noise, the mapping is deterministic, but that's often fine. Here's a follow up paper that shows one way of getting z to actually have a substantial effect: https://junyanz.github.io/BicycleGAN/ |
@phillipi |
|
Thank you so much for the kind reply! |
@phillipi excuse me I have one question regarding this issue: Based on your statement: "Without noise, the mapping is deterministic, but that's often fine.", what I understood is that the prior Z is only useful if we need to to have some sort of variety in the generated samples. However, if we need to just learn direct mapping between two paired domains (e.g. image and its semantic label map), then it is sufficient to ignore Z ... is this correct ? If this intuition is true, why isn't it sufficient for the CycleGAN and you enforced the cycle consistency for the generated signals ? Many thanks in advance |
@ahmed-fau Yeah you only need z if you want the translation function to output multiple possibilities for each input. I'm not sure I understand the question about CycleGAN. In CycleGAN, we don't use z. |
@phillipi I mean that the idea of CycleGAN is more or less similar to image-to-image translation except that in CycleGAN the mapping is bidirectional ... so if we are interested in only unidirectional mapping then both are similar (according to my understanding). Is there any difference between them in terms of latent space mapping ? |
Hi, thanks for the sharing but about the deterministic mapping, I have a doubt: And if pix2pix without dropout outperforms a U-Net based Autoencoder, can we think in this way: pix2pix without dropout is better because of the powerful discriminator loss. Is my understanding correct? Thanks a lot! |
Yeah the dropout doesn't really matter much for performance. It has a very minor effect. One could argue about whether or not deterministic mappings count as "generative models". It's true that it does not model a distribution of outputs, instead it just gives a single guess.
Yep, I think that's a good way to think about it. |
Thanks for sharing this great work.
Conditional GANs (cGANs) learn a mapping from observed image
x
and random noise vectorz to y: y = f(x, z)
. I am wondering howz
is augmented on the inputx
for the generator. In the code,x
is passed to the generator's forward method as:self.fake_B = self.netG(self.real_A)
and in the forward method there is noz
The text was updated successfully, but these errors were encountered: