The simple Keras implementation of ICLR 2018 paper, Spectral Normalization for Generative Adversarial Networks. [openreview][arixiv][original code(chainer)]
| 10epoch | With SN | Without SN |
|---|---|---|
| With GP | ![]() |
![]() |
| Without GP | ![]() |
![]() |
| 100epoch | With SN | Without SN |
|---|---|---|
| With GP | ![]() |
![]() |
| Without GP | ![]() |
![]() |
| 200epoch | With SN | Without SN |
|---|---|---|
| With GP | ![]() |
![]() |
| Without GP | ![]() |
![]() |
| 300epoch | With SN | Without SN |
|---|---|---|
| With GP | ![]() |
![]() |
| Without GP | ![]() |
![]() |
| 400epoch | With SN | Without SN |
|---|---|---|
| With GP | ![]() |
![]() |
| Without GP | ![]() |
![]() |
| 500epoch | with SN | without SN |
|---|---|---|
| With GP | ![]() |
![]() |
| Without GP | ![]() |
![]() |
| Loss | with SN | without SN |
|---|---|---|
| With GP | ![]() |
![]() |
| Without GP | ![]() |
![]() |
| 10epoch | With SN | Without SN |
|---|---|---|
| With GP | ![]() |
![]() |
| Without GP | ![]() |
![]() |
| 100epoch | With SN | Without SN |
|---|---|---|
| With GP | ![]() |
![]() |
| Without GP | ![]() |
![]() |
| 200epoch | With SN | Without SN |
|---|---|---|
| With GP | ![]() |
![]() |
| Without GP | ![]() |
![]() |
| 300epoch | With SN | Without SN |
|---|---|---|
| With GP | ![]() |
![]() |
| Without GP | ![]() |
![]() |
| 400epoch | With SN | Without SN |
|---|---|---|
| With GP | ![]() |
![]() |
| Without GP | ![]() |
![]() |
| 500epoch | with SN | without SN |
|---|---|---|
| With GP | ![]() |
![]() |
| Without GP | ![]() |
![]() |
| Loss | with SN | without SN |
|---|---|---|
| With GP | ![]() |
![]() |
| Without GP | ![]() |
![]() |
- Move SpectralNormalizationKeras.py in your dir
- Import these layer class
from SpectralNormalizationKeras import DenseSN, ConvSN1D, ConvSN2D, ConvSN3D- Use these layers in your discriminator as usual
CIFAR10 with DCGAN architecture
CIFAR10 with ResNet architecture
- Compare with WGAN-GP
- Projection Discriminator
- Thank @anshkapil pointed out and @IFeelBloated corrected this implementation.






























































