Skip to content

IShengFang/SpectralNormalizationKeras

master
Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?
Code

Files

Permalink
Failed to load latest commit information.
Type
Name
Latest commit message
Commit time
img
 
 
 
 
 
 
 
 

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.