capstone

PDX Code Guild - Capstone Project - Neural Net based Digit Guesser

View the Project on GitHub

finnegan

by Cole Howard

A custom neural net for recoginzing handwritten digits, with a serious nod to I Am Trask. The neural net is pre-trained on the MNIST dataset (run on an AWS instance). And the user input is rescaled and tested.

Build Status Documentation Status

sketch.js is a library created by Michael Bleigh to allow the user to draw the image of a digit. It has been modified to pull a drawn image from the page before being resized and sent to the neural network for classifaciton.

To Get Started

Requires running PostgreSQL server. Create a new database named ‘netdb’

createdb netdb

Clone the repo locally, then install the requirements:

pip install -r requirements.txt
python3 manage.py loaddata guess/fixtures/initial_data.json
python3 manage.py runserver

Then navigate to localhost:8000 on your browser and draw away1

The baseline architecture of the original hand rolled neural net is on Github, here, and the code for the webapp (including Finnegan) be found here.

Full documentation hosted here

To adjust hyper-parameters or choose dataset: Open net_launch.py and adjust as needed at the bottom of the file. The dataset can be switched by commenting out the appropriate line at the bottom and uncommneting the other. Or simply:

from Network import network

And feed it the appropriate parameters.

TODO

Documentation is out of date, as the custom neural network was since trained on a convolutional neural net trained on affine transformations of the original MNIST dataset.