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 (2024). 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
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!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 |
|