Skip to content

chamodyats/dcgan-mnist

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

DCGAN for MNIST Digit Generation

PyTorch implementation of Deep Convolutional GAN (DCGAN) trained on MNIST dataset to generate handwritten digits.

Results

Original Training (50 epochs)

  • Generator Loss: 3.0775
  • Discriminator Loss: 0.5094
  • Training Time: 17.3 minutes
  • D(fake) Accuracy: ~98%

Tuned Training (25 epochs)

  • Generator Loss: 1.8848
  • Discriminator Loss: 0.7077
  • Training Time: 8.6 minutes
  • D(fake) Accuracy: ~96%

Project Structure

dcgan_mnist_project/
├── README.md
├── requirements.txt
├── .gitignore
├── images/              # Original training generated samples
├── images_tuned/        # Tuned training generated samples
├── visualizations/      # Training curves and comparisons
├── checkpoints/         # Saved model weights (.pth files)
└── notebooks/           # Jupyter notebook implementation

Model Architecture

Generator:

  • Input: 100-dimensional noise vector
  • Output: 28×28 grayscale images
  • Architecture: Linear layer + transposed convolutions with batch normalization

Discriminator:

  • Input: 28×28 grayscale images
  • Output: Binary classification (real/fake probability)
  • Architecture: Convolutional layers with batch normalization and LeakyReLU

Key Findings

  1. Discriminator Dominance: Both training runs experienced discriminator dominance (D_fake > 95%)
  2. Hyperparameter Impact: Lowering discriminator learning rate from 0.0002 to 0.0001 improved loss values by 39%
  3. Visual Quality vs Metrics: Generated high-quality digits despite suboptimal loss metrics
  4. Training Efficiency: Tuned approach achieved comparable results in half the epochs (25 vs 50)

Requirements

torch>=2.0.0
torchvision>=0.15.0
matplotlib>=3.5.0
numpy>=1.21.0

Acknowledgments

Implementation based on DCGAN paper: Unsupervised Representation Learning with Deep Convolutional Generative Adversarial Networks (https://arxiv.org/abs/1511.06434)

About

DCGAN implementation for MNIST digit generation

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors