/Generating-Devanagari-Using-DRAW

PyTorch implementation of DRAW: A Recurrent Neural Network For Image Generation

Primary LanguagePythonApache License 2.0Apache-2.0

Generating-Devanagari-Using-DRAW

PyTorch implementation of DRAW: A Recurrent Neural Network For Image Generation on the task of generating Devanagari Characters.

Deep Recurrent Attentive Writer (DRAW) is a neural network architecture for image generation. DRAW networks combine a novel spatial attention mechanism that mimics the foveation of the human eye, with a sequential variational auto-encoding framework that allows for the iterative construction of complex images. The system substantially improves on the state of the art for generative models on MNIST, and, when trained on the Street View House Numbers dataset, it generates images that cannot be distinguished from real data with the naked eye.

Generated Data Animation

Articles

Articles: https://kuldeepsinghsidhu.blogspot.com/2019/01/generating-devanagari-using-draw.html

Difference

With Attention Without Attention

Training

Download the data and place it in the data/ directory. Run train.py to start training. To change the hyperparameters of the network, update the values in the param dictionary in train.py.

Loss Curve

Training Loss Curves

Generating New Images

To generate new images run generate.py.

python3 evaluate.py -load_path /path/to/pth/checkpoint -num_output n

The checkpoint file for the model trained for 50 epochs is present in checkpoint/ directory.

Results

Devanagari Training Data Generated Devanagari After 50 Epochs
Devanagari Numbers Only Training Data Generated Devanagari Numbers After 50 Epochs

Some more generated images:

References

  1. Karol Gregor, Ivo Danihelka, Alex Graves, Danilo Jimenez Rezende, Daan Wierstra. DRAW: A Recurrent Neural Network For Image Generation. [arxiv]
  2. ericjang/draw [repo]
  3. What is DRAW (Deep Recurrent Attentive Writer)? [blog]

Data

The Devanagari Character dataset is available on kaggle. (Source)

CREDITS

Kuldeep Singh Sidhu

Github: github/singhsidhukuldeep https://github.com/singhsidhukuldeep

Website: Kuldeep Singh Sidhu (Website) http://kuldeepsinghsidhu.com

LinkedIn: Kuldeep Singh Sidhu (LinkedIn) https://www.linkedin.com/in/singhsidhukuldeep/