Skip to content

Training a Generative Adversarial Network (GAN) to produce grayscale images of new pokemon. Built using Keras

Notifications You must be signed in to change notification settings

Ashwins9001/PokeGAN

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

18 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

PokeGAN

Model Architecture and Functionality

Deep Convolutional Generative Adversarial Network trained on dataset of Pokemon images, uses combination of discriminator and generator networks trained against each other. Generator produces images and assigns real class label to all. Discriminator trained seperately to classify whether an image is fake or real, then its weights are frozen and it is used alongsider generator. Discriminator takes generated images and classifies them, due to generator always classifying images as real, lots of error produced initially to significantly change model weights. ReLU activation function used to ensure model weights don't change drastically. Eventually generator weights are adjusted until it can produce better samples, at which point generator can be used solely to create unique new Pokemon.

Model Improvements and Design Process

Initially used GAN-implementation in Keras to produce single-channel (red) colour images of the Pokemon. In retrospect a very bad idea given pixel intensities for a single color channel aren't representative of how some Pokemon actually look. Attempted to change Keras architecture to generate RGB images of Pokemon, however ran into issues with tensor dimensionality when producing generator.

Switched over to PyTorch implementation of GAN for RGB images of Pokemon. Designing tensor dimensionality of discriminator and generator much easier in PyTorch. Generated images show the general form and colours but lack resolution and take a long time to train.

Training GANs is very taxing due to two networks being compared and no single cost function indicative of training improvement and convergence. Often to evaluate model performance, must check if generated images are sufficient manually. In future can attempt different architecture or try tuning hyperparameters.

Overview

  • Create and train discriminator
  • Create and train generator
  • Create and train GAN
  • Sample from GAN for testing
  • Train GAN on colour images
  • Improve training results
  • Improve image resolution

About

Training a Generative Adversarial Network (GAN) to produce grayscale images of new pokemon. Built using Keras

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published