Skip to content

julienroyd/competitive_gradient_descent

Repository files navigation

competitive_gradient_descent

A pytorch implementation of Competitive Gradient Descent (CGD). Also check the original implementation in Julia.

Requirements

Note that the versions are just the ones we used and are not necessarily hard requirements:

torch==1.3.1
torchvision==0.4.2
jupyter==1.0.0
tqdm==4.36.1
numpy==1.17.2
matplotlib==3.1.1
Pillow==6.2.1
imageio==2.6.1

CGD on scalar games

In this first set of experiment reproduction, we use a very easy to read, scalar version of CGD for more clarity. The code for these experiments can be found in exp1_scalar_games.

First game

Second and third games

CGD for training a GAN to fit a 2D gaussian mixture

In this second set of experiment reproduction, we use scaled-up implementation of the algorithm that uses Conjugate Gradient to approximately solve for CGD's update at each learning iteration as described in the original paper. The code for these experiments can be found in exp2_gaussian_mixture.

Gaussian mixture

CGD for training a GAN for image generation on MNIST

Finally we extend the experiments presented in the original paper by applying CGD to the more challenging task of image generation. The code for these experiments can be found in exp3_image_generation.

About

A pytorch implementation of Competitive Gradient Descent

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published