Skip to content

emilianodesu/auto-encoding-variational-bayes

Repository files navigation

Proyecto Final — Auto-Encoding Variational Bayes (VAE)

Implementación en PyTorch del paper Kingma & Welling (2013) entrenado sobre MNIST. Curso de Aprendizaje Profundo, Licenciatura en Ciencia de Datos (Junio 2026).

Setup del entorno

Requisitos previos

  • macOS con Apple Silicon (M1/M2/M3/M4) — el proyecto usa MPS backend de PyTorch
  • Homebrew instalado
  • Python 3.12 (instalable vía brew install python@3.12)

Crear entorno virtual

# Crear venv con Python 3.12
/opt/homebrew/bin/python3.12 -m venv .venv

# Activar el venv
source .venv/bin/activate

# Actualizar pip
pip install --upgrade pip

# Instalar dependencias pinned
pip install -r requirements.txt

# Registrar kernel de Jupyter
python -m ipykernel install --user --name vae-final-project --display-name "Python 3.12 (VAE Final Project)"

Verificar instalación

.venv/bin/python -c "
import torch
print(f'PyTorch: {torch.__version__}')
print(f'MPS available: {torch.backends.mps.is_available()}')
"

Debe imprimir MPS available: True.

Lanzar JupyterLab

.venv/bin/jupyter lab

Selecciona el kernel "Python 3.12 (VAE Final Project)" al abrir el notebook.

Estructura del proyecto

FinalProject/
├── .kiro/                  # Spec-driven development artifacts
│   ├── specs/
│   │   └── deep-learning-project/
│   │       ├── rough-idea.md
│   │       ├── idea-honing.md
│   │       ├── requirements.md
│   │       ├── design.md
│   │       ├── tasks.md
│   │       └── research/
│   ├── skills/SKILL.md
│   └── agents/dl-dev.json
├── .venv/                  # Entorno virtual (no versionado)
├── proyecto_final_vae.ipynb  # Notebook entregable (a crear)
├── requirements.txt
├── .gitignore
├── ProyectoFinal.pdf       # Instrucciones del proyecto
├── VAE_paper.pdf           # Paper original
└── README.md

Versiones clave

Paquete Versión
Python 3.12.13
PyTorch 2.12.0 (MPS)
torchvision 0.27.0
torchmetrics 1.9.0
numpy 2.4.6
scikit-learn 1.8.0
matplotlib 3.10.9
JupyterLab 4.5.7

Para versiones exactas de todas las dependencias, ver requirements.txt.

Plan de implementación

Ver .kiro/specs/deep-learning-project/tasks.md para el plan detallado de 38 tareas organizadas en 32 waves de ejecución.

Referencias

  • Paper original: Kingma, D. P., & Welling, M. (2013). Auto-Encoding Variational Bayes. arXiv:1312.6114.
  • Implementaciones de referencia: TensorFlow CVAE Tutorial, Heidenreich (2024).

About

VAE en PyTorch reproduciendo el paper Auto-Encoding Variational Bayes (Kingma & Welling, 2013) sobre MNIST. Incluye dos arquitecturas (MLP fiel al paper + CNN como mejora), KL annealing, FID via torchmetrics, reproducibilidad bit-exact en MPS.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors