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.
Comment ces chiffres sont mesurés
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.
Progression mesurée des étoiles
- in 24h
- Mise à jour retardée
- in 7 days
- Mise à jour retardée
- in 15 days
- Mise à jour retardée
- in 1 month
- Mise à jour retardée
Variations nettes sur des périodes qui se chevauchent, pas des totaux quotidiens. Les mesures absentes restent vides. Les étoiles indiquent l’intérêt, pas la qualité.
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
Explorer des projets similaires
tensorflow/tensorflow
Un framework open source d'apprentissage automatique pour tous
201,505 étoileshuggingface/transformers
🤗 Transformers : le framework de définition de modèles pour les modèles d'apprentissage automatique de pointe en texte, vision, audio et multimodal, pour l'inférence et l'entraînement.
168,815 étoilesAUTOMATIC1111/stable-diffusion-webui
Interface web de Stable Diffusion
165,289 étoilesComfy-Org/ComfyUI
La GUI, l'API et le backend les plus puissants et modulaires pour les modèles de diffusion, avec une interface de graphes et de nœuds. Le moteur d'inférence local le plus rapide au monde.
146,271 étoiles