This project compares a conventional Gaussian variational autoencoder with a VAE whose latent space includes a circular coordinate. The circular coordinate is motivated by the periodic orientation factor in the dSprites dataset.
Both convolutional models operate on binary 64×64 dSprites images. The comparison trains them on the same data split and batch order, evaluates them at several training milestones, and produces numerical, reconstruction, PCA, and circular-latent comparisons.
programs/ models, dataset loader, training and Colab notebook
model_comparison/ metrics, explanatory guide and generated figures
The official dSprites data and Python environment are intentionally not stored in Git. The loader downloads and checksum-validates the dataset when requested. Model checkpoints are also excluded from normal Git history to keep the repository small.
cd programs
python3 -m venv .venv
source .venv/bin/activate
python -m pip install -r requirements.txt
python dsprites.py
python compare_models.pyThe comparison uses CUDA automatically when PyTorch detects a compatible GPU. It sequentially preloads the selected dSprites subset into RAM to avoid the official HDF5 archive's slow random-access layout.
For complete installation, training, runtime, output, visualization, and Google Colab instructions, see the program documentation. The ready-to-upload notebook is colab_compare.ipynb.
The checked-in results are under model_comparison. Start with its output guide, then inspect the metric curves and reconstruction/latent-space figures for each training milestone.
dSprites contains 737,280 procedurally generated images with independent ground-truth factors for color, shape, scale, orientation, and x/y position. Dataset source: https://github.com/google-deepmind/dsprites-dataset