a scalable C++ machine learning library

mlpack is a C++ machine learning library with emphasis on scalability, speed, and ease-of-use. Its aim is to make machine learning possible for novice users by means of a simple, consistent API, while simultaneously exploiting C++ language features to provide maximum performance and maximum flexibility for expert users. This is done by providing a set of command-line executables which can be used as black boxes, and a modular C++ API for expert users and researchers to easily make changes to the internals of the algorithms.

As a result of this approach, mlpack outperforms competing machine learning libraries by large margins; the handful of publications relating to mlpack demonstrate this.

mlpack is developed by contributors from around the world. It is released free of charge, under the 3-clause BSD License. (Versions older than 1.0.12 were released under the GNU Lesser General Public License: LGPL, version 3.)

mlpack bindings for R are provided by the RcppMLPACK project.

lightbulb_outline View ideas list


  • c++


comment IRC Channel
email Mailing list
mail_outline Contact email

mlpack 2017 Projects

  • Dewang Sultania
    Better Benchmarking for mlpack Libraries
    There are many mlpack methods that have been added since the previous benchmarking system was build and they need to be benchmarked. These include...
  • Kirill Mishchenko
    Cross-Validation and Hyper-Parameter Tuning
    Solving a problem with machine learning algorithms is often a tedious process that requires many experiments before things start to work. The project...
  • Kris Singh
    Deep Learning Modules
    Implementation of RBM, ssRBM, GAN and stacked GAN
  • Chenzhe Diao
    Frank-Wolfe Algorithm for Sparse Optimization and Regularization of Atom Norms
    It is known in Jaggi's paper that the traditional OMP algorithm for sparse optimization problems could fit into FW type algorithm. This generalized...
  • Konstantin Sidorov
    GSoC '17 "Augmented RNNs" project proposal
    I am applying to work on the GSoC 2017 Augmented RNNs project. I am currently a first-year Software Engineering student from Astrakhan State...
  • Saurabh Gupta
    GSoC-2017: Build testing with Docker and VMs
    The objectives of the project are as: Completing the build matrix - testing on different compilers, different architectures, different Boost...
    Neural Evolution Algorithms on NES games
    The goal of my project is to implement multiple neural evolution algorithms ie. ● NEAT - Neural Evolution through Augmented Topologies ● Hyper-NEAT -...
  • Sumedh Ghaisas
    Neural Turing Machines
    One of the gems dug up by Deep Mind in the field of neural learning is Neural Turing Machines. By extending the capabilities of a simple neural...
  • Shikhar Bhardwaj
    Parallel stochastic optimization methods
    The free lunch is over and with the ever increasing amounts of data to be analyzed and processed by learning algorithms, we need to find methods for...
  • Shangtong Zhang
    Reinforcement Learning Framework
    This projects will implement a framework for double deep Q-Learning and some asynchronous methods for DeepRL including asynchronous one-step...