fast, flexible C++ machine learning library


mlpack is a community-led effort, and so the code is not possible without the community. Since mlpack is an open-source project, anyone is welcome to beome a part of the community and contribute. There is no need to be a machine learning expert to participate—often, there are many tasks to be done that don’t require in-depth knowledge.

Over the past several years, mlpack has participated in Google Summer of Code. For more information, see this page.

All mlpack development is done on GitHub. In addition to that, we use:

getting involved

Everyone is welcome to contribute to mlpack. But before becoming a contributor, it’s often useful to understand mlpack as a user. So, a good place to start is to download mlpack and use the Python bindings or the command-line programs to perform machine learning tasks. You can also write C++ programs to perform machine learning tasks with mlpack; here are some basic examples.

Once you have an idea of what’s included in mlpack and how a user might use it, then a good next step would be to set up a development environment. Once you have that set up, you can build mlpack from source and explore the codebase to see how it’s organized. It may even be useful to try and make small changes to the code, then rebuild the command-line programs and see what your changes did.

Now you’re set up to contribute! There are lots of ways you can contribute. Here are a couple ideas:

  • Help others figure out their mlpack issues and questions. Here is a list of Github issues tagged question. Helping others figure out their problems is really one of the best ways to learn about the library.

  • Find an issue that needs implementation help; here is a list of Github issues tagged help wanted; and here is a list of Github issues tagged good first issue. Once you open a PR that passes all the continuous integration tests, the community will review it and get it merged into the codebase.

  • Find an abandoned pull request; here is a list of pull requests that were closed for inactivity. Often these have comments that need to be addressed, but the original author didn’t have time to finish the work. So, you can pick up where they left off!

  • Implement a new machine learning algorithm that mlpack doesn’t currently have.

  • Take a look at the ideas on the Google Summer of Code Ideas List and see if you find any of them interesting or exciting. Even if you’re not planning to do Summer of Code, it’s okay to take these ideas and implement them separately.

  • Do some timing on an existing machine learning algorithm implemented by mlpack, and try to make it faster.

  • If you find a bug or have a problem, open an issue for it—issue templates are provided to make reporting easier.


Below is a list of contributors to mlpack. Without their hard work, this software would not be possible.

  • Ryan Curtin
  • Bill March
  • Dongryeol Lee
  • Nishant Mehta
  • Parikshit Ram
  • James Cline
  • Sterling Peet
  • Matthew Amidon
  • Neil Slagle
  • Ajinkya Kale
  • Vlad Grantcharov
  • Noah Kauffman
  • Rajendran Mohan
  • Trironk Kiatkungwanglai
  • Patrick Mason
  • Marcus Edel
  • Mudit Raj Gupta
  • Sumedh Ghaisas
  • Michael Fox
  • Ryan Birmingham
  • Siddharth Agrawal
  • Saheb Motiani
  • Yash Vadalia
  • Abhishek Laddha
  • Vahab Akbarzadeh
  • Andrew Wells
  • Zhihao Lou
  • Udit Saxena
  • Stephen Tu
  • Jaskaran Singh
  • Shangtong Zhang
  • Hritik Jain
  • Vladimir Glazachev
  • QiaoAn Chen
  • Janzen Brewer
  • Trung Dinh
  • Tham Ngap Wei
  • Grzegorz Krajewski
  • Joseph Mariadassou
  • Pavel Zhigulin
  • Andy Fang
  • Barak Pearlmutter
  • Ivari Horm
  • Dhawal Arora
  • Alexander Leinoff
  • Palash Ahuja
  • Yannis Mentekidis
  • Ranjan Mondal
  • Mikhail Lozhnikov
  • Marcos Pividori
  • Keon Kim
  • Nilay Jain
  • Peter Lehner
  • Anuraj Kanodia
  • Ivan Georgiev
  • Shikhar Bhardwaj
  • Yashu Seth
  • Mike Izbicki
  • Sudhanshu Ranjan
  • Piyush Jaiswal
  • Dinesh Raj
  • Vivek Pal
  • Prasanna Patil
  • Lakshya Agrawal
  • Praveen Ch
  • Kirill Mishchenko
  • Abhinav Moudgil
  • Thyrix Yang
  • Sagar B Hathwar
  • Nishanth Hegde
  • Parminder Singh
  • CodeAi
  • Franciszek Stokowacki
  • Samikshya Chand
  • N Rajiv Vaidyanathan
  • Kartik Nighania
  • Eugene Freyman
  • Manish Kumar
  • Haritha Sreedharan Nair
  • Sourabh Varshney
  • Projyal Dev
  • Nikhil Goel
  • Shikhar Jaiswal
  • B Kartheek Reddy
  • Atharva Khandait
  • Wenhao Huang
  • Roberto Hueso
  • Prabhat Sharma
  • Tan Jun An
  • Moksh Jain
  • Manthan-R-Sheth
  • Namrata Mukhija
  • Conrad Sanderson
  • Thanasis Mattas
  • Shashank Shekhar
  • Yasmine Dumouchel
  • German Lancioni
  • Arash Abghari
  • Ayush Chamoli
  • Tommi Laivamaa
  • Kim SangYeon
  • Niteya Shah
  • Toshal Agrawal
  • Dan Timson
  • Miguel Canteras
  • Bishwa Karki