Neural

Description

Neural is a framework developed in C++ allowing the realization of artificial neural networks. This framework includes a library for the realization of neural networks, a powerful linear algebra library (Eigen), a docker image to facilitate the implementation of CUDA and Open GL, and a graphical visualization library for displaying and debugging the neural network. This framework is easy to use, and to install. If you encounter any problems, don't hesitate to report them.

Some operations are already supported on CUDA like matrix multiplication. Other functions like cross-correlation and convolution are currently under development. For more informations about this subject, thanks to refer to Cuda Support.

Linear Algebric

The Neural API is built on the basis of Eigen. Eigen is a numerical analysis library in C++ composed of template headers.

Neural networks Components

✔ : Developed and tested

🔜 : In development

❌ : Not Implemented (but planned)

Research : In the research phase

OptimizerLayersActivationLoss

Type Status
SGD
Momentum 🔜
Nesterov 🔜
Adam
Adagrad

Type Status
Full connected (dense)
Activation
Convolution
Flatten
Pooling 🔜
Dropout 🔜
Associative Research

Type Status
Hyperbolic tangent
Sigmoid
Relu
LeakyRelu
SoftPlus
Softmax

Type Status
Mean squared error
Cross entropy
Mean Absolute error 🔜
Mean Bias Error 🔜
Hinge Loss

GUI

Neural allows the graphical display of results and functions usable from the API.

CUDA support

In order to access the power of the GPU, we use a nvidia-cuda container to configure and access the GPU easily. This containerization technology allows to have access to a runtime library and utilities to automatically configure containers to leverage NVIDIA GPUs. The GPU contextualization, allows to facilitate the application deployment, to isolate the different devices, to allow better performances in multi-GPU.