Бумага | Проект
Это неофициальная реализация палитры: диффузионные модели с изображением от Pytorch , и в основном она наследуется от версии в супер разрешении изображения-резолюция-виа-утечка. Шаблон кода взят из моего другого начального проекта: распределенный пирог-типремат.
Есть некоторые детали реализации с описаниями бумаги:
Guided-Diffusion , что дает существенный импульс для качества выборки.DDPM .Palette и встройте его с аффинной трансформацией.Palette . Я пытаюсь закончить следовать задачам в порядке:
Последующий эксперимент неопределен из-за отсутствия времени и ресурсов графического процессора:
Модель DDPM требует значительных вычислительных ресурсов, и мы создали только несколько примеров моделей для проверки идей в этой статье.
Результаты с 200 эпохами и итерациями 930 тысяч, и первые 100 образцов в центрирующей маске и нерегулярной маске.
![]() | ![]() |
|---|
Результаты с 16 эпохами и итерациями 660 тысяч, и несколькими выбранными образцами в центрирующей маске.
![]() | ![]() | ![]() | ![]() |
|---|---|---|---|
![]() | ![]() | ![]() | ![]() |
Результаты с 8 эпохами и итерациями 330 тысяч, и несколькими выбранными образцами в непредвиденных.
![]() | ![]() |
|---|
| Задачи | Набор данных | Эма | Фид (-) | IS (+) |
|---|---|---|---|---|
| Внедрение с центрирующей маской | Celeba-HQ | ЛОЖЬ | 5.7873 | 3.0705 |
| Внедрение с нерегулярной маской | Celeba-HQ | ЛОЖЬ | 5.4026 | 3.1221 |
pip install - r requirements . txt| Набор данных | Задача | Итерации | Графические процессоры × дней × bs | URL |
|---|---|---|---|---|
| Celeba-HQ | Внедрение | 930K | 2 × 5 × 3 | Google Drive |
| Места2 | Внедрение | 660K | 4 × 8 × 10 | Google Drive |
BS указывает размер выборки на GPU.
Мы получаем большинство из них от Kaggle, что может немного отличаться от официальной версии, и вы также можете загрузить их с официального сайта.
Мы используем разделение по умолчанию этих наборов данных для обучения и оценки. Списки файлов, которые мы используем, можно найти в Celeba-HQ, Place2.
После того, как вы подготовили свои данные, вам необходимо изменить соответствующий файл Configure, чтобы указывать на ваши данные. Возьмите следующее в качестве примера:
" which_dataset " : { // import designated dataset using arguments
" name " : ["data.dataset", "InpaintDataset"], // import Dataset() class
" args " :{ // arguments to initialize dataset
" data_root " : " your data path " ,
" data_len " : -1,
" mask_mode " : " hybrid "
}
}, Дополнительные варианты DataLoader и разделения валидации также можно найти в datasets в части настройки файла.
resume_state файла настройки в каталог предыдущей контрольной точки. Возьмите следующее в качестве примера, этот каталог содержит учебные состояния и сохраненную модель: " path " : { //set every part file path
" resume_state " : "experiments/inpainting_celebahq_220426_150122/checkpoint/100"
},load_everything of model.py , по умолчанию - это сеть . Следуйте настройкам учебника, оптимизаторы и модели будут загружены из 100.State и 100_network.pth соответственно. netG_label = self . netG . __class__ . __name__
self . load_network ( network = self . netG , network_label = netG_label , strict = False ) python run . py - p train - c config / inpainting_celebahq . json Мы проверяем магистраль U-NET, используемую в SR3 и Guided Diffusion , и Guided Diffusion которая имеет более надежную производительность в наших текущих экспериментах. Можно найти больше вариантов выбора в отношении основных целей , потери и метрики, в which_networks часть файла настройки.
python run . py - p test - c config / inpainting_celebahq . jsonСоздайте две папки, сохраняющие изображения истины и примеры образцов, и их имена файлов должны соответствовать друг другу.
Запустите сценарий:
python eval . py - s [ ground image path ] - d [ sample image path ]Наша работа основана на следующих теоретических работах:
И мы получаем большую пользу от следующих проектов: