|
OpenNN
Open-source neural networks library
|
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.
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 |
Dense, DenseRelu, Convolutional, ConvolutionalRelu, Pooling, Pooling3d, Recurrent, Embedding, MultiHeadAttention, Normalization3d, Scaling, Unscaling, Bounding, Addition, Flatten.
AdaptiveMomentEstimation (Adam), StochasticGradientDescent (SGD), QuasiNewtonMethod (BFGS), LevenbergMarquardtAlgorithm.
The example below loads iris.csv, builds a small MLP for regression and trains it with Adam. See ApproximationNetwork for the architecture used here.