تحديث 22/12/2021: دعم إضافي لإصدار Pytorch Lightning 1.5.6 وقام بتنظيف الكود.
مجموعة من أجهزة الترميز التلقائي المتغير (VAES) التي تم تنفيذها في Pytorch مع التركيز على استنساخ. الهدف من هذا المشروع هو توفير مثال عمل سريع وبسيط للعديد من نماذج VAE الرائعة الموجودة هناك. يتم تدريب جميع النماذج على مجموعة بيانات Celeba من أجل الاتساق والمقارنة. يتم الحفاظ على بنية جميع النماذج متشابهة قدر الإمكان مع نفس الطبقات ، باستثناء الحالات التي تستلزم فيها الورقة الأصلية بنية مختلفة جذريًا (على سبيل المثال ، يستخدم VQ VAE طبقات متبقية وليس عثورًا على عكس النماذج الأخرى). فيما يلي نتائج كل نموذج.
$ 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 مباشرة واستخراج المسار الذي تختاره. المسار الافتراضي المفترض في ملفات التكوين هو "البيانات/CELEBA/IMG_ALIGN_CECEREBA". ولكن يمكنك تغييره على تفضيلاتك.
| نموذج | ورق | إعادة الإعمار | عينات |
|---|---|---|---|
| VAE (رمز ، التكوين) | وصلة | ![]() | ![]() |
| VAE الشرطية (رمز ، تكوين) | وصلة | ![]() | ![]() |
| WAE - MMD (RBF kernel) (رمز ، تكوين) | وصلة | ![]() | ![]() |
| Wae - MMD (kernel IMQ) (رمز ، تكوين) | وصلة | ![]() | ![]() |
| بيتا-فاي (رمز ، تكوين) | وصلة | ![]() | ![]() |
| Disentangled Beta-vae (رمز ، تكوين) | وصلة | ![]() | ![]() |
| Beta-TC-VAE (رمز ، تكوين) | وصلة | ![]() | ![]() |
| iwae ( k = 5 ) (رمز ، تكوين) | وصلة | ![]() | ![]() |
| miwae ( k = 5 ، m = 3 ) (الرمز ، التكوين) | وصلة | ![]() | ![]() |
| DFCVAE (رمز ، تكوين) | وصلة | ![]() | ![]() |
| mssim vae (الرمز ، التكوين) | وصلة | ![]() | ![]() |
| VAE الفئوي (الرمز ، التكوين) | وصلة | ![]() | ![]() |
| مفصل VAE (رمز ، التكوين) | وصلة | ![]() | ![]() |
| info vae (رمز ، تكوين) | وصلة | ![]() | ![]() |
| logcosh vae (رمز ، تكوين) | وصلة | ![]() | ![]() |
| Swae (200 توقعات) (رمز ، تكوين) | وصلة | ![]() | ![]() |
| VQ-VAE ( K = 512 ، D = 64 ) (رمز ، تكوين) | وصلة | ![]() | ن/أ |
| DIP VAE (رمز ، التكوين) | وصلة | ![]() | ![]() |
إذا قمت بتدريب نموذج أفضل ، باستخدام هذه التطبيقات ، من خلال ضبط البرمجيات المفرطة في ملف التكوين ، سأكون سعيدًا بتضمين النتيجة (إلى جانب ملف التكوين الخاص بك) في هذا الريبو ، مستشهداً باسمك؟
بالإضافة إلى ذلك ، إذا كنت ترغب في المساهمة في بعض النماذج ، فيرجى إرسال العلاقات العامة.
ترخيص 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}}
}