Top 23 C++ Machine learning Projects
-
tensorflow
An Open Source Machine Learning Framework for Everyone
Latest mention: Rtx 3090 Is 14 Times Slower On Inference Compared | reddit.com/r/tensorflow | 2021-01-09That does seem to be the case. TF is much slower than pytorch for training, especially in backpropogation (depending on optimizers) https://github.com/tensorflow/tensorflow/issues/42475
-
pytorch
Tensors and Dynamic neural networks in Python with strong GPU acceleration
Latest mention: [P] Implementation of RealFormer using pytorch | reddit.com/r/MachineLearning | 2020-12-27Tip: Use torch.bmm instead of torch.einsum. The former is considerably faster. Take a look at Pytorchs own MHA implementation to see how you have to do the reshaping for it.
-
tesseract
Tesseract Open Source OCR Engine (main repository)
Latest mention: How do i use matlab ocr to recognize math equations? | reddit.com/r/matlab | 2021-01-16The code looks fine, I think for whatever reason the 'MathEquations' network just does a poor job of recognizing the equations. The support package that includes the language is based on this open-source tessaract repo which seems to struggle with math equation recognition (at least based on this issue).
-
caffe
Caffe: a fast open framework for deep learning.
-
xgboost
Scalable, Portable and Distributed Gradient Boosting (GBDT, GBRT or GBM) Library, for Python, R, Java, Scala, C++ and more. Runs on single machine, Hadoop, Spark, Dask, Flink and DataFlow
-
openpose
OpenPose: Real-time multi-person keypoint detection library for body, face, hands, and foot estimation
Latest mention: Kinect + jetson nano for tracking the bodies of the persons displayed inside of screen ? | reddit.com/r/JetsonNano | 2020-12-22There probably a few projects that could help you out, the first one that comes to mind is called openpose.
-
incubator-mxnet
Lightweight, Portable, Flexible Distributed/Mobile Deep Learning with Dynamic, Mutation-aware Dataflow Dep Scheduler; for Python, R, Julia, Scala, Go, Javascript and more
Latest mention: Can Apple's M1 help you train models faster and cheaper than Nvidia's V100? | news.ycombinator.com | 2021-01-14> But you still lose something, e.g. if you use half precision on V100 you get virtually double speed, if you do on a 1080 / 2080 you get... nothing because it's not supported.
That's not true. FP16 is supported and can be fast on 2080, although some frameworks fail to see the speed-up. I filed a bug report about this a year ago: https://github.com/apache/incubator-mxnet/issues/17665
What consumer GPUs lack is ECC and fast FP64.
-
CNTK
Microsoft Cognitive Toolkit (CNTK), an open source deep-learning toolkit
-
DeepSpeech
DeepSpeech is an open source embedded (offline, on-device) speech-to-text engine which can run in real time on devices ranging from a Raspberry Pi 4 to high power GPU servers.
-
mediapipe
Cross-platform, customizable ML solutions for live and streaming media.
google/mediapipe (C++): MediaPipe is the simplest way for researchers and developers to build world-class ML solutions and applications for mobile, edge, cloud and the web.
-
dlib
A toolkit for making real world machine learning and data analysis applications in C++
-
vowpal_wabbit
Vowpal Wabbit is a machine learning system which pushes the frontier of machine learning with techniques such as online, hashing, allreduce, reductions, learning2search, active, and interactive learning.
-
catboost
A fast, scalable, high performance Gradient Boosting on Decision Trees library, used for ranking, classification, regression and other machine learning tasks for Python, R, Java, C++. Supports computation on CPU and GPU.
-
tiny-dnn
header only, dependency-free deep learning framework in C++14
-
jetson-inference
Hello AI World guide to deploying deep-learning inference networks and deep vision primitives with TensorRT and NVIDIA Jetson.
https://github.com/dusty-nv/jetson-inference#system-setup
-
Open3D
Open3D: A Modern Library for 3D Data Processing
Latest mention: LIDAR to OBJ similar to photogrammetry with Intel RealSense L515? | reddit.com/r/3DScanning | 2021-01-05 -
mlpack
mlpack: a scalable C++ machine learning library --
-
shogun
Shōgun
-
MITIE
MITIE: library and tools for information extraction
Latest mention: Is it possible to build a recommendation system or do sentiment analysis in plain c++? | reddit.com/r/AskComputerScience | 2021-01-14I would suggest you use something like LucenePlusPlus as the backbone of the system for processing the text, and maybe something like MITIE for further analysis (I've never used this to be honest).
-
deepdetect
Deep Learning API and Server in C++11 support for Caffe, Caffe2, PyTorch,TensorRT, Dlib, NCNN, Tensorflow, XGBoost and TSNE
Latest mention: [P] Benchmarking OpenBLAS on an Apple MacBook M1 | reddit.com/r/MachineLearning | 2020-12-30Interesting, thanks. Recently benchmarked inference with Vulkan/MoltenVK/NCNN, M1 GPU is roughly 30% faster than M1 CPU, https://github.com/jolibrain/deepdetect/pull/1105 for single batch inference (NCNN does not really support batch size > 1).
-
server
The Triton Inference Server provides an optimized cloud and edge inferencing solution.
I've seen this called "dynamic batching" most places at work. Nvidia has Triton Inference server which works fine for us. I'd say likely you'll get more speedup from dymamic batching on GPU than CPU depending on model architecture. The overall structure probably looks something like one inference thread, then when requests come in (from many threads) you add them to your queue, and when the queue is full or The oldest enqueued request times out, you construct your batch then run inference
-
flashlight
A C++ standalone library for machine learning
Latest mention: Facebook To Release Xlsr53 A Wav2vec 20 Model | reddit.com/r/speechtech | 2021-01-09Project moved to here: https://github.com/facebookresearch/flashlight/tree/master/flashlight/app/asr
-
frugally-deep
Header-only library for using Keras models in C++.
Index
What are some of the best open-source Machine learning projects in C++? This list will help you:
Project | Stars | |
---|---|---|
1 | tensorflow | 152,399 |
2 | pytorch | 45,558 |
3 | tesseract | 38,313 |
4 | caffe | 31,308 |
5 | xgboost | 20,386 |
6 | openpose | 19,846 |
7 | incubator-mxnet | 19,230 |
8 | CNTK | 16,958 |
9 | DeepSpeech | 16,340 |
10 | mediapipe | 10,592 |
11 | dlib | 9,803 |
12 | vowpal_wabbit | 7,393 |
13 | catboost | 5,645 |
14 | tiny-dnn | 5,287 |
15 | jetson-inference | 4,016 |
16 | Open3D | 3,914 |
17 | mlpack | 3,527 |
18 | shogun | 2,783 |
19 | MITIE | 2,560 |
20 | deepdetect | 2,192 |
21 | server | 1,743 |
22 | flashlight | 1,351 |
23 | frugally-deep | 698 |