← all repositories
jonbruner/generative-adversarial-networks

GANs for people who'd rather read code than papers

A dead-simple TensorFlow implementation that trades bleeding-edge complexity for actual comprehension.

539 stars Jupyter Notebook LearningImage · Video · Audio
generative-adversarial-networks
Velocity · 7d
+0.2
★ / day
Trend
steady
star history

What it does

This repo holds three versions of the same basic GAN: a Jupyter notebook that mirrors an O’Reilly interactive tutorial, a plain Python script, and a slightly faster variant that pushes more work into the TensorFlow graph. All generate synthetic images by pitting a generator network against a discriminator in the classic adversarial setup.

The interesting bit

The project explicitly chooses simplicity over sophistication. The “fast” version is barely a refactoring—just more ops inside the graph—so the educational scaffolding stays visible. It’s a deliberate bet that understanding a working toy beats cargo-culting a state-of-the-art architecture you can’t debug.

Key highlights

  • Three formats for three attention spans: notebook, script, and slightly-optimized script
  • TensorBoard logging in the scripts (the notebook presumably shows plots inline)
  • Targets TensorFlow 1.0+ — vintage 2017, which tells you something about maintenance status
  • Companion tutorial runs on O’Reilly’s hosted environment if local setup feels tedious
  • Dependencies are minimal: TensorFlow, NumPy, Jupyter, matplotlib

Caveats

  • TensorFlow 1.x is effectively archaeological at this point; migrating to 2.x would require non-trivial work
  • The README doesn’t specify what the GAN actually generates (MNIST? CIFAR? faces?) — you’ll need to open the notebook to find out
  • No tests, no CI, no recent commits visible in the metadata

Verdict

Good for someone who encounters GANs as intimidating black boxes and wants to see the wiring exposed. Skip it if you need modern TensorFlow, production patterns, or anything beyond “hello world” with adversarial training.

heatdrop uses Google Analytics to see which pages get read — nothing else. Your call. How we handle data.