Lynx

Lynx is an open source Matlab toolbox, designed for fast prototyping of supervised machine learning simulations. It allows to create a complex simulation in a human-understandable way, and supports parallelization over multiple machines and on the GPU transparently. It is released under BSD-2 license on GitHub:

https://github.com/ispamm/Lynx-Toolbox

The simulation is defined in a configuration file, and the toolbox takes charge of all the requirements, including data loading, training, and testing. As an example, this is a configuration file for testing a single multilayer perceptron on a UCI dataset:

A modular wrapping system is used to provide additional functionalities to any algorithm. Continuing the previous example, the following code instructs Lynx to perform a search for the optimal feature subset, and to save the resulting model of the multilayer perceptron:

If you possess a computer with a large number of cores, or if you are working in a distributed environment, the simulation is parallelized by enabling a single flag:

GPU acceleration is enabled in a similar way. In addition, Lynx has built-in support for defining hierarchical learning algorithms, semi-supervised learning algorithms, statistical testing procedures, and several other advanced features. For more information on it, including guided examples on the creation of new functionalities, please refer to the user manual included in the toolbox itself.

Several examples of configuration files are available in the articles’ software page.