Original: [Versão Tensorflow]
Implementação de Pytorch de vários Gans.
Este repositório foi reimplementado com referência às coletações de modelos-modelos de tensorflow por Hwalsuk Lee
Tentei implementar esse repositório o máximo possível com as coletações de modelos-modelos de tensorflow, mas alguns modelos são um pouco diferentes.
Este repositório é incluído código para o modo CPU Pytorch, mas eu não testei. Eu testei apenas no modo GPU pytorch.
| Nome | Link em papel | Função de valor |
|---|---|---|
| Gan | Arxiv | ![]() |
| Lsgan | Arxiv | ![]() |
| WGAN | Arxiv | ![]() |
| WGAN_GP | Arxiv | ![]() |
| Dragan | Arxiv | ![]() |
| CGAN | Arxiv | ![]() |
| infogan | Arxiv | ![]() |
| Acgan | Arxiv | ![]() |
| Ebgan | Arxiv | ![]() |
| COMEÇOU | Arxiv | ![]() |

A arquitetura de rede de gerador e discriminador é o Exaclty Sames, como em papel infogan.
Para comparação justa das idéias principais em todas as variantes da GAN, todas as implementações da arquitetura de rede são mantidas iguais, exceto Ebgan e iniciadas. Pequenas modificações são feitas para o eBgan/iniciado, uma vez que os adotam o Strucutre de codificadores automáticos para o discriminador. Mas tentei manter a capacidade do RECUNTRADOR.
Os seguintes resultados podem ser reproduzidos com o comando:
python main.py --dataset mnist --gan_type <TYPE> --epoch 50 --batch_size 64
Todos os resultados são gerados a partir do vetor de ruído fixo.
| Nome | Epoch 1 | Epoch 25 | Epoch 50 | Gif |
|---|---|---|---|---|
| Gan | ![]() | ![]() | ![]() | ![]() |
| Lsgan | ![]() | ![]() | ![]() | ![]() |
| WGAN | ![]() | ![]() | ![]() | ![]() |
| WGAN_GP | ![]() | ![]() | ![]() | ![]() |
| Dragan | ![]() | ![]() | ![]() | ![]() |
| Ebgan | ![]() | ![]() | ![]() | ![]() |
| COMEÇOU | ![]() | ![]() | ![]() | ![]() |
Cada linha possui o mesmo vetor de ruído e cada coluna tem a mesma condição de etiqueta.
| Nome | Epoch 1 | Epoch 25 | Epoch 50 | Gif |
|---|---|---|---|---|
| CGAN | ![]() | ![]() | ![]() | ![]() |
| Acgan | ![]() | ![]() | ![]() | ![]() |
| infogan | ![]() | ![]() | ![]() | ![]() |
Todos os resultados têm o mesmo vetor de ruído e condição da etiqueta, mas têm um vetor contínuo diferente.
| Nome | Epoch 1 | Epoch 25 | Epoch 50 | Gif |
|---|---|---|---|---|
| infogan | ![]() | ![]() | ![]() | ![]() |
| Nome | Perda |
|---|---|
| Gan | ![]() |
| Lsgan | ![]() |
| WGAN | ![]() |
| WGAN_GP | ![]() |
| Dragan | ![]() |
| Ebgan | ![]() |
| COMEÇOU | ![]() |
| CGAN | ![]() |
| Acgan | ![]() |
| infogan | ![]() |
Os comentários sobre a arquitetura de rede no MNIST também são aplicados aqui.
A Moda-Mnist é um conjunto de dados recentemente proposto que consiste em um conjunto de treinamento de 60.000 exemplos e um conjunto de testes de 10.000 exemplos. Cada exemplo é uma imagem de escala de cinza de 28x28, associada a um rótulo de 10 classes. (Camiseta/top, calça, pulôver, vestido, casaco, sandália, camisa, tênis, bolsa, bota de tornozelo)
Os seguintes resultados podem ser reproduzidos com o comando:
python main.py --dataset fashion-mnist --gan_type <TYPE> --epoch 50 --batch_size 64
Todos os resultados são gerados a partir do vetor de ruído fixo.
| Nome | Epoch 1 | Epoch 25 | Epoch 50 | Gif |
|---|---|---|---|---|
| Gan | ![]() | ![]() | ![]() | ![]() |
| Lsgan | ![]() | ![]() | ![]() | ![]() |
| WGAN | ![]() | ![]() | ![]() | ![]() |
| WGAN_GP | ![]() | ![]() | ![]() | ![]() |
| Dragan | ![]() | ![]() | ![]() | ![]() |
| Ebgan | ![]() | ![]() | ![]() | ![]() |
| COMEÇOU | ![]() | ![]() | ![]() | ![]() |
Cada linha possui o mesmo vetor de ruído e cada coluna tem a mesma condição de etiqueta.
| Nome | Epoch 1 | Epoch 25 | Epoch 50 | Gif |
|---|---|---|---|---|
| CGAN | ![]() | ![]() | ![]() | ![]() |
| Acgan | ![]() | ![]() | ![]() | ![]() |
| infogan | ![]() | ![]() | ![]() | ![]() |
Todos os resultados têm o mesmo vetor de ruído e condição da etiqueta, mas têm um vetor contínuo diferente.
| Nome | Epoch 1 | Epoch 25 | Epoch 50 | Gif |
|---|---|---|---|---|
| infogan | ![]() | ![]() | ![]() | ![]() |
| Nome | Perda |
|---|---|
| Gan | ![]() |
| Lsgan | ![]() |
| WGAN | ![]() |
| WGAN_GP | ![]() |
| Dragan | ![]() |
| Ebgan | ![]() |
| COMEÇOU | ![]() |
| CGAN | ![]() |
| Acgan | ![]() |
| infogan | ![]() |
A seguir, mostra a estrutura básica da pasta.
├── 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
Essa implementação foi baseada em coleta de model-modelo Tensorflow e testada com Pytorch 0.4.0 no Ubuntu 16.04 usando a GPU.