• Stars
    star
    124
  • Rank 288,207 (Top 6 %)
  • Language
    Jupyter Notebook
  • License
    Other
  • Created over 6 years ago
  • Updated almost 5 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

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)]

[Hackmd][github]

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?

  1. Move SpectralNormalizationKeras.py in your dir
  2. Import these layer class
from SpectralNormalizationKeras import DenseSN, ConvSN1D, ConvSN2D, ConvSN3D
  1. 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

  • Compare with WGAN-GP
  • Projection Discriminator

Acknowledgment

  • Thank @anshkapil pointed out and @IFeelBloated corrected this implementation.