MNIST CNN from scratch
CNN to classify digits coded from scratch using cross-entropy loss and Adam optimizer.
This CNN has two convolutional layers, one max pooling layer, and two fully connected layers, employing cross-entropy as the loss function. To use this, load the mnist data into your Workspace, and run main_cnn. Parameters for training (number of epochs, batch size) can be adapted, as well as parameters pertaining to the Adam optimizer.
Trained on 1 epoch, the CNN achieves an accuracy of 95% on the test set. Accuracy may be improved by parameter tuning, but I coded this to construct the components of a typical CNN. Functions for the calculation of convolutions, max pooling, gradients (through backpopagation), etc. can be adapted for other architectures.
Cite As
Sabina Stefan (2026). MNIST CNN from scratch (https://github.com/sstefan01/MNIST_CNN_from_scratch), GitHub. Retrieved .
MATLAB Release Compatibility
Platform Compatibility
Windows macOS LinuxCategories
- Image Processing and Computer Vision > Computer Vision Toolbox > Recognition, Object Detection, and Semantic Segmentation >
Tags
Discover Live Editor
Create scripts with code, output, and formatted text in a single executable document.
Versions that use the GitHub default branch cannot be downloaded
| Version | Published | Release Notes | |
|---|---|---|---|
| 1.1 | Improved speed/ fixed bugs |
|
|
| 1.0.0 |
|
