All Projects → aalind0 → GAN-auto-write

aalind0 / GAN-auto-write

Licence: other
Generative Adversarial Network that learns to generate handwritten digits. (Learning Purposes)

Programming Languages

Jupyter Notebook
11667 projects

Projects that are alternatives of or similar to GAN-auto-write

Adventures-with-GANS
Showcasing various fun adventures with GANs
Stars: ✭ 13 (-27.78%)
Mutual labels:  generative-adversarial-network, gan
The Gan World
Everything about Generative Adversarial Networks
Stars: ✭ 243 (+1250%)
Mutual labels:  generative-adversarial-network, gan
Gif
GIF is a photorealistic generative face model with explicit 3D geometric and photometric control.
Stars: ✭ 233 (+1194.44%)
Mutual labels:  generative-adversarial-network, gan
Anogan Tf
Unofficial Tensorflow Implementation of AnoGAN (Anomaly GAN)
Stars: ✭ 218 (+1111.11%)
Mutual labels:  generative-adversarial-network, gan
IrwGAN
Official pytorch implementation of the IrwGAN for unaligned image-to-image translation
Stars: ✭ 33 (+83.33%)
Mutual labels:  generative-adversarial-network, gan
Gan steerability
On the "steerability" of generative adversarial networks
Stars: ✭ 225 (+1150%)
Mutual labels:  generative-adversarial-network, gan
GAN-Project-2018
GAN in Tensorflow to be run via Linux command line
Stars: ✭ 21 (+16.67%)
Mutual labels:  generative-adversarial-network, gan
Triple Gan
See Triple-GAN-V2 in PyTorch: https://github.com/taufikxu/Triple-GAN
Stars: ✭ 203 (+1027.78%)
Mutual labels:  generative-adversarial-network, gan
srgan
Pytorch implementation of "Photo-Realistic Single Image Super-Resolution Using a Generative Adversarial Network"
Stars: ✭ 39 (+116.67%)
Mutual labels:  generative-adversarial-network, gan
Semantic Pyramid for Image Generation
PyTorch reimplementation of the paper: "Semantic Pyramid for Image Generation" [CVPR 2020].
Stars: ✭ 45 (+150%)
Mutual labels:  generative-adversarial-network, gan
Ranksrgan
ICCV 2019 (oral) RankSRGAN: Generative Adversarial Networks with Ranker for Image Super-Resolution. PyTorch implementation
Stars: ✭ 213 (+1083.33%)
Mutual labels:  generative-adversarial-network, gan
AdvSegLoss
Official Pytorch implementation of Adversarial Segmentation Loss for Sketch Colorization [ICIP 2021]
Stars: ✭ 24 (+33.33%)
Mutual labels:  generative-adversarial-network, gan
Artgan
ArtGAN: This work presents a series of new approaches to improve Generative Adversarial Network (GAN) for conditional image synthesis and we name the proposed model as “ArtGAN”. Implementations are in Caffe/Tensorflow.
Stars: ✭ 210 (+1066.67%)
Mutual labels:  generative-adversarial-network, gan
Pytorch Cyclegan And Pix2pix
Image-to-Image Translation in PyTorch
Stars: ✭ 16,477 (+91438.89%)
Mutual labels:  generative-adversarial-network, gan
Gan Sandbox
Vanilla GAN implemented on top of keras/tensorflow enabling rapid experimentation & research. Branches correspond to implementations of stable GAN variations (i.e. ACGan, InfoGAN) and other promising variations of GANs like conditional and Wasserstein.
Stars: ✭ 210 (+1066.67%)
Mutual labels:  generative-adversarial-network, gan
Adgan
The Implementation of paper "Controllable Person Image Synthesis with Attribute-Decomposed GAN"
Stars: ✭ 239 (+1227.78%)
Mutual labels:  generative-adversarial-network, gan
Arbitrary Text To Image Papers
A collection of arbitrary text to image papers with code (constantly updating)
Stars: ✭ 196 (+988.89%)
Mutual labels:  generative-adversarial-network, gan
Iseebetter
iSeeBetter: Spatio-Temporal Video Super Resolution using Recurrent-Generative Back-Projection Networks | Python3 | PyTorch | GANs | CNNs | ResNets | RNNs | Published in Springer Journal of Computational Visual Media, September 2020, Tsinghua University Press
Stars: ✭ 202 (+1022.22%)
Mutual labels:  generative-adversarial-network, gan
Video prediction
Stochastic Adversarial Video Prediction
Stars: ✭ 247 (+1272.22%)
Mutual labels:  generative-adversarial-network, gan
catgan pytorch
Unsupervised and Semi-supervised Learning with Categorical Generative Adversarial Networks
Stars: ✭ 50 (+177.78%)
Mutual labels:  generative-adversarial-network, gan

GAN-auto-write

Generative Adversarial Network that learns to generate handwritten digits. Trained on the MNIST dataset. I have made this repository solely for learning GAN's and their working mechanism. Thanks to all the online materials available, O'Reilly Network and yes Ian Goodfellow.

Requirements and installation

In order to run auto_write.ipynb , you'll need TensorFlow version 1.0 or later and NumPy. You'll additionally need Jupyter and matplotlib.

Dataset

We'll be using MNIST dataset here, a benchmark dataset in deeplearning. It consists of 70,000 images of handwritten digits compiled by the U.S. National Institute of Standards and Technology from Census Bureau employees and high school students.

The data is provided here in the MNIST_data folder. Or if you want you can get it from the link above.

GAN Architecture

Generative adversarial networks consist of two models: a generative model and a discriminative model. GAN Architecture

The discriminator model is a classifier that determines whether a given image looks like a real image from the dataset or like an artificially created image. This is basically a binary classifier that will take the form of a normal convolutional neural network (CNN).

The generator model takes random input values and transforms them into images through a deconvolutional neural network. Over the course of many training iterations, the weights and biases in the discriminator and the generator are trained through backpropagation. The discriminator learns to tell "real" images of handwritten digits apart from "fake" images created by the generator. At the same time, the generator uses feedback from the discriminator to learn how to produce convincing images that the discriminator can't distinguish from real images.

GAN Superpowers -

Here comes my favourite part about training GAN's. GAN's have two loss functions: one that encorages the generator to make better and better images and the other that encourages the discriminator to distinguish generated images form the real images.

Thus both the generator and the discriminator are being trained simultaneously. Now as the disciminator gets better and better at distinguishing the real images form the generated images, the generator is able to better tune its weights and biases to create more and more convincing images of handwritten text.

Some results -

  1. Sample image from MNIST dataset. We have to obtain an image similar to this from our trained generator.

  2. Image from our untrained generator.

  3. Image after training the generator.

    The images generated by the trained generator are much similar to the handwritten text thus proving that GAN's can be used to create synthetic data similar to some known input data.

Some GIF's of the process -

During training it gradually refines it's ability to generate digits.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].