업데이트 22/12/2021 : Pytorch Lightning 1.5.6 버전에 대한 지원이 추가되고 코드를 정리했습니다.
재현성에 중점을 둔 Pytorch에서 구현 된 변동 자동 인코 코더 (VAE)의 수집. 이 프로젝트의 목표는 많은 멋진 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> "텐서 보드 로그를 봅니다
$ cd logs/<experiment name>/version_<the version you want>
$ tensorboard --logdir .
참고 : 기본 데이터 세트는 Celeba입니다. 그러나 Google 드라이브에서 데이터 세트를 다운로드하는 데는 많은 문제가있었습니다 (일부 파일 구조 변경으로 인해). 따라서 권장 사항은 Google Drive에서 파일을 직접 다운로드하고 원하는 경로로 추출하는 것입니다. 구성 파일에서 가정 된 기본 경로는`data/celeba/img_align_celeba '입니다. 그러나 선호도에 따라 변경할 수 있습니다.
| 모델 | 종이 | 재건 | 샘플 |
|---|---|---|---|
| VAE (코드, 구성) | 링크 | ![]() | ![]() |
| 조건부 VAE (코드, 구성) | 링크 | ![]() | ![]() |
| WAE -MMD (RBF 커널) (코드, 구성) | 링크 | ![]() | ![]() |
| WAE -MMD (IMQ 커널) (코드, 구성) | 링크 | ![]() | ![]() |
| 베타 VAE (코드, 구성) | 링크 | ![]() | ![]() |
| 분리 된 베타 VAE (Code, Config) | 링크 | ![]() | ![]() |
| 베타 -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 |
| 딥 VAE (코드, 구성) | 링크 | ![]() | ![]() |
구성 파일의 하이퍼 패람을 미세 조정하여 이러한 구현을 사용하여 더 나은 모델을 훈련 한 경우이 리브레에 (구성 파일과 함께) 결과를 포함하여 기꺼이 이름을 인용하게됩니다.
또한 일부 모델을 기여하려면 PR을 제출하십시오.
아파치 라이센스 2.0
| 권한 | 제한 | 정황 |
|---|---|---|
| ✔️ 상업용 사용 | 상표 사용 | ⓘ 라이센스 및 저작권 통지 |
| ✔️ 수정 | 책임 | state 상태 변경 |
| ✔️ 배포 | 보증 | |
| ✔️ 특허 사용 | ||
| ✔️ 개인 용도 |
@misc{Subramanian2020,
author = {Subramanian, A.K},
title = {PyTorch-VAE},
year = {2020},
publisher = {GitHub},
journal = {GitHub repository},
howpublished = {url{https://github.com/AntixK/PyTorch-VAE}}
}