Code Monkey home page Code Monkey logo

emnist's Introduction

EMNIST

Developed by @coopss

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
Todo
  • Update gif with new webapp
  • Train more models
    • RCNN
    • Optimize hyperparameters
    • Add a noise (gaussian or likewise) layer to input in an attempt to boost accuracy
  • Move webapp to a host service like PythonAnywhere

Environment

Anaconda: Python 3.5.3

  • 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

A webapp for testing models generated from training.py on the EMNIST dataset

usage: server.py [-h] [--bin BIN] [--host HOST] [--port PORT]
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

emnist's People

Contributors

crazzle avatar louisgv avatar ryanjcooper 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  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  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  avatar  avatar  avatar

emnist's Issues

Can you help me with the usage?

Hi. firstly, thankyou for the wonderful work to test MNIST clissifier model that trained by keras.

but I dont get to how to run "trining.py" to get model.
I cloned your git rep and download "data/mnist_all.mat" from "http://www.cs.nyu.edu/~roweis/data.html"
and give to --file option like above.

python3 training.py --file ./mnist_all.mat

but the log sais

  File "training.py", line 57, in load_data
    mapping = {kv[0]:kv[1:][0] for kv in mat['dataset'][0][0][2]}
KeyError: 'dataset'

looks like the .mat file data is wrong.

can you tell me what .mat file I have to use and explain more about usage?

thank you

No such file or directory: 'bin/mapping.p'

When running training.py, it looks for a file in 'bin/', which as far as I can tell, doesn't exist. My assumption is that on your local repo there was a ./bin/ directory but git ignored it when pushing?

Lowercase letters.

Hey,

Is there a way to extract lowercase letters alone? I noticed that they are merged with its uppercase counterparts. I'm working with "letters" dataset.

Thanks in advance.

Pretrained model files

Do you have trained model files you could share? I just wanted to test the model and it would be great if you could share the model files.

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.