Skip to content

Simple convolutional neural network (purely numpy) to classify the original MNIST dataset. My first project with a convnet. 🖼

Notifications You must be signed in to change notification settings

MattMoony/convnet_mnist

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

16 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

ConvNet - MNIST Dataset

Simple ConvNet classifying MNIST data


About

This is supposed to be a little test project. I want to play around with convolutional layers, pooling layers, normalization strategies (dropout, batch normalization), training algorithms (Vanilla SGD, SGD w. Momentum, etc.) and much more.

To-Do

  • Dataset preparation
  • Simple weight initialization
  • Advanced weigth initialization (Xavier initialization, etc.)
  • Convolution-Function
  • Pooling Layers (Max-Pooling, Average-Pooling, etc.)
  • Dropout
  • Batch Normalization
  • Activation-Function (ReLU)
  • Loss-Function (Cross Entropy)
  • Gradient-Computation Function
  • Stochastic Mini Batch Gradient Descent
  • Advanced SGD (Momentum, RMSprop, Adam, etc.)
  • J/epoch-Graph
  • Graphical representation of convolutional Layers
  • Prediction-Function
  • Model evaluation (Accuracy)
  • ... probably more to come ...

Results

Best accuracy so far: 93.14%

J/Epoch-Graphs J/Epoch-Graph over 1024 iterations ...

Convolutions1 Convolutions2 Convolutional weights & activations (examples: 8, 5)


... MattMoony (August, 2019)