Sign inSign up

keneandita/numnet

By keneandita

Updated about 1 year ago

a machine learning app that recognizes handwritten numbers and predicts which.

Image
0

275

keneandita/numnet repository overview

Project Summary

This repository contains a containerized version of NumNet, a neural network for classifying handwritten digits (0–9) using the MNIST dataset. Built with TensorFlow and Keras, NumNet demonstrates core deep learning techniques in a clean and accessible format. The project includes both a training pipeline and a Flask-based web interface for predicting digits from user-provided images.

The Docker container ensures a consistent runtime environment, enabling users to run the application without manually installing dependencies or configuring Python and TensorFlow.


Architecture Overview

NumNet integrates a simple CNN architecture with a web-based interface:

  • Neural Network Model: Built with TensorFlow/Keras, trained on MNIST digits to classify images from 0–9. Achieves approximately 91% test accuracy.
  • Training Pipeline: Includes a Jupyter Notebook (Training_Notebook.ipynb) and a script (Train.py) for training or retraining the model.
  • Model Exporting: Trained models are stored in the models/ folder as NumNet.keras for immediate deployment.
  • Web Interface: Flask backend (app.py) serves predictions via a simple UI where users can submit images of handwritten digits.
  • Container Environment: Docker encapsulates Python, TensorFlow, Flask, and required libraries for reproducible deployment.

This architecture provides a full workflow from data preparation, model training, and evaluation to interactive digit prediction.


Key Features

Handwritten Digit Classification

Classifies digits 0–9 from images using a CNN model trained on MNIST.

High Accuracy

Achieves 91% accuracy on test data, providing a reliable baseline for experimentation.

Training & Model Export

Supports both interactive training via Jupyter Notebook and scripted training via Train.py. Exported models are stored for immediate use.

Flask Web Interface

Users can upload or draw digits and receive real-time predictions through a lightweight UI.

Containerized Deployment

Docker image encapsulates all dependencies, enabling consistent execution across systems without local setup.


How to Run

First, pull the Docker image:

docker pull keneandita/numnet

Run the container while exposing the Flask port:

docker run -p 5000:5000 keneandita/numnet

After the container starts, open the web app in a browser:

http://localhost:5000

Users can then submit images of handwritten digits to receive real-time predictions. Alternatively, the model can be trained manually using Train.py or the Jupyter notebook if the exported model is not already available.

Tag summary

Content type

Image

Digest

sha256:c010abf26

Size

889.5 MB

Last updated

about 1 year ago

docker pull keneandita/numnet