C++ machine learning framework

Ok, so after a few days of on and off searching, I think I can pretty safely say that there is no such thing. None of the existing libs provide anything even close to the level of sophistication of Encog, and since one of the main reasons I wanted it in C++ was the fact that I kind of need QT integration, I suppose I'll just end up using Encog and Jambi.

Anyway, to those who stumble upon this somewhat later on / from Google, there's basically three frameworks/libraries that do offer somewhat reasonable features, and they should really be enough if you don't want LMA, PSO, annealing or any of that more exotic stuff:

  • Shark
  • dlib, also mentioned by ffh
  • OpenCV's ML library mentioned by rics

That's pretty much it. The rest is immature/dead or just really too lacking functionality-wise to mention. If I ever decide to roll my own project (quite possible, as I pretty much need it for work), I'll be sure to update this place with a link.


The mloss repository has a number of C++ based open source machine learning frameworks. Personally, I find dlib quite useful.


Encog is in the process of being ported to C/C++.

https://github.com/encog/encog-c