Original: [TensorFlow -Version]
Pytorch -Implementierung verschiedener Gans.
Dieses Repository wurde unter Bezugnahme auf TensorFlow-generativen Modell-Sammeln von Hwalsuk Lee neu implementiert
Ich habe versucht, dieses Repository so weit wie möglich mit TensorFlow-generativen Modell-Sammelgesellschaft zu implementieren, aber einige Modelle sind etwas anders.
Dieses Repository ist Code für den CPU -Modus -Pytorch enthalten, aber ich habe nicht getestet. Ich habe nur im GPU -Modus Pytorch getestet.
| Name | Papierverbindung | Wertfunktion |
|---|---|---|
| Gan | Arxiv | ![]() |
| Lsgan | Arxiv | ![]() |
| Wgan | Arxiv | ![]() |
| WGAN_GP | Arxiv | ![]() |
| Dragan | Arxiv | ![]() |
| Cgan | Arxiv | ![]() |
| Infogan | Arxiv | ![]() |
| Acgan | Arxiv | ![]() |
| Ebgan | Arxiv | ![]() |
| Begann | Arxiv | ![]() |

Die Netzwerkarchitektur des Generators und des Diskriminators ist die herausragenden Sames wie im Infogan -Papier.
Für einen fairen Vergleich von Kernideen in allen GAN -Varianten werden alle Implementierungen für die Netzwerkarchitektur außer Ebgan gehalten und begonnen. Für Ebgan/Beginn wird eine geringe Modifikation vorgenommen, da diejenigen, die den Auto-Coder-Strucutre für Diskriminator anwenden. Aber ich habe versucht, die Kapazität des Vervibgers zu halten.
Die folgenden Ergebnisse können mit dem Befehl reproduziert werden:
python main.py --dataset mnist --gan_type <TYPE> --epoch 50 --batch_size 64
Alle Ergebnisse werden aus dem festen Rauschvektor generiert.
| Name | Epoche 1 | Epoche 25 | Epoche 50 | GIF |
|---|---|---|---|---|
| Gan | ![]() | ![]() | ![]() | ![]() |
| Lsgan | ![]() | ![]() | ![]() | ![]() |
| Wgan | ![]() | ![]() | ![]() | ![]() |
| WGAN_GP | ![]() | ![]() | ![]() | ![]() |
| Dragan | ![]() | ![]() | ![]() | ![]() |
| Ebgan | ![]() | ![]() | ![]() | ![]() |
| Begann | ![]() | ![]() | ![]() | ![]() |
Jede Zeile hat den gleichen Rauschvektor und jede Spalte hat den gleichen Beschriftungszustand.
| Name | Epoche 1 | Epoche 25 | Epoche 50 | GIF |
|---|---|---|---|---|
| Cgan | ![]() | ![]() | ![]() | ![]() |
| Acgan | ![]() | ![]() | ![]() | ![]() |
| Infogan | ![]() | ![]() | ![]() | ![]() |
Alle Ergebnisse haben den gleichen Rauschvektor- und Kennzeichnungszustand, aber einen unterschiedlichen kontinualen Vektor.
| Name | Epoche 1 | Epoche 25 | Epoche 50 | GIF |
|---|---|---|---|---|
| Infogan | ![]() | ![]() | ![]() | ![]() |
| Name | Verlust |
|---|---|
| Gan | ![]() |
| Lsgan | ![]() |
| Wgan | ![]() |
| WGAN_GP | ![]() |
| Dragan | ![]() |
| Ebgan | ![]() |
| Begann | ![]() |
| Cgan | ![]() |
| Acgan | ![]() |
| Infogan | ![]() |
Kommentare zur Netzwerkarchitektur in MNIST werden auch hier angewendet.
Fashion-Mnist ist ein kürzlich vorgeschlagener Datensatz, der aus einem Trainingssatz von 60.000 Beispielen und einem Testsatz von 10.000 Beispielen besteht. Jedes Beispiel ist ein 28x28 Graustufenbild, das einem Etikett aus 10 Klassen zugeordnet ist. (T-Shirt/Top, Hosen, Pullover, Kleid, Mantel, Sandale, Hemd, Sneaker, Tasche, Knöchelstiefel)
Die folgenden Ergebnisse können mit dem Befehl reproduziert werden:
python main.py --dataset fashion-mnist --gan_type <TYPE> --epoch 50 --batch_size 64
Alle Ergebnisse werden aus dem festen Rauschvektor generiert.
| Name | Epoche 1 | Epoche 25 | Epoche 50 | GIF |
|---|---|---|---|---|
| Gan | ![]() | ![]() | ![]() | ![]() |
| Lsgan | ![]() | ![]() | ![]() | ![]() |
| Wgan | ![]() | ![]() | ![]() | ![]() |
| WGAN_GP | ![]() | ![]() | ![]() | ![]() |
| Dragan | ![]() | ![]() | ![]() | ![]() |
| Ebgan | ![]() | ![]() | ![]() | ![]() |
| Begann | ![]() | ![]() | ![]() | ![]() |
Jede Zeile hat den gleichen Rauschvektor und jede Spalte hat den gleichen Beschriftungszustand.
| Name | Epoche 1 | Epoche 25 | Epoche 50 | GIF |
|---|---|---|---|---|
| Cgan | ![]() | ![]() | ![]() | ![]() |
| Acgan | ![]() | ![]() | ![]() | ![]() |
| Infogan | ![]() | ![]() | ![]() | ![]() |
Alle Ergebnisse haben den gleichen Rauschvektor- und Kennzeichnungszustand, aber einen unterschiedlichen kontinualen Vektor.
| Name | Epoche 1 | Epoche 25 | Epoche 50 | GIF |
|---|---|---|---|---|
| Infogan | ![]() | ![]() | ![]() | ![]() |
| Name | Verlust |
|---|---|
| Gan | ![]() |
| Lsgan | ![]() |
| Wgan | ![]() |
| WGAN_GP | ![]() |
| Dragan | ![]() |
| Ebgan | ![]() |
| Begann | ![]() |
| Cgan | ![]() |
| Acgan | ![]() |
| Infogan | ![]() |
Das Folgende zeigt grundlegende Ordnerstruktur.
├── main.py # gateway
├── data
│ ├── mnist # mnist data (not included in this repo)
│ ├── ...
│ ├── ...
│ └── fashion-mnist # fashion-mnist data (not included in this repo)
│
├── GAN.py # vainilla GAN
├── utils.py # utils
├── dataloader.py # dataloader
├── models # model files to be saved here
└── results # generation results to be saved here
Diese Implementierung basiert auf Tensorflow-generativen Modell-Sammel und wurde mit Pytorch 0.4.0 auf Ubuntu 16.04 mit GPU getestet.