C++ Machine learning

Open-source C++ projects categorized as Machine learning

Top 23 C++ Machine learning Projects

  • GitHub repo tensorflow

    An Open Source Machine Learning Framework for Everyone

    Project mention: layer doesn't create weights when given input shape | reddit.com/r/tensorflow | 2021-02-20

    The above behavior is due to the way the Sequential.add method works. Sequential.add will build each new layer if a batch shape for the model can be detected (source). Removing the Input layer means the model has no defined batch size, which means calling add() won't cause the layers to be built - and thus the weights will not be added.

  • GitHub repo Pytorch

    Tensors and Dynamic neural networks in Python with strong GPU acceleration

    Project mention: C++ trainable semantic segmentation models | reddit.com/r/computervision | 2021-02-23

    C++ library with Neural Networks for Image Segmentation based on LibTorch.

  • Scout

    Get performance insights in less than 4 minutes. Scout APM uses tracing logic that ties bottlenecks to source code so you know the exact line of code causing performance issues and can get back to building a great product faster.

  • GitHub repo tesseract-ocr

    Tesseract Open Source OCR Engine (main repository)

    Project mention: OCR software that will let me specifiy the fonts used in the document | reddit.com/r/DataHoarder | 2021-02-12

    https://github.com/tesseract-ocr/tesseract https://tesseract-ocr.github.io/tessdoc/Fonts.html

  • GitHub repo Caffe

    Caffe: a fast open framework for deep learning.

  • GitHub repo 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

  • GitHub repo openpose

    OpenPose: Real-time multi-person keypoint detection library for body, face, hands, and foot estimation

    Project mention: Markerless Motion Capture - Turning Videos into 3D Animations | reddit.com/r/gamedev | 2021-02-13

    I just found this open source pose estimation software: https://github.com/CMU-Perceptual-Computing-Lab/openpose

  • GitHub repo mxnet

    Lightweight, Portable, Flexible Distributed/Mobile Deep Learning with Dynamic, Mutation-aware Dataflow Dep Scheduler; for Python, R, Julia, Scala, Go, Javascript and more

    Project 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.

  • GitHub repo 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.

    Project mention: Python and Speech recognition | reddit.com/r/learnpython | 2021-02-22

    Check Mozilla's common voice. It's a great project, it's easy to participate and easy to use the data. (BTW they've also released DeepSpeech for speech recognition.)

  • GitHub repo mediapipe

    Cross-platform, customizable ML solutions for live and streaming media.

    Project mention: How to encrypt a tflite model | reddit.com/r/tensorflow | 2021-02-24
  • GitHub repo Dlib

    A toolkit for making real world machine learning and data analysis applications in C++

  • GitHub repo 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.

  • GitHub repo 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.

    Project mention: [D] What are your favorite Random Forest implementations that support categoricals | reddit.com/r/MachineLearning | 2021-02-20

    If you considering GBDT check out catboost, unfortunately RF mode is not available but library implement lots of interesting categorical encoding tricks that boost accuracy.

  • GitHub repo tiny-cnn

    header only, dependency-free deep learning framework in C++14

  • GitHub repo serving

    A flexible, high-performance serving system for machine learning models

    Project mention: Exposing Tensorflow Serving’s gRPC Endpoints on Amazon EKS | dev.to | 2021-02-10

    gRPC only connects to a host and port — but we can use whatever service route we want. Above I use the path we configured in our k8s ingress object: /service1, and overwrite the base configuration provided by tensorflow serving. When we call the tfserving_metadata function above, we specify /service1 as an argument.

  • GitHub repo jetson-inference

    Hello AI World guide to deploying deep-learning inference networks and deep vision primitives with TensorRT and NVIDIA Jetson.

    Project mention: NVIDIA DLSS released as a plugin for Unreal Engine 4 | reddit.com/r/pcgaming | 2021-02-15
  • GitHub repo onnxruntime

    ONNX Runtime: cross-platform, high performance ML inferencing and training accelerator

    Project mention: Show HN: Deploy ML Models on a Budget | news.ycombinator.com | 2021-01-31

    And ONNX helps too - https://github.com/microsoft/onnxruntime

  • GitHub repo Open3D

    Open3D: A Modern Library for 3D Data Processing

    Project mention: Got the RealSense L515, very fast, usb 3.1 is great, but how to scan an object on a turntable?? | reddit.com/r/3DScanning | 2021-02-01
  • GitHub repo mlpack

    mlpack: a scalable C++ machine learning library --

  • GitHub repo SHOGUN


  • GitHub repo MITIE

    MITIE: library and tools for information extraction

    Project mention: Is it possible to build a recommendation system or do sentiment analysis in plain c++? | reddit.com/r/AskComputerScience | 2021-01-14

    I 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).

  • GitHub repo deepdetect

    Deep Learning API and Server in C++11 support for Caffe, Caffe2, PyTorch,TensorRT, Dlib, NCNN, Tensorflow, XGBoost and TSNE

    Project mention: [P] Benchmarking OpenBLAS on an Apple MacBook M1 | reddit.com/r/MachineLearning | 2020-12-30

    Interesting, 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).

  • GitHub repo server

    The Triton Inference Server provides an optimized cloud and edge inferencing solution. (by triton-inference-server)

    Project mention: [D] Deploying ML models - batching | reddit.com/r/MachineLearning | 2020-12-27

    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

  • GitHub repo TensorComprehensions

    A domain specific language to express machine learning workloads.

    Project mention: Programming Languages where element-wise matrix notation is possible | reddit.com/r/ProgrammingLanguages | 2021-02-15

    Dex from DeepMind have it natively. TensorComprehensions is also cool.

NOTE: The open source projects on this list are ordered by number of github stars. The number of mentions indicates repo mentiontions in the last 12 Months or since we started tracking (Dec 2020). The latest post mention was on 2021-02-24.


What are some of the best open-source Machine learning projects in C++? This list will help you:

Project Stars
1 tensorflow 153,493
2 Pytorch 46,337
3 tesseract-ocr 38,811
4 Caffe 31,402
5 xgboost 20,612
6 openpose 20,149
7 mxnet 19,286
8 DeepSpeech 16,626
9 mediapipe 10,959
10 Dlib 9,899
11 vowpal_wabbit 7,438
12 catboost 5,713
13 tiny-cnn 5,305
14 serving 4,884
15 jetson-inference 4,119
16 onnxruntime 4,103
17 Open3D 4,080
18 mlpack 3,565
19 SHOGUN 2,797
20 MITIE 2,569
21 deepdetect 2,194
22 server 1,842
23 TensorComprehensions 1,691