AbdulFMS / cnn_from_scratch

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

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

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++

License:MIT License


Languages

Language:C++ 97.8%Language:Shell 1.3%Language:CMake 0.9%