diff options
| author | gdamms <damguillotin@gmail.com> | 2026-02-05 15:33:20 +0100 |
|---|---|---|
| committer | gdamms <damguillotin@gmail.com> | 2026-02-05 15:33:20 +0100 |
| commit | a5d5f30fbd9c6c7c78834072401932c84bddaf14 (patch) | |
| tree | 577119fc2a538e0f8930cbe2c87ad80a5afe275d /README.md | |
| parent | 1efaa6cb2ef38cf5a77c3bb83fb7c62264ed466d (diff) | |
| download | diffusion-mnist-a5d5f30fbd9c6c7c78834072401932c84bddaf14.tar.gz diffusion-mnist-a5d5f30fbd9c6c7c78834072401932c84bddaf14.zip | |
trying to improve whole project
Diffstat (limited to 'README.md')
| -rw-r--r-- | README.md | 81 |
1 files changed, 79 insertions, 2 deletions
@@ -1,2 +1,79 @@ -# diffusion-mnist -Diffusion inspired mnist like image generation. +# MNIST Diffusion Model + +A diffusion-based generative model for MNIST digits implemented in PyTorch. + +## Project Structure + +``` +diffusion-mnist/ +├── main.py # Main entry point with CLI +├── models/ # Neural network architectures +│ ├── __init__.py +│ ├── unet.py # UNet for diffusion model +│ └── autoencoder.py # Autoencoder for latent diffusion +├── src/ # Source code modules +│ ├── __init__.py +│ ├── config.py # Configuration and hyperparameters +│ ├── diffusion.py # Diffusion process utilities +│ ├── dataloader.py # Dataset and dataloader classes +│ ├── utils.py # Helper functions and metrics +│ ├── train_diffusion.py # Diffusion training script +│ ├── train_autoencoder.py # Autoencoder training script +│ └── sample.py # Sampling and visualization +├── checkpoints/ # Model checkpoints +├── plots/ # Generated visualizations +├── data/ # Dataset directory +└── runs/ # TensorBoard logs +``` + +## Installation + +```bash +pip install -r requirements.txt +``` + +## Usage + +### Train Diffusion Model +```bash +python main.py train --epochs 10 --lr 2e-4 --batch-size 64 +``` + +### Train with Self-Attention +```bash +python main.py train --epochs 10 --attention +``` + +### Train Autoencoder (for latent diffusion) +```bash +python main.py train-ae --epochs 10 +``` + +### Generate Samples +```bash +python main.py sample --checkpoint checkpoints/diffusion_latest.pt +``` + +### Visualize Diffusion Process +```bash +python main.py visualize --all +``` + +## Configuration + +All hyperparameters can be found in `src/config.py`: +- `DIFFU_STEPS`: Number of diffusion steps (default: 1000) +- `EPOCHS`: Training epochs (default: 10) +- `BATCH_SIZE`: Batch size (default: 64) +- `LEARNING_RATE`: Learning rate (default: 2e-4) + +## Model Architecture + +The diffusion model uses a UNet architecture with: +- Timestep embedding +- Label conditioning (for class-conditional generation) +- Optional self-attention layers + +## License + +See [LICENSE](LICENSE) for details. |
