Coder Social home page Coder Social logo

bharathikannann / digit-recognition Goto Github PK

View Code? Open in Web Editor NEW
2.0 2.0 1.0 7.29 MB

An implementation of Neural Networks from scratch in python using only numpy for MNIST dataset .

Jupyter Notebook 94.05% HTML 1.36% JavaScript 4.59%
deeplearning neural-networks-from-scratch python tensorflow numpy digit-recognition digit-recognition-mnist

digit-recognition's Introduction

Digit Recognition

Getting started

  • Clone this repository https://github.com/bharathikannan1311/digit-recognition

Implementations

  1. Neural Network from Scratch - for better understanding of how neural network works.
  2. Tensorflow - the same problem solved using tensorflow.
  3. Tensorflowjs - Classifying digits in the browser.
  4. Tensorflowjs - Webcam - Classifying the sign from the webcam in the browser.
  • A simple implementation of Neural Network from scratch in python. It does not use any Deeplearning library like tensorflow and all of the functions are implemented from scratch only using numpy for better understanding of concepts and how Neural Networks work.

  • It will be much slower when compared to the same problem solved using tensorflow because we can use much better optimization techniques. This code can be used for learning purposes.

  • Here we will be using MNIST dataset for digit recognition.

  • Prerequisites

    • Numpy - Numerical scientific computing library.
    • Matplotlib - Plotting library.
    • Python-mnist - for loading mnist dataset
    • MNIST Dataset - Dataset for Digit Recognition
      • Create MNIST directory and download the dataset and store it in this directory.

This code is not as efficient and takes long time to converge and the same problem solved through tensorflow will be much efficient and we can use better optimization techniques and Convolutional Neural Networks are suitable for Image Datasets.

  • The same problem implemented in tensorflow with Convolutional Neural Networks and adam optimizer.

  • Prerequisites

  • It's accuracy on the mnist test set is about 98.9%.

Accuracy Plot

  • Implemented using Tensorflowjs library.
  • It trains the model in the browser when launched and then it then classifies the digit that we draw in the browser.

Model Architecture


Perdictions


Loss and Accuracy

  • We need to train the model in the browser by taking sign pictures as input from the webcam as training data.
  • Then we can use our model to classify for new inputs.

Video demo - link

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.