PyTorch VAE
1.0.0
更新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ドライブからファイルを直接ダウンロードし、選択したパスに抽出することです。構成ファイルで想定されるデフォルトのパスは、 `data/celeba/img_align_celeba 'です。しかし、あなたはあなたの好みに応じてそれを変更することができます。
| モデル | 紙 | 再建 | サンプル |
|---|---|---|---|
| vae(code、config) | リンク | ![]() | ![]() |
| 条件付きvae(コード、構成) | リンク | ![]() | ![]() |
| WAE -MMD(RBFカーネル)(コード、config) | リンク | ![]() | ![]() |
| wae -mmd(imq kernel)(code、config) | リンク | ![]() | ![]() |
| beta-vae(code、config) | リンク | ![]() | ![]() |
| disentangled beta-vae(code、config) | リンク | ![]() | ![]() |
| beta-tc-vae(code、config) | リンク | ![]() | ![]() |
| iwae( k = 5 )(code、config) | リンク | ![]() | ![]() |
| miwae( k = 5、m = 3 )(code、config) | リンク | ![]() | ![]() |
| dfcvae(code、config) | リンク | ![]() | ![]() |
| mssim vae(code、config) | リンク | ![]() | ![]() |
| カテゴリーVAE(code、config) | リンク | ![]() | ![]() |
| 共同vae(code、config) | リンク | ![]() | ![]() |
| 情報vae(code、config) | リンク | ![]() | ![]() |
| logcosh vae(code、config) | リンク | ![]() | ![]() |
| Swae(200の予測)(コード、構成) | リンク | ![]() | ![]() |
| vq-vae( k = 512、d = 64 )(code、config) | リンク | ![]() | n/a |
| dip vae(code、config) | リンク | ![]() | ![]() |
これらの実装を使用して、構成ファイルにハイパーパラムを微調整することで、より良いモデルをトレーニングした場合、このレポで(構成ファイルとともに)結果をこのレポを引用して喜んで含めます。
さらに、いくつかのモデルを提供したい場合は、PRを提出してください。
Apacheライセンス2.0
| 権限 | 制限 | 条件 |
|---|---|---|
| Commercial Commercial使用 | トレードマークの使用 | ⓘライセンスと著作権通知 |
| ✔️変更 | 責任 | ⓘ状態の変更 |
| ✔️分布 | 保証 | |
| patent特許の使用 | ||
| privateプライベート使用 |
@misc{Subramanian2020,
author = {Subramanian, A.K},
title = {PyTorch-VAE},
year = {2020},
publisher = {GitHub},
journal = {GitHub repository},
howpublished = {url{https://github.com/AntixK/PyTorch-VAE}}
}