Skip to main content

OpenNN(Open Neural Network Library)

logo

What is Neural Network?

neuralnetwork

It is base of Deep learning which is subfield of Machine learning. It is an algorithm inspired by human network. This algorithm is successful to deal with AI solutions such as Regression, Classification, Forecasting, Assosciation.

To make it simpler this is stored in Library known as Open Neural Network Library. This software library is cross platform and implemented in C++.

History:

It is developed by Startup company Artelnics, which is specialized in Artificial Intelligence. Initial development was started in 2003 at International Centre for Numerical Methods in Engineering.

In the biginning it was within the research project funded by RAMFLOOD which is a European union.

GitHub repo glance

  • Stars: 844
  • Forks: 298
  • Contributors: 24
  • Latest version: OpenNN v0.5
  • Languages: C++, Fortan, CMake, C, Cuda, Shell
  • License type: LGPL

Refer OpenNN GitHub Repository.

Working with OpenNN

We will be discussing about projects, classes, models, and many things. There is beautiful and easy tutorial about OpenNN in official website. You can refer them as well.

  • This library can be run on any system since it is written in ANSI C++.

Below are the steps to build a neural network in OpenNN

Data set:

At the begin we need to provide Data set which include Data source, Variables, Instances. This provide all information to build model.

This can called by including header file: "#include<data_set.h>". Variables varies for different problems. e.g, sepal_length, sepal_width, class etc. The instances are divided into training, selection, and testing subsets.

Neural Network:

In this step we select right architecture of neural network. This include, A scaling layer, two perception layer, A probabilistic layer.

We define it as follows:
    Tensor<Index, 1> architecture(3);
const Index hidden_neurons_number = 3;
architecture.setValues({input_variables_number, hidden_neurons_number,target_variables_number});

Training strategy:

This step is composed of Loss index, Optimization algorithm.

Model selection:

This step include selection of various models such as, Inputs selection algorithm and neuron selection algorithm.

Testing analysis:

Now its time to examine our model. Here we are using testing analysis class, which evaluates the model's generalization performance.

Firstly we do reverse process and unscale data.

    data_set.unscale_input_variable(inputs_descriptives):

Next, build testing analysis object to test our model.

    TestingAnalysis testing_analysis(&neural_network, &data_set);

Perform testing.

Model deployment:

If testing is successful, then our model of neural network is ready to predics outputs. This process is deployment. To generate output we can use:

neural_network.calculate_outputs();

Advantages of using OpenNN

OpenNN manages Bigger Data Sets efficiently. For instance, it loads data sets 1.8 times bigger than TensorFlow and PyTorch.

Faster Training

Training speed

If you want to boost your productivity OpenNN is for you. On average, OpenNN trains a model 2.508 times faster than PyTorch and 1.551 times faster than TensorFlow.

How about building neural network models without programming? Neural Designer is right software tool.It include a user interface that simplifies data entry and interpretation of results which is also developed from OpenNN.

To get familiar visit official website of Neural Designer and take demo.

Some OpenNN users

  • Airbus
  • Philips
  • University of Washington
  • Seat
  • Thales
  • acciona

Applications

  • Business intelligence(customer segmentation, churn prevention...)
  • Health care(early diagnosis, microarray analysis,...)
  • Engineering(performance optimization, predictive maintenance)

References