This repository contains PyTorch implementations of three Generative Adversarial Networks (GAN) architectures:
- CycleGAN: Cycle-Consistent Adversarial Networks for unpaired image-to-image translation.
- WGAN: Wasserstein GAN for improved training stability and more interpretable loss metric.
- VanillaGAN: The original GAN architecture for generating data from random noise.
CycleGAN allows for image-to-image translation tasks where paired examples are not available. The key idea is to train two generator-discriminator pairs to perform mutual mappings between two domains.
Wasserstein GAN improves the training of GANs by using the Earth Mover's distance (Wasserstein distance) as a loss metric. This approach helps to address issues of mode collapse and provides more meaningful loss values.
The VanillaGAN is the original formulation of GANs, where a generator network learns to produce data resembling the training data, and a discriminator network learns to distinguish between real and generated data.
The datasets used for training these GANs can be found at the following links:
Rest are mentioned in the jupyter notebooks
Contributions are welcome! Please open an issue or submit a pull request for any improvements or bug fixes.
This project is licensed under the MIT License. See the LICENSE file for more details.
- The CycleGAN implementation is based on the original paper by Zhu et al..
- The WGAN implementation follows the guidelines from the Arjovsky et al. paper.
- The VanillaGAN implementation is based on the seminal work by Goodfellow et al..
For further information and questions, feel free to open an issue or contact the repository maintainers.