Skip to content

A simple implementation of a convolutional neural network from scratch in C++

License

Notifications You must be signed in to change notification settings

AbdulFMS/cnn_from_scratch

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

14 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Neural Network in Pure C++

Simple modular implementation of a neural network in C++ using only the STL.

Installation

Get the MNIST data set:

bash get_mnist.sh

Generate your Makefile:

cmake -DCMAKE_BUILD_TYPE=Release

Make the code:

make

Run:

./neural_net_in_cpp data

The training should take about a minute and achieve ~97% accuracy.

Todos

  • Fully connected;
  • Sigmoid;
  • Dropout;
  • ReLU;
  • Tanh;
  • Leaky ReLU;
  • Batch normalization;
  • Convolutional layers;
  • Max pooling;
  • Other optimizers (Adam, RMSProp, etc);
  • Learning rate scheduler;
  • Plots;
  • Filter visualization
  • CUDA?

License

MIT

About

A simple implementation of a convolutional neural network from scratch in C++

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • C++ 97.8%
  • Shell 1.3%
  • CMake 0.9%