UPDATE 22/12/2021: Menambahkan dukungan untuk versi Pytorch Lightning 1.5.6 dan membersihkan kode.
Kumpulan Autoencoders Variasional (VAE) yang diimplementasikan di Pytorch dengan fokus pada reproduktifitas. Tujuan dari proyek ini adalah untuk memberikan contoh kerja yang cepat dan sederhana untuk banyak model VAE keren di luar sana. Semua model dilatih pada dataset Celeba untuk konsistensi dan perbandingan. Arsitektur semua model dijaga serupa dengan lapisan yang sama, kecuali untuk kasus di mana kertas asli memerlukan arsitektur yang sangat berbeda (mis. VQ VAE menggunakan lapisan residual dan tidak ada norma batch, tidak seperti model lain). Berikut adalah hasil dari setiap model.
$ 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>
Template file konfigurasi
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> "Lihat Log Tensorboard
$ cd logs/<experiment name>/version_<the version you want>
$ tensorboard --logdir .
Catatan: Dataset default adalah Celeba. Namun, ada banyak masalah dengan mengunduh dataset dari Google Drive (karena beberapa perubahan struktur file). Jadi, rekomendasinya adalah mengunduh file dari Google Drive secara langsung dan mengekstrak ke jalur pilihan Anda. Jalur default yang diasumsikan dalam file konfigurasi adalah `data/celeba/img_align_celeba '. Tetapi Anda dapat mengubahnya dengan preferensi Anda.
| Model | Kertas | Rekonstruksi | Sampel |
|---|---|---|---|
| VAE (kode, konfigurasi) | Link | ![]() | ![]() |
| VAE bersyarat (kode, konfigurasi) | Link | ![]() | ![]() |
| WAE - MMD (kernel RBF) (kode, konfigurasi) | Link | ![]() | ![]() |
| WAE - MMD (IMQ Kernel) (kode, konfigurasi) | Link | ![]() | ![]() |
| Beta-vae (kode, konfigurasi) | Link | ![]() | ![]() |
| Disentangled beta-vae (kode, konfigurasi) | Link | ![]() | ![]() |
| Beta-tc-vae (kode, konfigurasi) | Link | ![]() | ![]() |
| Iwae ( k = 5 ) (kode, konfigurasi) | Link | ![]() | ![]() |
| Miwae ( k = 5, m = 3 ) (kode, konfigurasi) | Link | ![]() | ![]() |
| Dfcvae (kode, konfigurasi) | Link | ![]() | ![]() |
| Mssim vae (kode, konfigurasi) | Link | ![]() | ![]() |
| VAE Kategori (kode, konfigurasi) | Link | ![]() | ![]() |
| VAE bersama (kode, konfigurasi) | Link | ![]() | ![]() |
| Info vae (kode, konfigurasi) | Link | ![]() | ![]() |
| Logcosh Vae (kode, konfigurasi) | Link | ![]() | ![]() |
| Swae (200 proyeksi) (kode, konfigurasi) | Link | ![]() | ![]() |
| VQ-VAE ( k = 512, d = 64 ) (kode, konfigurasi) | Link | ![]() | N/a |
| Dip Vae (kode, konfigurasi) | Link | ![]() | ![]() |
Jika Anda telah melatih model yang lebih baik, menggunakan implementasi ini, dengan menyempurnakan hiper-param dalam file konfigurasi, saya akan dengan senang hati memasukkan hasil Anda (bersama dengan file konfigurasi Anda) dalam repo ini, mengutip nama Anda?
Selain itu, jika Anda ingin menyumbangkan beberapa model, silakan kirim PR.
Lisensi Apache 2.0
| Izin | Batasan | Kondisi |
|---|---|---|
| ✔️ Penggunaan komersial | Penggunaan merek dagang | Ⓘ lisensi dan pemberitahuan hak cipta |
| ✔️ Modifikasi | Beban | Ⓘ Perubahan Negara |
| ✔️ Distribusi | Jaminan | |
| ✔️ Penggunaan paten | ||
| ✔️ Penggunaan pribadi |
@misc{Subramanian2020,
author = {Subramanian, A.K},
title = {PyTorch-VAE},
year = {2020},
publisher = {GitHub},
journal = {GitHub repository},
howpublished = {url{https://github.com/AntixK/PyTorch-VAE}}
}