GithubHelp home page GithubHelp logo

handwritingnet's Introduction

Hand Writing RNN

This RNN is a reconstruction of Alex Graves' work presented in his paper: http://arxiv.org/abs/1308.0850

alt tag

Dataset

Data was provided by the IAM On-Line Handwriting Database http://www.fki.inf.unibe.ch/databases/iam-on-line-handwriting-database

alt tag

Model

The model is precisely the same as the one presented in the paper above. Essentially, this is an RNN with three LSTM layers, a windowing layer that learns attention for each character in the input string, and a mixture of Gaussians criterion layer.

To train the model:

th driver.lua -inputSize INPUT_DIMENSION -hiddenSize LSTM_UNIT_SIZE 
-lr LEARNING_RATE -maxlen MAXIMUM_NUMBER_OF_TIMESTEPS 
-batchSize BATCH_SIZE_OF_DATA -numPasses NUMBER_OF_PASSES
-valData PATH_TO_VALIDATION_DATA -trainData PATH_TO_TRAINING_DATA

Explore driver.lua for command options. Including specifying a validation and training set. Currently toy.t7 is provided, but a larger training set can be created by downloading the IAM handwriting database and following the directions in Graves' paper: http://www.fki.inf.unibe.ch/databases/iam-on-line-handwriting-database

Results

  • Each multicolored line represents a new pen stroke.
th testNet.lua -string 'How are you today'

alt tag

th testNet.lua -string 'Testing testing'

alt tag

th testNet.lua -string 'this is awesome'

alt tag

  • Below is the attention plot which represents by how many timesteps the model will focus on a certain character in the string 'this is awesome' (moving in a left to right direction along each character in the string)

alt tag

handwritingnet's People

Contributors

jarmstrong2 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

handwritingnet's Issues

Error when running testnet

When running th testNet.lua the following error occurs:
unknown Torch class <nn.MixtureCriterion>

What could be the issue?

Error when running testnet:invalid arguments

I get the following error when I try to run testNet.lua. I added the line require 'cunn' to the script.

/home/derkmus/torch/install/bin/luajit: /home/derkmus/torch/install/share/lua/5.1/nn/Linear.lua:66: invalid arguments: CudaTensor number CudaTensor number FloatTensor CudaTensor
expected arguments: CudaTensor~2D [CudaTensor2D] [float] CudaTensor2D CudaTensor2D | _CudaTensor2D_ float [CudaTensor2D] float CudaTensor2D CudaTensor~2D
stack traceback:
[C]: in function 'addmm'
/home/derkmus/torch/install/share/lua/5.1/nn/Linear.lua:66: in function 'func'
.../derkmus/torch/install/share/lua/5.1/nngraph/gmodule.lua:345: in function 'neteval'
.../derkmus/torch/install/share/lua/5.1/nngraph/gmodule.lua:380: in function 'func'
.../derkmus/torch/install/share/lua/5.1/nngraph/gmodule.lua:345: in function 'neteval'
.../derkmus/torch/install/share/lua/5.1/nngraph/gmodule.lua:380: in function 'forward'
testNet.lua:108: in main chunk
[C]: in function 'dofile'
...kmus/torch/install/lib/luarocks/rocks/trepl/scm-1/bin/th:145: in main chunk
[C]: at 0x00406670

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.