Skip to content

Neural Network library for Analytical Gradient Descent.

License

Notifications You must be signed in to change notification settings

rabah-khalek/NNAD

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

DOI

NNAD

NNAD stands for Neural Network Analytic Derivatives and is a C++ implementation of the analytic derivatives of a feed-forward neural network with arbitrary architecture with respect to its free parameters. We implemented the back-propagation method using three strategies: analytic, automatic (when interfaced with ceres-solver) and numeric differentiation.

Installation

The NNAD library only relies on cmake for configuration and installation. This is done by following the standar procedure:

mkdir build
cd build
cmake .. -DCMAKE_INSTALL_PREFIX=SOME_PATH
make

Conda Installation

Alternatively, one can use Conda:

conda create -n nnad
conda install gxx_linux-64 (see https://docs.conda.io/projects/conda-build/en/latest/resources/compiler-tools.html)
cd NNAD
mkdir build && cd build
cmake .. -DCMAKE_INSTALL_PREFIX=$CONDA_PREFIX
make && make install

Documentation

A detailed documentation of the code generated with Doxygen can be found here.

Examples

A simple example of the usage of NNAD, where analytic derivatives are compared to a numerical evaluation, can be found in tests/main.cc. More elaborate examples, where NNAD is used in minimisation problems, are instead collected here.

Reference

  • Rabah Abdul Khalek, Valerio Bertone, On the derivatives of feed-forward neural networks, arXiv:2005.07039

Contacts

About

Neural Network library for Analytical Gradient Descent.

Resources

License

Stars

Watchers

Forks

Packages

No packages published