Skip to content

NeilNie/EMNIST-Keras

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

EMNIST

Initially Developed by @coopss. Original repo here.

The iOS demo for this app is coming soon...

Description

This project was intended to explore the properties of convolution neural networks (CNN) and see how they compare to recurrent convolution neural networks (RCNN). This was inspired by a paper I read that details the effectiveness of RCNNs in object recognition as they perform or even out perform their CNN counterparts with fewer parameters. Aside from exploring CNN/RCNN effectiveness, I built a simple interface to test the more challenging EMNIST dataset dataset (as opposed to the MNIST dataset)

Current Implementation
  • Multistack CNN
  • Web-applet testing environment
    • Touch screen compatible
    • Works best when letter takes up a good portion of the canvas
  • Read in .mat file
  • Currently training on the byclass dataset (direct download link)
    • See paper for more info

Environment

Please install the following tools/packages

  • Tensorflow or tensorflow-gpu (See here for more info)
  • Keras
  • Flask
  • Numpy
  • Scipy

Note: All dependencies for current build can be found in dependencies.txt

Usage

A training program for classifying the EMNIST dataset

usage: training.py [-h] --file [--width WIDTH] [--height HEIGHT] [--max MAX] [--epochs EPOCHS] [--verbose]
Required Arguments:
-f FILE, --file FILE  Path .mat file data
Optional Arguments
-h, --help            show this help message and exit
--width WIDTH         Width of the images
--height HEIGHT       Height of the images
--max MAX             Max amount of data to use
--epochs EPOCHS       Number of epochs to train on
--verbose         Enables verbose printing
Optional Arguments:
-h, --help   show this help message and exit
--bin BIN    Directory to the bin containing the model yaml and model h5 files
--host HOST  The host to run the flask server on
--port PORT  The port to run the flask server on