OpenNN is a high-performance C++ library for advanced analytics built around neural networks. This is the API reference; for tutorials and step-by-step guides please visit opennn.net.
The library is developed by Artelnics. The source code lives at github.com/Artelnics/OpenNN.
Core classes
A typical OpenNN program revolves around five classes that work together:
| Class | Role |
|---|---|
| Dataset | Data loading, partitioning, scaling, statistics |
| NeuralNetwork | Architecture definition and layer management |
| TrainingStrategy | Pairs an optimizer with a loss and runs training |
| ModelSelection | Hyperparameter and architecture search |
| TestingAnalysis | Model evaluation on held-out data |
Layer types
Dense, DenseRelu, Convolutional, ConvolutionalRelu, Pooling, Pooling3d, Recurrent, Embedding, MultiHeadAttention, Normalization3d, Scaling, Unscaling, Bounding, Addition, Flatten.
Optimizers
AdaptiveMomentEstimation (Adam), StochasticGradientDescent (SGD), QuasiNewtonMethod (BFGS), LevenbergMarquardtAlgorithm.
First program
The example below loads iris.csv, builds a small MLP for regression and trains it with Adam. See ApproximationNetwork for the architecture used here.
Navigating the reference
- Class List — every class in alphabetical order.
- Class Index — alphabetical index by name.
- File List — by header file.
Resources
- Tutorials: https://www.opennn.net/tutorials/
- License: GNU Lesser General Public License v2.1 or later.
- Issues / contributions: https://github.com/Artelnics/OpenNN