Репозиторий содержит простую демонстрацию моделей диффузии шумоподавления на основе PyTorch. Он просто направлен на то, чтобы дать первое представление об этом подходе к генеративному моделированию.
Краткое теоретическое введение в стандартные DDPM можно найти здесь. DDIM для ускоренной выборки обсуждаются в сопутствующем блокноте. Два примера приложений создают небольшую площадку для экспериментов. Они подготовлены таким образом, что их можно легко модифицировать и расширять.
Введение в DDPM
Введение в DDIM
Пример швейцарского рулета
Безусловная модель на MNIST
Условная модель на MNIST
В качестве первого примера генеративный DDPM обучается на двумерном распределении швейцарского валика. Для этого можно вызвать основной сценарий обучения с помощью файла конфигурации, который позволяет настроить настройку задачи и определение модели:
python scripts/main.py fit --config config/swissroll.yaml
После завершения обучения окончательную модель можно протестировать и проанализировать в этом блокноте.
Для мониторинга эксперимента можно локально запустить сервер TensorBoard с помощью tensorboard --logdir run/swissroll/
. Доступ к нему можно получить по адресу localhost:6006 по умолчанию в вашем браузере. В качестве альтернативы можно использовать MLfLow для управления экспериментами. В этом случае можно запустить обучение с соответствующими настройками и настроить сервер отслеживания по mlflow server --backend-store-uri file:./run/mlruns/
. Затем к нему можно будет получить доступ по адресу localhost:5000.