Generating Devanagari Using DRAW
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.
GitHub Code Repo
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
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
- Karol Gregor, Ivo Danihelka, Alex Graves, Danilo Jimenez Rezende, Daan Wierstra. DRAW: A Recurrent Neural Network For Image Generation. [arxiv]
- ericjang/draw [repo]
- What is DRAW (Deep Recurrent Attentive Writer)? [blog]
Data
The Devanagari Character dataset is available on kaggle. (Source)
You can also find me on linkedin. I’d love to hear from you if I can help you or your team with machine learning.
Comments
Post a Comment