ОБНОВЛЕНИЕ 22/12/2021: Добавлена поддержка версии Pytorch Lightning 1.5.6 и очистила код.
Коллекция вариационных автоэнкододеров (VAE), реализованного в Pytorch, с акцентом на воспроизводимость. Цель этого проекта - предоставить быстрый и простой рабочий пример для многих моделей Cool Vae. Все модели обучены набору данных Celeba для последовательности и сравнения. Архитектура всех моделей сохраняется как можно более сходной с одинаковыми слоями, за исключением случаев, когда оригинальная статья требует радикально различной архитектуры (например, VQ Vaae использует остаточные слои и отсутствие партии, в отличие от других моделей). Вот результаты каждой модели.
$ git clone https://github.com/AntixK/PyTorch-VAE
$ cd PyTorch-VAE
$ pip install -r requirements.txt
$ cd PyTorch-VAE
$ python run.py -c configs/<config-file-name.yaml>
Шаблон файла конфигурации
model_params :
name : " <name of VAE model> "
in_channels : 3
latent_dim :
. # Other parameters required by the model
.
.
data_params :
data_path : " <path to the celebA dataset> "
train_batch_size : 64 # Better to have a square number
val_batch_size : 64
patch_size : 64 # Models are designed to work for this size
num_workers : 4
exp_params :
manual_seed : 1265
LR : 0.005
weight_decay :
. # Other arguments required for training, like scheduler etc.
.
.
trainer_params :
gpus : 1
max_epochs : 100
gradient_clip_val : 1.5
.
.
.
logging_params :
save_dir : " logs/ "
name : " <experiment name> "Просмотреть журналы Tensorboard
$ cd logs/<experiment name>/version_<the version you want>
$ tensorboard --logdir .
Примечание. Набор данных по умолчанию - Celeba. Тем не менее, было много проблем с загрузкой набора данных с Google Drive (из -за некоторых изменений структуры файлов). Таким образом, рекомендация заключается в том, чтобы загрузить файл с Google Drive напрямую и извлечь в путь по вашему выбору. Путь по умолчанию, предполагаемый в файлах конфигурации, является `data/celeba/img_align_celeba '. Но вы можете изменить его в соответствии с вашими предпочтениями.
| Модель | Бумага | Реконструкция | Образцы |
|---|---|---|---|
| Vae (код, конфигурация) | Связь | ![]() | ![]() |
| Условный VAE (код, конфигурация) | Связь | ![]() | ![]() |
| WAE - MMD (ядро RBF) (код, конфигурация) | Связь | ![]() | ![]() |
| WAE - MMD (IMQ KERNEL) (CODE, COUNT) | Связь | ![]() | ![]() |
| Бета-вар (код, конфигурация) | Связь | ![]() | ![]() |
| Рассеянный бета-вай (код, конфигурация) | Связь | ![]() | ![]() |
| Beta-TC-Vae (код, конфигурация) | Связь | ![]() | ![]() |
| Iwae ( k = 5 ) (код, конфигурация) | Связь | ![]() | ![]() |
| Miwae ( k = 5, m = 3 ) (код, конфигурация) | Связь | ![]() | ![]() |
| Dfcvae (код, конфигурация) | Связь | ![]() | ![]() |
| MSSIM VAE (код, конфигурация) | Связь | ![]() | ![]() |
| Категорический VAE (код, конфигурация) | Связь | ![]() | ![]() |
| Совместный VAE (код, конфигурация) | Связь | ![]() | ![]() |
| Информация VAE (код, конфигурация) | Связь | ![]() | ![]() |
| Logcosh vae (код, конфигурация) | Связь | ![]() | ![]() |
| Swae (200 проекций) (код, конфигурация) | Связь | ![]() | ![]() |
| VQ-VAE ( k = 512, d = 64 ) (код, конфигурация) | Связь | ![]() | N/a |
| Dip Vae (код, конфигурация) | Связь | ![]() | ![]() |
Если вы обучили лучшую модель, используя эти реализации, от тонкой настройки гиперпарам в файле конфигурации, я был бы рад включить ваш результат (вместе с вашим файлом конфигурации) в этот репо, сославшись на ваше имя?
Кроме того, если вы хотите внести несколько моделей, отправьте PR.
Apache License 2.0
| Разрешения | Ограничения | Условия |
|---|---|---|
| ✔ Коммерческое использование | Использование торговой марки | Ⓘ Лицензия и уведомление об авторском праве |
| ✔ Модификация | Обязанность | Ⓘ Состояние изменения |
| ✔ Распределение | Гарантия | |
| ✔ Использование патента | ||
| ✔ частное использование |
@misc{Subramanian2020,
author = {Subramanian, A.K},
title = {PyTorch-VAE},
year = {2020},
publisher = {GitHub},
journal = {GitHub repository},
howpublished = {url{https://github.com/AntixK/PyTorch-VAE}}
}