This page gives a gentle introduction into Shark. The quick tutorial section gives an introduction into the most important core components. For neural network training, following the neural entwork tutorials is very helpful for a first step. If you are already familiar with the Shark architecture, the documentation of the key concepts and list of classes can be found below:

Concept Class List
Models List
Loss and Cost Functions List
Optimizers Gradient-Based Optimization, Direct-Search Optimizers, Multi-Objective Optimizers
Objective Functions List
Trainers Supervised Trainers, Unsupervised Trainers
Kernels List

Quick tutorial

In case ou are new to Shark, we give you a quick tour over the core components. We first show how to set up either a traditional Makefile or a CMake file for your application program. Then we move on to a simple Hello-World example of what linear binary classification can look like in Shark. The third tutorial illustrates the model-error-optimizer trias often encountered in Shark through a simple regression task.

Neural Networks

A very important class of machine-learning models are Neural Networks. This section discusses the creation and training of multi-layer neural networks

Data Handling

Since many machine learning algorithms work on real-world datasets, we extensively cover Shark’s Data class as well as common operations on them:

Specific Machine-Learning Algorithms

Here come tutorials for some selected algorithms implemented in Shark. It must be said that this is only the tip of the iceberg, many more machine learning algorithms and tools are provided by the library.

Let’s start with some classical methods:

Tree-based algorithms:

Kernel methods – support vector machine training and model selection:


Finally, we present functionality which are not machine learning facilities themselves, but necessary or helpful tools.

For convenience, Shark provides a statistics class wrapper, as well as generic support for serialization:

For Shark developers

Note that Shark follows a

If you contribute to Shark, you might also find these documents helpful: