awesome-machine-learning
A curated list of awesome Machine Learning frameworks, libraries and software.
https://github.com/ml13571/awesome-machine-learning
Last synced: 10 days ago
JSON representation
-
APL
-
[Tools](#tools-1)
- naive-apl - Naive Bayesian Classifier implementation in APL. **[Deprecated]**
-
-
Books
-
General-Purpose Machine Learning
- Distributed Machine Learning Patterns - This book teaches you how to take machine learning models from your personal laptop to large distributed clusters. You’ll explore key concepts and patterns behind successful distributed machine learning systems, and learn technologies like TensorFlow, Kubernetes, Kubeflow, and Argo Workflows directly from a key maintainer and contributor, with real-world scenarios and hands-on projects.
- Grokking Machine Learning - Grokking Machine Learning teaches you how to apply ML to your projects using only standard Python code and high school-level math.
- Machine Learning Bookcamp - Learn the essentials of machine learning by completing a carefully designed set of real-world projects.
- Hands-On Machine Learning with Scikit-Learn, Keras, and TensorFlow - Through a recent series of breakthroughs, deep learning has boosted the entire field of machine learning. Now, even programmers who know close to nothing about this technology can use simple, efficient tools to implement programs capable of learning from data. This bestselling book uses concrete examples, minimal theory, and production-ready Python frameworks (Scikit-Learn, Keras, and TensorFlow) to help you gain an intuitive understanding of the concepts and tools for building intelligent systems.
- Netron - An opensource viewer for neural network, deep learning and machine learning models
- Teachable Machine - Train Machine Learning models on the fly to recognize your own images, sounds, & poses.
- Model Zoo - Discover open source deep learning code and pretrained models.
-
-
C
-
[Tools](#tools-1)
- Darknet - Darknet is an open source neural network framework written in C and CUDA. It is fast, easy to install, and supports CPU and GPU computation.
- Recommender - A C library for product recommendations/suggestions using collaborative filtering (CF).
- Hybrid Recommender System - A hybrid recommender system based upon scikit-learn algorithms. **[Deprecated]**
- neonrvm - neonrvm is an open source machine learning library based on RVM technique. It's written in C programming language and comes with Python programming language bindings.
- cONNXr - An `ONNX` runtime written in pure C (99) with zero dependencies focused on small embedded devices. Run inference on your machine learning models no matter which framework you train it with. Easy to install and compiles everywhere, even in very old devices.
- libonnx - A lightweight, portable pure C99 onnx inference engine for embedded devices with hardware acceleration support.
- CCV - C-based/Cached/Core Computer Vision Library, A Modern Computer Vision Library.
- VLFeat - VLFeat is an open and portable library of computer vision algorithms, which has a Matlab toolbox.
-
-
C++
-
[Tools](#tools-1)
- OpenCV - OpenCV has C++, C, Python, Java and MATLAB interfaces and supports Windows, Linux, Android and Mac OS.
- VIGRA - VIGRA is a genertic cross-platform C++ computer vision and machine learning library for volumes of arbitrary dimensionality with Python bindings.
- Openpose - A real-time multi-person keypoint detection library for body, face, hands, and foot estimation
- Speedster - Automatically apply SOTA optimization techniques to achieve the maximum inference speed-up on your hardware. [DEEP LEARNING]
- BanditLib - A simple Multi-armed Bandit library. **[Deprecated]**
- Caffe - A deep learning framework developed with cleanliness, readability, and speed in mind. [DEEP LEARNING]
- CatBoost - General purpose gradient boosting on decision trees library with categorical features support out of the box. It is easy to install, contains fast inference implementation and supports CPU and GPU (even multi-GPU) computation.
- CNTK - The Computational Network Toolkit (CNTK) by Microsoft Research, is a unified deep-learning toolkit that describes neural networks as a series of computational steps via a directed graph.
- DeepDetect - A machine learning API and server written in C++11. It makes state of the art machine learning easy to work with and integrate into existing applications.
- Distributed Machine learning Tool Kit (DMTK) - A distributed machine learning (parameter server) framework by Microsoft. Enables training models on large data sets across multiple machines. Current tools bundled with it include: LightLDA and Distributed (Multisense) Word Embedding.
- DyNet - A dynamic neural network library working well with networks that have dynamic structures that change for every training instance. Written in C++ with bindings in Python.
- Fido - A highly-modular C++ machine learning library for embedded electronics and robotics.
- LightGBM - Microsoft's fast, distributed, high performance gradient boosting (GBDT, GBRT, GBM or MART) framework based on decision tree algorithms, used for ranking, classification and many other machine learning tasks.
- libfm - A generic approach that allows to mimic most factorization models by feature engineering.
- mlpack - A scalable C++ machine learning library.
- MXNet - Lightweight, Portable, Flexible Distributed/Mobile Deep Learning with Dynamic, Mutation-aware Dataflow Dep Scheduler; for Python, R, Julia, Go, JavaScript and more.
- N2D2 - CEA-List's CAD framework for designing and simulating Deep Neural Network, and building full DNN-based applications on embedded platforms
- oneDNN - An open-source cross-platform performance library for deep learning applications.
- ParaMonte - A general-purpose library with C/C++ interface for Bayesian data analysis and visualization via serial/parallel Monte Carlo and MCMC simulations. Documentation can be found [here](https://www.cdslab.org/paramonte/).
- proNet-core - A general-purpose network embedding framework: pair-wise representations optimization Network Edit.
- PyCaret - An open-source, low-code machine learning library in Python that automates machine learning workflows.
- PyCUDA - Python interface to CUDA
- Shogun - The Shogun Machine Learning Toolbox.
- sofia-ml - Suite of fast incremental algorithms.
- Timbl - A software package/C++ library implementing several memory-based learning algorithms, among which IB1-IG, an implementation of k-nearest neighbor classification, and IGTree, a decision-tree approximation of IB1-IG. Commonly used for NLP.
- Vowpal Wabbit (VW) - A fast out-of-core learning system.
- Warp-CTC - A fast parallel implementation of Connectionist Temporal Classification (CTC), on both CPU and GPU.
- XGBoost - A parallelized optimized general purpose gradient boosting library.
- ThunderGBM - A fast library for GBDTs and Random Forests on GPUs.
- ThunderSVM - A fast SVM library on GPUs and CPUs.
- LKYDeepNN - A header-only C++11 Neural Network library. Low dependency, native traditional chinese document.
- xLearn - A high performance, easy-to-use, and scalable machine learning package, which can be used to solve large-scale machine learning problems. xLearn is especially useful for solving machine learning problems on large-scale sparse data, which is very common in Internet services such as online advertising and recommender systems.
- skynet - A library for learning neural networks, has C-interface, net set in JSON. Written in C++ with bindings in Python, C++ and C#.
- Hopsworks - A data-intensive platform for AI with the industry's first open-source feature store. The Hopsworks Feature Store provides both a feature warehouse for training and batch based on Apache Hive and a feature serving database, based on MySQL Cluster, for online applications.
- Polyaxon - A platform for reproducible and scalable machine learning and deep learning.
- XAD - Comprehensive backpropagation tool for C++.
- BLLIP Parser - BLLIP Natural Language Parser (also known as the Charniak-Johnson parser).
- colibri-core - C++ library, command line tools, and Python binding for extracting and working with basic linguistic constructions such as n-grams and skipgrams in a quick and memory-efficient way.
- CRF++ - Open source implementation of Conditional Random Fields (CRFs) for segmenting/labeling sequential data & other Natural Language Processing tasks. **[Deprecated]**
- CRFsuite - CRFsuite is an implementation of Conditional Random Fields (CRFs) for labeling sequential data. **[Deprecated]**
- frog - Memory-based NLP suite developed for Dutch: PoS tagger, lemmatiser, dependency parser, NER, shallow parser, morphological analyzer.
- libfolia - C++ library for the [FoLiA format](https://proycon.github.io/folia/)
- MeTA - [MeTA : ModErn Text Analysis](https://meta-toolkit.org/) is a C++ Data Sciences Toolkit that facilitates mining big text data.
- MIT Information Extraction Toolkit - C, C++, and Python tools for named entity recognition and relation extraction
- ucto - Unicode-aware regular-expression based tokenizer for various languages. Tool and C++ library. Supports FoLiA format.
- Kaldi - Kaldi is a toolkit for speech recognition written in C++ and licensed under the Apache License v2.0. Kaldi is intended for use by speech recognition researchers.
- ToPS - This is an object-oriented framework that facilitates the integration of probabilistic models for sequences over a user defined alphabet. **[Deprecated]**
- grt - The Gesture Recognition Toolkit (GRT) is a cross-platform, open-source, C++ machine learning library designed for real-time gesture recognition.
- RLtools - The fastest deep reinforcement learning library for continuous control, implemented header-only in pure, dependency-free C++ (Python bindings available as well).
- CUDA - This is a fast C++/CUDA implementation of convolutional [DEEP LEARNING]
- EBLearn - Eblearn is an object-oriented C++ library that implements various machine learning models **[Deprecated]**
- Featuretools - A library for automated feature engineering. It excels at transforming transactional and relational datasets into feature matrices for machine learning using reusable feature engineering "primitives".
- DLib - A suite of ML tools designed to be easy to imbed in other applications.
- Intel® oneAPI Data Analytics Library - A high performance software library developed by Intel and optimized for Intel's architectures. Library provides algorithmic building blocks for all stages of data analytics and allows to process data in batch, online and distributed modes.
- DSSTNE - A software library created by Amazon for training and deploying deep neural networks using GPUs which emphasizes speed and scale over experimental flexibility.
- skynet - A library for learning neural networks, has C-interface, net set in JSON. Written in C++ with bindings in Python, C++ and C#.
- Stan - A probabilistic programming language implementing full Bayesian statistical inference with Hamiltonian Monte Carlo sampling.
-
-
Clojure
-
[Tools](#tools-1)
- Clojure-openNLP - Natural Language Processing in Clojure (opennlp).
- Infections-clj - Rails-like inflection library for Clojure and ClojureScript.
- scicloj.ml - A idiomatic Clojure machine learning library based on tech.ml.dataset with a unique approach for immutable data processing pipelines.
- clj-ml - A machine learning library for Clojure built on top of Weka and friends.
- clj-boost - Wrapper for XGBoost
- Clojush - The Push programming language and the PushGP genetic programming system implemented in Clojure.
- lambda-ml - Simple, concise implementations of machine learning techniques and utilities in Clojure.
- Infer - Inference and machine learning in Clojure. **[Deprecated]**
- Encog - Clojure wrapper for Encog (v3) (Machine-Learning framework that specializes in neural-nets). **[Deprecated]**
- Fungp - A genetic programming library for Clojure. **[Deprecated]**
- Statistiker - Basic Machine Learning algorithms in Clojure. **[Deprecated]**
- clortex - General Machine Learning library using Numenta’s Cortical Learning Algorithm. **[Deprecated]**
- comportex - Functionally composable Machine Learning library using Numenta’s Cortical Learning Algorithm. **[Deprecated]**
- MXNet - Bindings to Apache MXNet - part of the MXNet project
- Deep Diamond - A fast Clojure Tensor & Deep Learning library
- jutsu.ai - Clojure wrapper for deeplearning4j with some added syntactic sugar.
- Flare - Dynamic Tensor Graph library in Clojure (think PyTorch, DynNet, etc.)
- dl4clj - Clojure wrapper for Deeplearning4j.
- tech.ml.dataset - Clojure dataframe library and pipeline for data processing and machine learning
- Tablecloth - A dataframe grammar wrapping tech.ml.dataset, inspired by several R libraries
- Panthera - Clojure API wrapping Python's Pandas library
- Incanter - Incanter is a Clojure-based, R-like platform for statistical computing and graphics.
- PigPen - Map-Reduce for Clojure.
- Geni - a Clojure dataframe library that runs on Apache Spark
- Hanami - Lite (VGL) and/or Vega (VG) specifications. Automatic framing and layouts along with a powerful templating system for abstracting visualization specs
- Saite - Clojure(Script) client/server application for dynamic interactive explorations and the creation of live shareable documents capturing them using Vega/Vega-Lite, CodeMirror, markdown, and LaTeX
- Oz - Data visualisation using Vega/Vega-Lite and Hiccup, and a live-reload platform for literate-programming
- Envision - Clojure Data Visualisation library, based on Statistiker and D3.
- clojupyter - A Jupyter kernel for Clojure - run Clojure code in Jupyter Lab, Notebook and Console.
- notespace - Notebook experience in your Clojure namespace
- Delight - A listener that streams your spark events logs to delight, a free and improved spark UI
- Java Interop - Clojure has Native Java Interop from which Java's ML ecosystem can be accessed
- JavaScript Interop - ClojureScript has Native JavaScript Interop from which JavaScript's ML ecosystem can be accessed
- Libpython-clj - Interop with Python
- ClojisR - Interop with R and Renjin (R on the JVM)
- Neanderthal - Fast Clojure Matrix Library (native CPU, GPU, OpenCL, CUDA)
- kixistats - A library of statistical distribution sampling and transducing functions
- fastmath - A collection of functions for mathematical and statistical computing, macine learning, etc., wrapping several JVM libraries
- matlib - A Clojure library of optimisation and control theory tools and convenience functions based on Neanderthal.
- Scicloj - Curated list of ML related resources for Clojure.
- Touchstone - Clojure A/B testing library.
- clj-ml - A machine learning library for Clojure built on top of Weka and friends.
- cortex - Neural networks, regression and feature learning in Clojure.
- Pink Gorilla Notebook - A Clojure/Clojurescript notebook application/-library based on Gorilla-REPL
-
-
Common Lisp
-
[Tools](#tools-1)
- mgl-gpr - Evolutionary algorithms. **[Deprecated]**
- cl-libsvm - Wrapper for the libsvm support vector machine library. **[Deprecated]**
- cl-online-learning - Online learning algorithms (Perceptron, AROW, SCW, Logistic Regression).
- cl-random-forest - Implementation of Random Forest in Common Lisp.
- mgl - Neural networks (boltzmann machines, feed-forward and recurrent nets), Gaussian Processes.
- mgl-gpr - Evolutionary algorithms. **[Deprecated]**
- cl-libsvm - Wrapper for the libsvm support vector machine library. **[Deprecated]**
-
-
Credits
-
General-Purpose Machine Learning
-
-
Crystal
-
[Tools](#tools-1)
- machine - Simple machine learning algorithm.
- crystal-fann - FANN (Fast Artificial Neural Network) binding.
-
-
Elixir
-
[Tools](#tools-1)
- Simple Bayes - A Simple Bayes / Naive Bayes implementation in Elixir.
- emel - A simple and functional machine learning library written in Elixir.
- Tensorflex - Tensorflow bindings for the Elixir programming language.
- Stemmer - An English (Porter2) stemming implementation in Elixir.
-
-
Erlang
-
[Tools](#tools-1)
- Disco - Map Reduce in Erlang. **[Deprecated]**
-
-
Fortran
-
[Tools](#tools-1)
- neural-fortran - A parallel neural net microframework.
- here
-
-
Go
-
[Tools](#tools-1)
- Cybertron - Cybertron: the home planet of the Transformers in Go.
- snowball - Snowball Stemmer for Go.
- sentences - Golang implementation of Punkt sentence tokenizer.
- go-ngram - In-memory n-gram index with compression. *[Deprecated]*
- paicehusk - Golang implementation of the Paice/Husk Stemming Algorithm. *[Deprecated]*
- go-porterstemmer - A native Go clean room implementation of the Porter Stemming algorithm. **[Deprecated]**
- Spago - Self-contained Machine Learning and Natural Language Processing library in Go.
- birdland - A recommendation library in Go.
- eaopt - An evolutionary optimization library.
- leaves - A pure Go implementation of the prediction part of GBRTs, including XGBoost and LightGBM.
- gobrain - Neural Networks written in Go.
- go-featureprocessing - Fast and convenient feature processing for low latency machine learning in Go.
- go-mxnet-predictor - Go binding for MXNet c_predict_api to do inference with a pre-trained model.
- go-ml-benchmarks
- golearn - Machine learning for Go.
- goml - Machine learning library written in pure Go.
- gorgonia - Deep learning in Go.
- goro - A high-level machine learning library in the vein of Keras.
- gorse - An offline recommender system backend based on collaborative filtering written in Go.
- therfoo - An embedded deep learning library for Go.
- neat - Plug-and-play, parallel Go framework for NeuroEvolution of Augmenting Topologies (NEAT). **[Deprecated]**
- go-pr - Pattern recognition package in Go lang. **[Deprecated]**
- go-ml - Linear / Logistic regression, Neural Networks, Collaborative Filtering and Gaussian Multivariate Distribution. **[Deprecated]**
- GoNN - GoNN is an implementation of Neural Network in Go Language, which includes BPNN, RBF, PCN. **[Deprecated]**
- bayesian - Naive Bayesian Classification for Golang. **[Deprecated]**
- go-galib - Genetic Algorithms library written in Go / Golang. **[Deprecated]**
- Cloudforest - Ensembles of decision trees in Go/Golang. **[Deprecated]**
- go-dnn - Deep Neural Networks for Golang (powered by MXNet)
- go-geom - Go library to handle geometries.
- gogeo - Spherical geometry in Go.
- dataframe-go - Dataframes for machine-learning and statistics (similar to pandas).
- gota - Dataframes.
- SVGo - The Go Language library for SVG generation.
- globe - Globe wireframe visualization.
- go-graph - Graph library for Go/Golang language. **[Deprecated]**
- RF - Random forests implementation in Go. **[Deprecated]**
- GoCV - Package for computer vision using OpenCV 4 and beyond.
- gold - A reinforcement learning library.
- stable-baselines3 - PyTorch implementations of Stable Baselines (deep) reinforcement learning algorithms.
- gonum/mat - A linear algebra package for Go.
- gonum/plot - A plotting library.
- word-embedding - Word Embeddings: the full implementation of word2vec, GloVe in Go.
- go-ml-transpiler - An open source Go transpiler for machine learning models.
- glot - Glot is a plotting library for Golang built on top of gnuplot.
- gonum/optimize - Implementations of optimization algorithms.
-
-
Haskell
-
[Tools](#tools-1)
- haskell-ml - Haskell implementations of various ML algorithms. **[Deprecated]**
- HLearn - a suite of libraries for interpreting machine learning models according to their algebraic structure. **[Deprecated]**
- hnn - Haskell Neural Network library.
- hopfield-networks - Hopfield Networks for unsupervised learning in Haskell. **[Deprecated]**
- DNNGraph - A DSL for deep neural networks. **[Deprecated]**
- LambdaNet - Configurable Neural Networks in Haskell. **[Deprecated]**
-
-
Java
-
[Tools](#tools-1)
- Cortical.io - Retina: an API performing complex NLP operations (disambiguation, classification, streaming text filtering, etc...) as quickly and intuitively as the brain.
- IRIS - [Cortical.io's](https://cortical.io) FREE NLP, Retina API Analysis Tool (written in JavaFX!) - [See the Tutorial Video](https://www.youtube.com/watch?v=CsF4pd7fGF0).
- CoreNLP - Stanford CoreNLP provides a set of natural language analysis tools which can take raw English language text input and give the base forms of words.
- Stanford Parser - A natural language parser is a program that works out the grammatical structure of sentences.
- Stanford POS Tagger - A Part-Of-Speech Tagger (POS Tagger).
- Stanford Name Entity Recognizer - Stanford NER is a Java implementation of a Named Entity Recognizer.
- Stanford Word Segmenter - Tokenization of raw text is a standard pre-processing step for many NLP tasks.
- Tregex, Tsurgeon and Semgrex - Tregex is a utility for matching patterns in trees, based on tree relationships and regular expression matches on nodes (the name is short for "tree regular expressions").
- Stanford Phrasal: A Phrase-Based Translation System
- Stanford English Tokenizer - Stanford Phrasal is a state-of-the-art statistical phrase-based machine translation system, written in Java.
- Stanford Tokens Regex - A tokenizer divides text into a sequence of tokens, which roughly correspond to "words".
- Stanford Temporal Tagger - SUTime is a library for recognizing and normalizing time expressions.
- Stanford SPIED - Learning entities from unlabeled text starting with seed sets using patterns in an iterative fashion.
- Twitter Text Java - A Java implementation of Twitter's text processing library.
-
Programming Languages
Categories
Python
384
R
87
JavaScript
72
Julia
59
C++
57
Java
53
Go
45
Lua
44
Clojure
44
Tools
29
Scala
28
Ruby
25
Matlab
18
Rust
14
.NET
13
Swift
12
SAS
11
C
8
Objective C
8
Common Lisp
7
Books
7
Perl
6
Haskell
6
PHP
5
OCaml
4
Elixir
4
Perl 6
3
TensorFlow
3
Crystal
2
Credits
2
Fortran
2
OpenCV
1
Scheme
1
Erlang
1
Kotlin
1
APL
1
Sub Categories
Keywords
machine-learning
221
python
125
deep-learning
98
data-science
73
pytorch
47
nlp
35
neural-network
35
tensorflow
30
scikit-learn
29
artificial-intelligence
26
natural-language-processing
25
ml
21
julia
20
ai
19
clojure
19
neural-networks
18
statistics
18
java
17
reinforcement-learning
15
hyperparameter-optimization
15
gpu
15
computer-vision
15
go
14
visualization
14
regression
14
machine-learning-algorithms
13
random-forest
12
automl
12
data-mining
12
numpy
12
c-plus-plus
12
keras
12
data-analysis
12
javascript
12
deep-neural-networks
12
jupyter-notebook
11
golang
11
xgboost
11
big-data
11
classification
10
cuda
10
spark
10
scala
10
llm
10
jupyter
10
r
9
rust
9
machine-learning-library
8
feature-engineering
8
named-entity-recognition
8