Spectral Normalization for Keras
The simple Keras implementation of ICLR 2018 paper, Spectral Normalization for Generative Adversarial Networks.
[openreview][arixiv][original code(chainer)]
[Hackmd][github]
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
Generator UpSampling ResBlock
Discriminator DownSampling ResBlock
- Thank @anshkapil pointed out and @IFeelBloated corrected this implementation.