Distributed DCGAN
A deep convolutional GAN trained across multiple nodes to generate synthetic facial images, deployed as a scalable inference endpoint.
The Problem
Training generative adversarial networks on image data is slow and unstable on a single machine — GAN training already fights mode collapse and vanishing gradients, and doing it serially on one GPU makes iteration painfully slow.
Why I Built It
I wanted hands-on experience with distributed training systems rather than just distributed training theory — specifically how gradient synchronization, checkpointing, and deployment change once training is spread across multiple workers.
What I Built
Implemented the DCGAN architecture (convolutional generator/discriminator pair) in TensorFlow, wired it up to Horovod for multi-worker gradient synchronization via ring-allreduce, and ran training as a managed job on AWS SageMaker. Packaged the trained generator behind a SageMaker inference endpoint for on-demand image generation.
Technical Challenges
Keeping generator and discriminator loss balanced gets harder as you scale workers — batch statistics shift with distributed batch normalization, and naive scaling destabilizes adversarial training. Also had to handle checkpoint consistency across workers so a failed node didn't corrupt shared model state.