Simple modular implementation of a neural network in C++ using only the STL.
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.
- 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?
MIT