This library provides neural network algorithms — activations, layers, losses, and model —
designed for robust and efficient real-time use on resource-constrained embedded systems (no heap,
deterministic, float-only). It builds on the shared numerical primitives (linear algebra, solvers,
optimization, regularization) provided by
numerical-toolbox-cpp, which it consumes
via CMake FetchContent.
The library is a set of CMake targets. Consume it from your own project with FetchContent:
include(FetchContent)
FetchContent_Declare(
neural_network_toolbox
GIT_REPOSITORY https://github.com/embedded-pro/neural-network-toobox-cpp.git
GIT_TAG main
)
FetchContent_MakeAvailable(neural_network_toolbox)
target_link_libraries(my_app PRIVATE neural_network.activation neural_network.layer neural_network.losses neural_network.model)The numerical-toolbox dependency is fetched automatically. Includes are namespaced by domain, e.g.
#include "neural_network/activation/ReLU.hpp" and — for shared primitives —
#include "numerical/math/Matrix.hpp".
| Category | Description |
|---|---|
| Neural Network | Activations, Layers, Losses, Model |
Each category page lists its algorithms with a brief description and links to the detailed documentation.
The entire documentation set is also published as a single book — read it online as a
GitHub Pages site or download the latest
PDF from the Releases page. Both are generated automatically from doc/
(cover, Summary/table of contents, one chapter per category, consolidated references, back cover).
Build it locally with Pandoc + XeLaTeX installed:
python scripts/build-booklet.py --format all # writes build/booklet/{NeuralNetworkToolbox.pdf,index.html}The simulator/ directory contains an interactive Qt-based GUI application (Neural Network) for
visualizing and experimenting with the library's algorithms. It is a desktop tool for development
and exploration, separate from the core embedded-targeted library.