SpectralNormalizationKeras
SpectralNormalizationKeras copied to clipboard
Spectral Normalization for Keras Dense and Convolution Layers
Spectral Normalization for Keras
The simple Keras implementation of ICLR 2018 paper, Spectral Normalization for Generative Adversarial Networks. [openreview][arixiv][original code(chainer)]
Result
CIFAR10
DCGAN architecture
| 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 | ![]() |
![]() |
ResNet architecture
| 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 | ![]() |
![]() |
How to use?
- 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
Example notebook
CIFAR10 with DCGAN architecture
CIFAR10 with ResNet architecture
Model Detail
Architecture
DCGAN
Generator

Discriminator

ResNet GAN
Generator

Generator UpSampling ResBlock

Dicriminator

Discriminator DownSampling ResBlock

Discriminator ResBlock

Issue
- [x] Compare with WGAN-GP
- [ ] Projection Discriminator
Acknowledgment
- Thank @anshkapil pointed out and @IFeelBloated corrected this implementation.























































