Original: [Versión TensorFlow]
Implementación de Pytorch de varios GAN.
Este repositorio fue reimplementado con referencia a las colecciones de modelos generales de tensorflow por Hwalsuk Lee
Traté de implementar este repositorio tanto como sea posible con las colecciones de modelos generativos de tensorflow, pero algunos modelos son un poco diferentes.
Este repositorio se incluye código para el modo CPU Pytorch, pero no probé. Probé solo en el modo GPU pytorch.
| Nombre | Enlace de papel | Función de valor |
|---|---|---|
| Ganancia | Arxiv | ![]() |
| LSGAN | Arxiv | ![]() |
| WGAN | Arxiv | ![]() |
| WGAN_GP | Arxiv | ![]() |
| Dragan | Arxiv | ![]() |
| CGAN | Arxiv | ![]() |
| infoguano | Arxiv | ![]() |
| Acgan | Arxiv | ![]() |
| Ebgan | Arxiv | ![]() |
| COMENZÓ | Arxiv | ![]() |

La arquitectura de red de generador y discriminador es el sams exactos como en el papel de Infogan.
Para una comparación justa de las ideas centrales en todas las variantes de GaN, todas las implementaciones para la arquitectura de red se mantienen mismas excepto EBGan y comenzaron. Se realiza una pequeña modificación para EBGan/Comenzan, ya que los adoptan la estructura automática de codificadores para discriminadores. Pero traté de mantener la capacidad de Discirminator.
Los siguientes resultados pueden reproducirse con el comando:
python main.py --dataset mnist --gan_type <TYPE> --epoch 50 --batch_size 64
Todos los resultados se generan a partir del vector de ruido fijo.
| Nombre | Época 1 | Época 25 | Época 50 | Gif |
|---|---|---|---|---|
| Ganancia | ![]() | ![]() | ![]() | ![]() |
| LSGAN | ![]() | ![]() | ![]() | ![]() |
| WGAN | ![]() | ![]() | ![]() | ![]() |
| WGAN_GP | ![]() | ![]() | ![]() | ![]() |
| Dragan | ![]() | ![]() | ![]() | ![]() |
| Ebgan | ![]() | ![]() | ![]() | ![]() |
| COMENZÓ | ![]() | ![]() | ![]() | ![]() |
Cada fila tiene el mismo vector de ruido y cada columna tiene la misma condición de etiqueta.
| Nombre | Época 1 | Época 25 | Época 50 | Gif |
|---|---|---|---|---|
| CGAN | ![]() | ![]() | ![]() | ![]() |
| Acgan | ![]() | ![]() | ![]() | ![]() |
| infoguano | ![]() | ![]() | ![]() | ![]() |
Todos los resultados tienen el mismo vector de ruido y condición de etiqueta, pero tienen un vector continuo diferente.
| Nombre | Época 1 | Época 25 | Época 50 | Gif |
|---|---|---|---|---|
| infoguano | ![]() | ![]() | ![]() | ![]() |
| Nombre | Pérdida |
|---|---|
| Ganancia | ![]() |
| LSGAN | ![]() |
| WGAN | ![]() |
| WGAN_GP | ![]() |
| Dragan | ![]() |
| Ebgan | ![]() |
| COMENZÓ | ![]() |
| CGAN | ![]() |
| Acgan | ![]() |
| infoguano | ![]() |
Los comentarios sobre la arquitectura de red en MNIST también se aplican a aquí.
Fashion-Mnist es un conjunto de datos recientemente propuesto que consiste en un conjunto de capacitación de 60,000 ejemplos y un conjunto de pruebas de 10,000 ejemplos. Cada ejemplo es una imagen de 28x28 en escala de grises, asociada con una etiqueta de 10 clases. (Camiseta/tapa, pantalón, jersey, vestido, abrigo, sandalia, camisa, zapatilla de deporte, bolsa, botín de tobillo)
Los siguientes resultados pueden reproducirse con el comando:
python main.py --dataset fashion-mnist --gan_type <TYPE> --epoch 50 --batch_size 64
Todos los resultados se generan a partir del vector de ruido fijo.
| Nombre | Época 1 | Época 25 | Época 50 | Gif |
|---|---|---|---|---|
| Ganancia | ![]() | ![]() | ![]() | ![]() |
| LSGAN | ![]() | ![]() | ![]() | ![]() |
| WGAN | ![]() | ![]() | ![]() | ![]() |
| WGAN_GP | ![]() | ![]() | ![]() | ![]() |
| Dragan | ![]() | ![]() | ![]() | ![]() |
| Ebgan | ![]() | ![]() | ![]() | ![]() |
| COMENZÓ | ![]() | ![]() | ![]() | ![]() |
Cada fila tiene el mismo vector de ruido y cada columna tiene la misma condición de etiqueta.
| Nombre | Época 1 | Época 25 | Época 50 | Gif |
|---|---|---|---|---|
| CGAN | ![]() | ![]() | ![]() | ![]() |
| Acgan | ![]() | ![]() | ![]() | ![]() |
| infoguano | ![]() | ![]() | ![]() | ![]() |
Todos los resultados tienen el mismo vector de ruido y condición de etiqueta, pero tienen un vector continuo diferente.
| Nombre | Época 1 | Época 25 | Época 50 | Gif |
|---|---|---|---|---|
| infoguano | ![]() | ![]() | ![]() | ![]() |
| Nombre | Pérdida |
|---|---|
| Ganancia | ![]() |
| LSGAN | ![]() |
| WGAN | ![]() |
| WGAN_GP | ![]() |
| Dragan | ![]() |
| Ebgan | ![]() |
| COMENZÓ | ![]() |
| CGAN | ![]() |
| Acgan | ![]() |
| infoguano | ![]() |
Lo siguiente muestra estructura de carpeta básica.
├── 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
Esta implementación se ha basado en las colecciones de modelos generales de TensorFlow y probada con Pytorch 0.4.0 en Ubuntu 16.04 usando GPU.