
A quick briefing of the content of the course and its requirements
Discover what GANs are, their training process, and common challenges. See GANs generate realistic faces, perform style and pose transfers, image-to-image translation, super resolution, and text-to-image synthesis.
Explore how generative adversarial networks train a generator to produce realistic images while a discriminator learns to distinguish real from fake, in a two-player minimax game.
Explore how DCGANs theory pairs a generator and discriminator in deep convolutional networks to transform random noise into images that resemble real ones.
Walks through a DCGAN code cell by cell, detailing imports, data preparation, transforms, and weight initialization for the generator and discriminator.
Explore building and wiring a DCGAN generator and discriminator with 100-dim noise, 64x64 color outputs, and transpose convolutions, batch normalization, and binary cross-entropy training.
update the discriminator and generator in a DCGAN training loop, track image outputs and losses, and visualize progress through plots and saved generated images.
Build a deep convolutional generative network to generate images of cat faces. Mitigate vanishing gradients with regularization techniques such as dropout in the discriminator to keep generator and discriminator learning.
Learn how least square GANs improve stability and efficiency by replacing the binary cross-entropy loss with the mean square loss, removing the sigmoid, and avoiding vanishing gradients.
Code a conditional gan by building a generator and discriminator that integrate labels via concatenation with images, train with label-conditioned loss, and save generated outputs for visualization.
CoGANs theory explores training two generators and two discriminators that share weights to solve the same image generation task more efficiently, reducing memory usage and resources.
Learn how CoGANs pair two generators and two discriminators with shared weights to produce two outputs, reducing resource use while improving image quality.
Explain srgan theory, detailing how a generator converts low-resolution images to high-resolution outputs, a discriminator scores realism, and loss terms like reconstruction (mean squared error) and adversarial loss guide training.
Implement srgans for super resolution with paired high and low resolution datasets, a generator and discriminator trained via Adam optimization, with data loader setup and periodic image saving.
Explore CycleGANs theory for unpaired image-to-image translation, featuring two generators translating between domains X and Y, a discriminator, and cycle consistency with L1 loss.
Explore CycleGAN code fundamentals, including generator and discriminator setup, image buffers, losses, optimizers, and training dynamics for translating paintings to images and back.
Explore other GAN types, including progressive growing GANs that stabilize training by increasing resolution, BigGAN with self-attention and spectrum normalization, and style-based GANs for controllable image generation and style transfer.
This course is a comprehensive guide to Generative Adversarial Networks (GANs). The theories are explained in depth and in a friendly manner. After each theoretical lesson, we will dive together into a hands-on session, where we will be learning how to code different types of GANs in PyTorch, which is a very advanced and powerful deep learning framework!
The following topics will be included:
DCGANs
LSGANs
CGANs
CoGANs
SRGANs
CycleGANs
other types of GANs
Each type will include a theoretical and practical session.