Multi-layer perceptron a.k.a Neural Network library.
A basic neural network framework from scratch in C++ without any 3rd-party dependencies.
The goal is to create a model powerful enough to solve the handwritten digit classification problem with reasonable training time and test accuracy.
Progress:
- Neural network with configurable architecture
- Gradient descent using backpropagation
- Gradient descent with momentum
- Hardware acceleration (SIMD, multi-threading)
- Dataset processing (one-hot encoding/decoding, shuffling, batching, ...)
- Data and model serialization
- Metrics for model evaluation
- Output layer softmax activation
- Categorical cross-entropy loss function
- Better weight initialization
- Adam optimizer
Copy the mlp.h header file to your working directory.
Look at the examples and the source code if you want to learn more.
You will need a C++ compiler that supports C++11.
./build.sh
To build with g++:
CXX=g++ ./build.sh
This project is licensed under the MIT License.