Top 23 C++ Machine learning Projects
An Open Source Machine Learning Framework for EveryoneProject 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.
Tensors and Dynamic neural networks in Python with strong GPU accelerationProject mention: C++ trainable semantic segmentation models | reddit.com/r/computervision | 2021-02-23
C++ library with Neural Networks for Image Segmentation based on LibTorch.
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.
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
Caffe: a fast open framework for deep learning.
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: Real-time multi-person keypoint detection library for body, face, hands, and foot estimationProject 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
> 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.
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.)
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
A toolkit for making real world machine learning and data analysis applications in C++
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.
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.
header only, dependency-free deep learning framework in C++14
A flexible, high-performance serving system for machine learning modelsProject 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.
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
ONNX Runtime: cross-platform, high performance ML inferencing and training accelerator
Open3D: A Modern Library for 3D Data ProcessingProject 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
mlpack: a scalable C++ machine learning library --
MITIE: library and tools for information extractionProject 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).
Deep Learning API and Server in C++11 support for Caffe, Caffe2, PyTorch,TensorRT, Dlib, NCNN, Tensorflow, XGBoost and TSNEProject 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).
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
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.
What are some of the best open-source Machine learning projects in C++? This list will help you: