GANs from scratch, one notebook at a time
The official code companion to Manning's "GANs in Action" book, walking through every major architecture from vanilla GAN to CycleGAN.

What it does This repo is the hands-on companion to Jakub Langr and Vladimir Bok’s Manning book. Each chapter is a self-contained Jupyter notebook implementing a specific GAN variant — vanilla GAN, DCGAN, Progressive GAN, Semi-Supervised GAN, Conditional GAN, and CycleGAN — using Keras on TensorFlow 1.8+. You clone, open a notebook, and run cells sequentially to reproduce the book’s examples.
The interesting bit The README doesn’t just dump code; it maps every implementation to its canonical research paper with authors, year, and claimed contribution. That’s unusual diligence for a companion repo — it doubles as a curated reading list for anyone trying to trace how we got from Goodfellow 2014 to unpaired image translation.
Key highlights
- Chapter-by-chapter notebooks: autoencoders through CycleGAN (MNIST, CelebA, Horse2Zebra datasets)
- Explicit paper trail for each architecture with arXiv links
- Best practices section with concrete tips: normalize to [-1, 1], use LeakyReLU in discriminator, avoid FC layers in deep architectures
- Curated external resources: courses, video lectures, evaluation metrics (IS, FID), and community links
- MIT licensed
Caveats
- Stuck on TensorFlow 1.8+ and Keras 2.1.6 — ancient by deep learning standards; expect dependency friction on modern environments
- No chapter 5 implementation folder listed in the repo structure, despite a chapter description existing in the text
- GPU recommended but not required; 8GB+ RAM minimum
Verdict Grab this if you’re working through the book or want a structured, paper-linked tour of classic GAN architectures. Skip it if you need production PyTorch/TF2 code or state-of-the-art results; this is pedagogy, not a model zoo.