/scs_gan

Generative Adversarial Network using Sharpened Cosine Similarity

Primary LanguageJupyter Notebook

SCSGAN

Generative Adversarial Network using Sharpened Cosine Similarity

This repo is a modified copy of PyTorch's DCGAN (Deep Convolutional GAN) tutorial but using Sharpened Cosine Similarity instead of convolutions.

The concept of SCS is inspired by Brandon Rohrer (Main SCS repo).

The implementation of SCS in this repo is taken from Lucas Nestler (Gist).

Tests

Using the MNIST dataset

FID + time

Currently SCS does not seem to be much better than deep conv GANs... More tinkering needed.

This is FID calculated on batches of 64 vs 64 images during training of 25 epochs and ndf (controlling feature maps in D) set to 16.

The lines are actually the average of 3 runs with the seeds 1, 2, 3.

Videos from the runs

Vanilla DGCAN

Parameters in G: 3,574,656
Parameters in D:   174,784
dcgan.mp4

SCS GAN

Parameters in G: 3,572,741
Parameters in D:   173,051
scsgan.mp4

TODO

  • Make SCS Generator better (find replacement for LeakyReLU?)
  • Try more datasets
  • Try smaller models without P
  • Test new SCS implementation by Lucas Nestler
  • Make p optional in SCS
  • Compare FID scores
  • Compare training time
  • Better SCS Generator without ReLU and normal conv
  • Update videos to use universally supported codec
  • Update all videos to show new architectures