← all repositories
ikostrikov/TensorFlow-VAE-GAN-DRAW

Three generative models, one TensorFlow garage

A single repo that lets you train DCGAN, VAE, or DRAW without wrestling three different codebases.

592 stars Python Image · Video · Audio
TensorFlow-VAE-GAN-DRAW
Velocity · 7d
+0.2
★ / day
Trend
steady
star history

What it does

This is a unified TensorFlow implementation of three landmark generative models from the mid-2010s: DCGAN for adversarial image generation, a deep convolutional VAE for learned compression and sampling, and DRAW, which uses recurrent networks with attention to iteratively sketch images. One main.py switches between VAE and GAN; a separate main-draw.py handles the recurrent model.

The interesting bit

The value here is consolidation, not novelty. These papers originally came with their own disparate codebases, training loops, and TensorFlow idioms. Stashing all three in one repo with shared conventions saves you from archaeology.

Key highlights

  • DCGAN reportedly produces “decent results after 10 epochs” with default settings
  • VAE and GAN share a single entry point (main.py) with a --model flag
  • DRAW implementation includes the attention mechanism (though the README notes plans to swap in Spatial Transformer Layers)
  • Straightforward CLI: just point --working_directory at a temp directory and go
  • TODO list is honest about what’s missing: no Adversarial Autoencoder yet, and attention is still the original paper’s version

Caveats

  • The README is sparse: no sample outputs, no dataset requirements, no dependency list beyond “TensorFlow”
  • DRAW runs separately, so “unified” only goes so far
  • “More complex data” is explicitly listed as unfinished business

Verdict

Grab this if you’re teaching or comparing these three methods and want one consistent codebase to hack on. Skip it if you need production pipelines, modern PyTorch, or anything beyond proof-of-concept image generation.

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