The Handwritten Number Recognition System is a deep learning model built from scratch to classify handwritten digits using a custom neural network. It is trained on the MNIST dataset and utilizes NumPy-based implementation for forward and backward propagation.
- Custom-built Neural Network: Implemented using NumPy without deep learning frameworks like TensorFlow or PyTorch.
- Forward & Backward Propagation: Includes ReLU and Tanh activation functions for optimization.
- Model Training & Evaluation: Supports training on both CPU and GPU.
- Manual & Automated Testing: Test the model using predefined test images or random inputs.
- Performance Metrics: Displays accuracy and prediction confidence.
- Python
- NumPy (for matrix computations)
- Matplotlib (for visualization)
- Pandas (for data handling)
- GPU Support (via CUDA for optimized training)
Handwritten_Number_Recognition_System/
│── data/ # Dataset storage
│── main.py # Loads trained model and tests data
│── model.npz # Saved model parameters
│── trainer.py # Trains the neural network model
│── trainOnGPU.py # Optimized training for GPU acceleration
│── README.md # Project documentation
- Clone the repository
git clone https://github.com/Uni-Creator/Handwritten_Number_Recognition_System.git cd Handwritten_Number_Recognition_System
- Install dependencies
pip install numpy pandas matplotlib
- Train the model (if needed)
python trainer.py
- Run the model for testing
python main.py
- The model loads pre-trained weights from
model.npz
ormodel.pth
. - A test image is provided for prediction.
- The model outputs a digit classification with confidence score.
- The prediction is displayed along with the corresponding test image.
- Implement CNN-based architecture for improved accuracy.
- Add a web interface for user-uploaded handwritten digit classification.
- Support for different datasets beyond MNIST.
Contributions are welcome! Feel free to open an issue or submit a pull request.
This project is licensed under the Apache-2.0 license.