A feedforward multithreaded neural network written from scratch in C++26.
- GCC 13+, Clang 17+, or MSVC 19.36+
- CMake 3.20 or newer
cmake -S . -B build
cmake --build build -jctest --test-dir build --output-on-failure./build/NeuralNetworkAvailable data:
- car.data
- mnist
- Randomly Generated Data
- car.data - the UCI Car Evaluation set, bundled in
datasets/car/. 1,728 samples, six categorical attributes one-hot encoded into 21 inputs, four output classes. Trains to ~100% test accuracy very quickly. - mnist - handwritten digits. The CSVs are not included. Download
mnist_train.csvandmnist_test.csvfrom pjreddie.com/projects/mnist-in-csv and place them indatasets/mnist/. - Randomly Generated Data - synthetic samples whose target is the index of the largest input feature. Useful for smoke-testing a topology without any data on disk.
Trained weights are written to nn_data/ as binary files.
MIT LICENSE.
By MattFor