อัปเดต 22/12/2021: เพิ่มการสนับสนุนสำหรับ Pytorch Lightning 1.5.6 เวอร์ชันและทำความสะอาดรหัส
คอลเลกชันของ Variational Autoencoders (VAES) ที่ใช้ใน Pytorch โดยมุ่งเน้นไปที่การทำซ้ำ เป้าหมายของโครงการนี้คือการจัดทำตัวอย่างการทำงานที่รวดเร็วและรวดเร็วสำหรับรุ่น VAE ที่เย็นสบายหลายรุ่น ทุกรุ่นได้รับการฝึกฝนในชุดข้อมูล Celeba เพื่อความสอดคล้องและการเปรียบเทียบ สถาปัตยกรรมของแบบจำลองทั้งหมดจะถูกเก็บไว้ให้ใกล้เคียงกับเลเยอร์เดียวกันยกเว้นกรณีที่กระดาษต้นฉบับจำเป็นต้องมีสถาปัตยกรรมที่แตกต่างกันอย่างสิ้นเชิง (เช่น VQ VAE ใช้เลเยอร์ที่เหลือและไม่มีแบทช์-Norm ซึ่งแตกต่างจากรุ่นอื่น ๆ ) นี่คือผลลัพธ์ของแต่ละรุ่น
$ 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 โดยตรงและแยกไปยังเส้นทางที่คุณเลือก พา ธ เริ่มต้นที่สันนิษฐานไว้ในไฟล์ config คือ `data/celeba/img_align_celeba ' แต่คุณสามารถเปลี่ยนมันตามความชอบของคุณ
| แบบอย่าง | กระดาษ | การสร้างใหม่ | ตัวอย่าง |
|---|---|---|---|
| vae (รหัส, config) | การเชื่อมโยง | ![]() | ![]() |
| VAE แบบมีเงื่อนไข (รหัส, config) | การเชื่อมโยง | ![]() | ![]() |
| WAE - MMD (เคอร์เนล RBF) (รหัส, config) | การเชื่อมโยง | ![]() | ![]() |
| WAE - MMD (เคอร์เนล IMQ) (รหัส, config) | การเชื่อมโยง | ![]() | ![]() |
| Beta-vae (รหัส, config) | การเชื่อมโยง | ![]() | ![]() |
| disentangled beta-vae (รหัส, config) | การเชื่อมโยง | ![]() | ![]() |
| beta-tc-vae (รหัส, config) | การเชื่อมโยง | ![]() | ![]() |
| iwae ( k = 5 ) (รหัส, config) | การเชื่อมโยง | ![]() | ![]() |
| miwae ( k = 5, m = 3 ) (รหัส, config) | การเชื่อมโยง | ![]() | ![]() |
| dfcvae (รหัส, config) | การเชื่อมโยง | ![]() | ![]() |
| mssim vae (รหัส, config) | การเชื่อมโยง | ![]() | ![]() |
| หมวดหมู่ vae (รหัส, config) | การเชื่อมโยง | ![]() | ![]() |
| ร่วม VAE (รหัส, config) | การเชื่อมโยง | ![]() | ![]() |
| info vae (รหัส config) | การเชื่อมโยง | ![]() | ![]() |
| logcosh vae (รหัส, config) | การเชื่อมโยง | ![]() | ![]() |
| Swae (200 การคาดการณ์) (รหัส, config) | การเชื่อมโยง | ![]() | ![]() |
| vq-vae ( k = 512, d = 64 ) (รหัส, config) | การเชื่อมโยง | ![]() | N/A |
| จุ่ม vae (รหัส config) | การเชื่อมโยง | ![]() | ![]() |
หากคุณได้รับการฝึกฝนแบบจำลองที่ดีกว่าโดยใช้การใช้งานเหล่านี้โดยการปรับแต่งพารามไฮเปอร์ในไฟล์กำหนดค่าฉันยินดีที่จะรวมผลลัพธ์ของคุณ (พร้อมกับไฟล์กำหนดค่าของคุณ) ใน repo นี้โดยอ้างชื่อของคุณ?
นอกจากนี้หากคุณต้องการมีส่วนร่วมบางรุ่นโปรดส่ง PR
ใบอนุญาต Apache 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}}
}