MNIST CNN from scratch

Version 1.1 (10.9 MB) by Sabina Stefan
CNN to classify digits coded from scratch
308 Downloads
Updated 12 Feb 2020

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
Created with R2019a
Compatible with any release
Platform Compatibility
Windows macOS Linux
Categories
Find more on Recognition, Object Detection, and Semantic Segmentation in Help Center and MATLAB Answers

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Versions that use the GitHub default branch cannot be downloaded

Version Published Release Notes
1.1

Improved speed/ fixed bugs

1.0.0

To view or report issues in this GitHub add-on, visit the GitHub Repository.
To view or report issues in this GitHub add-on, visit the GitHub Repository.