Qnumber is a desktop application for creating, managing, and training handwritten digit datasets with a fully interactive visual workflow.
It is designed as both:
- an educational tool for understanding how neural networks work internally
- a practical desktop environment for preparing 32×32 digit datasets, training a custom model, and testing predictions
The project combines a custom PyQt6 interface with a lightweight NumPy-based neural network engine. The goal is not to hide the mechanics behind abstraction, but to make the full pipeline visible: drawing, dataset preparation, training, inference, and inspection.
- Draw 32×32 digit images manually
- Create training and test samples
- Support for multiple visual formats and controlled experiments
- Fast sample generation workflow
- Reindex dataset files consistently
- Built-in dataset gallery
- Train and test split organization
- Sorting and browsing tools
- Delete-all actions with confirmation
- Clear file naming workflow for large datasets
- Custom feed-forward neural network engine built with NumPy
- Configurable dense architectures such as:
1024 → 128 → 64 → 101024 → 64 → 10
- Real training workflow instead of black-box wrappers
- Educational visibility into the pipeline
- Run predictions on custom samples
- Inspect model output behavior
- Useful for understanding classification confidence and failure cases
- Desktop UI built with PyQt6
- Modular page-based structure
- Designed for a dark, high-contrast workflow
- Built for direct experimentation rather than notebook-only usage
Most beginner ML tools abstract away too much. Qnumber does the opposite.
This project is built to let the user see the actual structure of a small neural network system:
- create or collect image data
- organize the dataset
- train a model
- test the model
- inspect what happens
That makes Qnumber useful not only as a utility, but as a learning instrument for machine learning fundamentals.
Clone the repository:
git clone https://github.com/milord-x/Qnumber.git
cd QnumberCreate and activate a virtual environment.
Bash or Zsh:
python3 -m venv .venv
source .venv/bin/activateFish:
python3 -m venv .venv
source .venv/bin/activate.fishInstall dependencies:
pip install -r requirements.txtRun the application:
python3 app.py| № | library | Version |
|---|---|---|
| 1 | Python | >=3.11+ |
| 2 | PyQt6 | >=6.6 |
| 3 | numpy | >=1.26 |
| 4 | Pillow | >=10.0 |
| 5 | matplotlib | >=3.8 |
Qnumber/
├── app.py
├── requirements.txt
├── assets/
│ └── archive/
├── dataset/
│ ├── train/
│ └── test/
├── ui/
│ ├── main_window.py
│ ├── pages/
│ └── widgets/
├── LICENSE
└── README.md