Implementación en PyTorch del paper Kingma & Welling (2013) entrenado sobre MNIST. Curso de Aprendizaje Profundo, Licenciatura en Ciencia de Datos (Junio 2026).
- 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 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)".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.
.venv/bin/jupyter labSelecciona el kernel "Python 3.12 (VAE Final Project)" al abrir el notebook.
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
| 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.
Ver .kiro/specs/deep-learning-project/tasks.md para el plan detallado de 38 tareas organizadas en 32 waves de ejecución.
- Paper original: Kingma, D. P., & Welling, M. (2013). Auto-Encoding Variational Bayes. arXiv:1312.6114.
- Implementaciones de referencia: TensorFlow CVAE Tutorial, Heidenreich (2024).