Update 22/12/2021: Unterstützung für Pytorch Lightning 1.5.6 -Version hinzugefügt und den Code gereinigt.
Eine Sammlung von Variationsautoencodern (VAEs), die in Pytorch implementiert sind und sich auf die Reproduzierbarkeit konzentrieren. Das Ziel dieses Projekts ist es, für viele der coolen VAE -Modelle ein schnelles und einfaches Beispiel für viele der coolen VAE -Modelle zu liefern. Alle Modelle werden auf dem Celeba -Datensatz für Konsistenz und Vergleich geschult. Die Architektur aller Modelle wird mit denselben Schichten so ähnlich wie möglich gehalten, mit Ausnahme von Fällen, in denen das ursprüngliche Papier eine radikal andere Architektur erfordert (Ex. VQ VAE verwendet im Gegensatz zu anderen Modellen kein Batch-Norm). Hier sind die Ergebnisse jedes Modells.
$ 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>
Konfigurationsdateivorlage
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 -Protokolle anzeigen
$ cd logs/<experiment name>/version_<the version you want>
$ tensorboard --logdir .
Hinweis: Der Standarddatensatz ist Celeba. Es gab jedoch viele Probleme beim Herunterladen des Datensatzes von Google Drive (aufgrund von Änderungen der Dateistruktur). Die Empfehlung lautet also, die Datei direkt von Google Drive herunterzuladen und auf den Pfad Ihrer Wahl zu extrahieren. Der in den Konfigurationsdateien angenommene Standardpfad ist "Data/Celeba/img_align_celeba". Sie können es jedoch an Ihre Präferenz ändern.
| Modell | Papier | Wiederaufbau | Proben |
|---|---|---|---|
| VAE (Code, Konfiguration) | Link | ![]() | ![]() |
| Bedingte VAE (Code, Konfiguration) | Link | ![]() | ![]() |
| WAE - MMD (RBF -Kernel) (Code, Konfiguration) | Link | ![]() | ![]() |
| WAE - MMD (IMQ -Kernel) (Code, Konfiguration) | Link | ![]() | ![]() |
| Beta-vae (Code, Konfiguration) | Link | ![]() | ![]() |
| Beta-vae entwirrt (Code, Konfiguration) | Link | ![]() | ![]() |
| Beta-tc-vae (Code, Konfiguration) | Link | ![]() | ![]() |
| IWAE ( K = 5 ) (Code, Konfiguration) | Link | ![]() | ![]() |
| Miwae ( K = 5, M = 3 ) (Code, Konfiguration) | Link | ![]() | ![]() |
| DFCVAE (Code, Konfiguration) | Link | ![]() | ![]() |
| MSSIM VAE (Code, Konfiguration) | Link | ![]() | ![]() |
| Kategoriale VAE (Code, Konfiguration) | Link | ![]() | ![]() |
| Joint VAE (Code, Konfiguration) | Link | ![]() | ![]() |
| Info VAE (Code, Konfiguration) | Link | ![]() | ![]() |
| Logcosh Vae (Code, Konfiguration) | Link | ![]() | ![]() |
| SWAE (200 Projektionen) (Code, Konfiguration) | Link | ![]() | ![]() |
| VQ-vae ( K = 512, d = 64 ) (Code, Konfiguration) | Link | ![]() | N / A |
| Dip Vae (Code, Konfiguration) | Link | ![]() | ![]() |
Wenn Sie ein besseres Modell mit diesen Implementierungen geschult haben, indem Sie die Hyper-Params in der Konfigurationsdatei Feinabstimmung in der Konfigurationsdatei geschult haben, würde ich Ihr Ergebnis (zusammen mit Ihrer Konfigurationsdatei) in dieses Repo unter Berufung auf Ihren Namen einbeziehen?
Wenn Sie einige Modelle beitragen möchten, senden Sie außerdem eine PR.
Apache -Lizenz 2.0
| Berechtigungen | Einschränkungen | Bedingungen |
|---|---|---|
| ✔️ kommerzielle Verwendung | Markennutzung | Ⓘ Lizenz und Urheberrechtsbekanntmachung |
| ✔️ Änderung | Haftung | Ⓘ Zustandsänderungen |
| ✔️ Verteilung | Garantie | |
| ✔️ Patentgebrauch | ||
| ✔️ Privatgebrauch |
@misc{Subramanian2020,
author = {Subramanian, A.K},
title = {PyTorch-VAE},
year = {2020},
publisher = {GitHub},
journal = {GitHub repository},
howpublished = {url{https://github.com/AntixK/PyTorch-VAE}}
}