tetsuo-ai/DigitSuo
tetsuo-ai/DigitSuo has 48 GitHub stars and 7 forks. Star changes are not measured yet. Last checked 2026-11-11 00:06 UTC. Last push 2026-11-04.
handwritten digit recognition system using a custom neural network architecture. Built with C, it features both training capabilities and an interactive recognition interface. >98% accuracy on the MNIST dataset.
Measured star growth
- in 24h
- Update delayed
- in 7 days
- Update delayed
- in 15 days
- Update delayed
- in 1 month
- Update delayed
Net star changes over overlapping periods, not daily totals. Missing measurements are left blank. Stars measure attention, not software quality.
README.md
OriginalDigitSuo
$TETSUO on Solana
Contract Address: 8i51XNNpGaKaj4G4nDdmQh95v4FKAxw8mhtaRoKd9tE8
A neural network–based digit recognition project using the MNIST dataset.
Installation
Clone the Repository
git clone [email protected]:tetsuo-ai/DigitSuo.git cd DigitSuoInstall Dependencies
Ubuntu/Debian:
sudo apt-get install gcc libncurses-dev zlib1g-dev doxygen graphvizFedora/RHEL:
sudo dnf install gcc ncurses-devel zlib-devel doxygen graphviz
Building the Project
Use the provided Makefile for the following targets:
Recognition Interface:
makeCompiles source files in
src/into the executabledigit_recognition.Training Program:
make trainCompiles
train.cwith OpenMP support into the executabletrain.Documentation:
make docsGenerates HTML documentation in
docs/html/using Doxygen.Clean Build Artifacts:
make cleanDelete Debug Log:
make clean_debugDelete Debug Log:
make clean_docs
Usage
Training the Network
Run the training program:
./train
This will:
- Load and preprocess the MNIST dataset (files:
train-images-idx3-ubyte.gzandtrain-labels-idx1-ubyte.gz). - Apply data augmentation.
- Train the neural network.
- Save optimized weights to
src/weights.h.
Using the Recognition Interface
Run the recognition interface:
./digit_recognition
Controls
- Mouse/Arrow Keys: Draw digits
- Number Keys (0-9): Load example digits
- Enter: Submit for recognition
- C: Clear drawing
- Q: Quit application
Technical Details
Neural Network Architecture
Input Layer (784 neurons)
│
│ Dense connections with ReLU activation
│ Weights initialized using He initialization
▼
Hidden Layer (256 neurons)
│
│ Dense connections with Softmax activation
│ Xavier/Glorot initialization
▼
Output Layer (10 neurons)
Training Pipeline
Data Preprocessing
- Load the MNIST dataset with zlib decompression.
- Apply data augmentation:
- Random rotation (±10°)
- Random shifts (±5 pixels)
- Gaussian blur (σ = 0.3)
- Generate balanced mini-batches.
Optimization
- Mini-batch gradient descent with momentum.
- Learning rate decay schedule.
- Early stopping with patience.
- OpenMP for parallel processing.
Performance Metrics
- Training accuracy: >98% on the MNIST test set.
- Inference latency: <10ms per prediction.
- Memory footprint: ~2MB during inference.
- Training time: ~5 minutes on a modern CPU.
Documentation
Generating Documentation
Generate the documentation using:
make docs
Viewing Documentation
Start the documentation server:
python3 serve_docs.py
Access the documentation at http://localhost:8000.
Project Structure
.
├── Doxyfile # Doxygen configuration file
├── doxygen-custom.css # Custom CSS for documentation
├── Makefile # Build configuration
├── README.md # Project documentation
├── docs/ # Documentation directory (generated)
├── serve_docs.py # Script to serve documentation
├── train-images-idx3-ubyte.gz # MNIST training images (compressed)
├── train-labels-idx1-ubyte.gz # MNIST training labels (compressed)
├── train.c # Training program source
└── src/ # Source code for recognition interface
├── main.c
├── draw_interface.c
├── neural_net.c
├── neural_net.h
├── draw_interface.h
├── utils.c
├── utils.h
└── weights.h
Customization
Adjust neural network parameters in train.c:
#define HIDDEN_SIZE 256 // Number of hidden neurons
#define BATCH_SIZE 64 // Training batch size
#define NUM_EPOCHS 10 // Maximum training epochs
#define BASE_LR 0.1f // Initial learning rate
Explore related projects
tensorflow/tensorflow
An Open Source Machine Learning Framework for Everyone
201,505 starshuggingface/transformers
🤗 Transformers: the model-definition framework for state-of-the-art machine learning models in text, vision, audio, and multimodal models, for both inference and training.
168,815 starsAUTOMATIC1111/stable-diffusion-webui
Stable Diffusion web UI
165,289 starsComfy-Org/ComfyUI
The most powerful and modular diffusion model GUI, api and backend with a graph/nodes interface. The fastest local inference engine in the world.
146,271 stars