Le référentiel contient une démonstration simple basée sur PyTorch de modèles de diffusion de débruitage. Il vise simplement à fournir une première compréhension de cette approche de modélisation générative.
Une brève introduction théorique aux DDPM standards peut être trouvée ici. Les DDIM pour l’échantillonnage accéléré sont abordés dans le cahier complémentaire. Deux exemples d'applications établissent un petit terrain de jeu d'expérimentation. Ils sont préparés de manière à pouvoir être facilement modifiés et étendus.
Introduction aux DDPM
Introduction aux DDIM
Exemple de rouleau suisse
Modèle inconditionnel sur MNIST
Modèle conditionnel sur MNIST
A titre de premier exemple, un DDPM génératif est formé sur une distribution de rouleaux suisses 2D. Le script de formation principal peut être appelé à cette fin avec un fichier de configuration qui permet d'ajuster la configuration du problème et la définition du modèle :
python scripts/main.py fit --config config/swissroll.yaml
Une fois la formation terminée, le modèle final peut être testé et analysé dans ce cahier.
Pour surveiller l'expérience, on peut exécuter localement un serveur TensorBoard par tensorboard --logdir run/swissroll/
. Il est accessible sous localhost:6006 par défaut dans votre navigateur. Comme alternative, on peut utiliser MLfLow pour gérer les expériences. Dans ce cas, on peut lancer la formation avec les paramètres appropriés et mettre en place un serveur de suivi par mlflow server --backend-store-uri file:./run/mlruns/
. Il est ensuite accessible sous localhost:5000.