El repositorio contiene una demostración sencilla basada en PyTorch de modelos de difusión de eliminación de ruido. Su único objetivo es proporcionar una primera comprensión de este enfoque de modelado generativo.
Puede encontrar una breve introducción teórica a los DDPM estándar aquí. Los DDIM para muestreo acelerado se analizan en el cuaderno complementario. Dos aplicaciones de ejemplo establecen un pequeño campo de experimentación. Están preparados de tal manera que puedan modificarse y ampliarse fácilmente.
Introducción a los DDPM
Introducción a los DDIM
Ejemplo de rollo suizo
Modelo incondicional en MNIST
Modelo condicional en MNIST
Como primer ejemplo, se entrena un DDPM generativo en una distribución de rollo suizo 2D. El script de entrenamiento principal se puede llamar para ese fin con un archivo de configuración que permite ajustar la configuración del problema y la definición del modelo:
python scripts/main.py fit --config config/swissroll.yaml
Una vez finalizada la formación, el modelo final se puede probar y analizar en este cuaderno.
Para monitorear el experimento, se puede ejecutar localmente un servidor TensorBoard mediante tensorboard --logdir run/swissroll/
. Se puede acceder a él en localhost:6006 de forma predeterminada en su navegador. Como alternativa, se puede utilizar MLfLow para gestionar experimentos. En este caso, se puede iniciar la capacitación con la configuración adecuada y configurar un servidor de seguimiento mediante mlflow server --backend-store-uri file:./run/mlruns/
. Luego se puede acceder a él en localhost:5000.