Skip to content

Simple self-written ANN powered by NumPy to classify handwritten digits of the famous MNIST Dataset. ✍️

License

Notifications You must be signed in to change notification settings

MattMoony/ann_mnist

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

12 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

MNIST Handwritten Digits:
A Simple ANN Classifier

GitHub GitHub top language GitHub Repo stars


A (hopefully) well-structured and easy to understand Jupyter notebook outlining some machine-learning basics with the help of a self-written adjustable neural network using purely the power of the brilliant NumPy module. I originally decided against using any mainstream machine-learning modules such as TensorFlow, PyTorch, Caffe, etc. in order to acquire a deeper understanding about the mathematics and tech behind deep neural networks.

Check out the notebook here!

📂 Repository Structure

If you want to clone this repository and run the notebook locally, then don't forget to install the dependencies, but most importantly, don't forget to also download the official MNIST Handwritten Digits Dataset and place it in the right place.

ann_mnist/
 |- data/                           // dataset directory
   |- t10k-images-idx3-ubyte.gz     // test features
   |- t10k-labels-idx1-ubyte.gz     // test labels
   |- train-images-idx3-ubyte.gz    // train features
   |- train-labels-idx1-ubyte.gz    // train labels
 |- media/                          // media for README.md
   |- ...
 |- snaps/                          // generated media
   |- ...
 |- main.ipynb                      // main jupyter notebook
 |- main.py                         // legacy, 2019 code (fashion dataset)
 |- notebook.py                     // code-only version of notebook
 |- ...

🔍 Want More?

Some of my other machine-learning repositories that I might do a makeover on soon as well. For references to other (perhaps more interesting) reads, check out the articles I linked to every now and then in the notebook.

  • ConvNet - MNIST Dataset [2019] ... Using a convolutional neural network to classify handwritten digits
  • RNN (LSTM) - Goethe Texts [2019] ... Using a recurrent neural network (long short term memory) to generate characters in a "Goethe-like" manner
  • ConvNet - Style Transer [2019] ... Using PyTorch and the VGG16 network to transfer artists' styles onto digital images
  • ConvNet - Deep Dream [2019] ... Using PyTorch and GoogLeNet to generate mind-blowing images using a neural network's "imagination"

... Matthias Monschein (September 2021)