In this chapter, we also learned how to implement our first GAN. We covered some basic theory related to the GAN framework and how it relates to architecture design, especially focusing on the similar capacity of the Discriminator and Generator. We also covered, in detail, the theory behind upsampling layers, weight normalizations, and loss functions seen in GANs.
We learned how to implement the DCGAN Discriminator and Generator architecture, including their optimizers and loss functions. We learned how to implement the training procedure in GANs, wherein the Discriminator and Generator take turns at optimizing their parameters. Finally, we learned how to sample the Generator to get image outputs, and how to visualize those outputs for our amusement and to train the models.
In the next chapter, you will learn how to evaluate your first GAN.