Awesome Machine Learning Awesome Track Awesome List

A curated list of awesome machine learning frameworks, libraries and software (by language). Inspired by awesome-php.

If you want to contribute to this list (please do), send me a pull request or contact me [@josephmisiti](https://twitter.com/josephmisiti). Also, a listed repository should be deprecated if:

Further resources:

Table of Contents

Frameworks and Libraries

Tools

Credits

## APL

#### General-Purpose Machine Learning * naive-apl - Naive Bayesian Classifier implementation in APL. [Deprecated]

## C

#### General-Purpose Machine Learning * 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.

#### Computer Vision

## C++

#### Computer Vision

#### General-Purpose Machine Learning

#### Natural Language Processing

#### Speech Recognition * 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.

#### Sequence Analysis * ToPS - This is an object-oriented framework that facilitates the integration of probabilistic models for sequences over a user defined alphabet. [Deprecated]

#### Gesture Detection * grt - The Gesture Recognition Toolkit (GRT) is a cross-platform, open-source, C++ machine learning library designed for real-time gesture recognition.

## Common Lisp

#### General-Purpose Machine Learning

## Clojure

#### Natural Language Processing

#### General-Purpose Machine Learning

#### Deep Learning * 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. * cortex - Neural networks, regression and feature learning in Clojure. * Flare - Dynamic Tensor Graph library in Clojure (think PyTorch, DynNet, etc.) * dl4clj - Clojure wrapper for Deeplearning4j.

#### Data Analysis * 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

#### Data Visualization * Hanami : Clojure(Script) library and framework for creating interactive visualization applications based in Vega-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. * Pink Gorilla Notebook - A Clojure/Clojurescript notebook application/-library based on Gorilla-REPL * 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

#### Interop

#### Misc * 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.

#### Extra * Scicloj - Curated list of ML related resources for Clojure.

## Crystal

#### General-Purpose Machine Learning

## Elixir

#### General-Purpose Machine Learning

#### Natural Language Processing

## Erlang

#### General-Purpose Machine Learning

## Fortran

#### General-Purpose Machine Learning

#### Data Analysis / Data Visualization

## Go

#### Natural Language Processing

#### General-Purpose Machine Learning

#### Spatial analysis and geometry

#### Data Analysis / Data Visualization

#### Computer vision

#### Reinforcement learning

## Haskell

#### General-Purpose Machine Learning * 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

#### Natural Language Processing * 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 FREE NLP, Retina API Analysis Tool (written in JavaFX!) - See the Tutorial Video. * 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. * MALLET - A Java-based package for statistical natural language processing, document classification, clustering, topic modeling, information extraction, and other machine learning applications to text. * OpenNLP - a machine learning based toolkit for the processing of natural language text. * LingPipe - A tool kit for processing text using computational linguistics. * ClearTK - ClearTK provides a framework for developing statistical natural language processing (NLP) components in Java and is built on top of Apache UIMA. [Deprecated] * Apache cTAKES - Apache Clinical Text Analysis and Knowledge Extraction System (cTAKES) is an open-source natural language processing system for information extraction from electronic medical record clinical free-text. * NLP4J - The NLP4J project provides software and resources for natural language processing. The project started at the Center for Computational Language and EducAtion Research, and is currently developed by the Center for Language and Information Research at Emory University. [Deprecated] * CogcompNLP - This project collects a number of core libraries for Natural Language Processing (NLP) developed in the University of Illinois’ Cognitive Computation Group, for example illinois-core-utilities which provides a set of NLP-friendly data structures and a number of NLP-related utilities that support writing NLP applications, running experiments, etc, illinois-edison a library for feature extraction from illinois-core-utilities data structures and many other packages.

#### General-Purpose Machine Learning

#### Speech Recognition * CMU Sphinx - Open Source Toolkit For Speech Recognition purely based on Java speech recognition library.

#### Data Analysis / Data Visualization

#### Deep Learning

## Javascript

#### Natural Language Processing

#### Data Analysis / Data Visualization

#### General-Purpose Machine Learning

#### Misc

#### Demos and Scripts * The Bot - Example of how the neural network learns to predict the angle between two points created with Synaptic. * Half Beer - Beer glass classifier created with Synaptic. * NSFWJS - Indecent content checker with TensorFlow.js * Rock Paper Scissors - Rock Paper Scissors trained in the browser with TensorFlow.js * Heroes Wear Masks - A fun TensorFlow.js-based oracle that tells, whether one wears a face mask or not. It can even tell when one wears the mask incorrectly.

## Julia

#### General-Purpose Machine Learning

#### Natural Language Processing

#### Data Analysis / Data Visualization

#### Misc Stuff / Presentations

## Lua

#### General-Purpose Machine Learning

#### Demos and Scripts * Core torch7 demos repository. * linear-regression, logistic-regression * face detector (training and detection as separate demos) * mst-based-segmenter * train-a-digit-classifier * train-autoencoder * optical flow demo * train-on-housenumbers * train-on-cifar * tracking with deep nets * kinect demo * filter-bank visualization * saliency-networks * Training a Convnet for the Galaxy-Zoo Kaggle challenge(CUDA demo) * Music Tagging - Music Tagging scripts for torch7. * torch-datasets - Scripts to load several popular datasets including: * BSR 500 * CIFAR-10 * COIL * Street View House Numbers * MNIST * NORB * Atari2600 - Scripts to generate a dataset with static frames from the Arcade Learning Environment.

## Matlab

#### Computer Vision

#### Natural Language Processing

#### General-Purpose Machine Learning

#### Data Analysis / Data Visualization

## .NET

#### Computer Vision

#### Natural Language Processing

#### General-Purpose Machine Learning

#### Data Analysis / Data Visualization

## Objective C

### General-Purpose Machine Learning

## OCaml

### General-Purpose Machine Learning

## Perl

### Data Analysis / Data Visualization

### General-Purpose Machine Learning

## Perl 6

### Data Analysis / Data Visualization

### General-Purpose Machine Learning

## PHP

### Natural Language Processing

### General-Purpose Machine Learning

## Python

#### Computer Vision

#### Natural Language Processing

#### General-Purpose Machine Learning

#### Data Analysis / Data Visualization * DataVisualization - A Github Repository Where you can Learn Datavisualizatoin Basics to Intermediate level. * Cartopy - Cartopy is a Python package designed for geospatial data processing in order to produce maps and other geospatial data analyses. * SciPy - A Python-based ecosystem of open-source software for mathematics, science, and engineering. * NumPy - A fundamental package for scientific computing with Python. * AutoViz AutoViz performs automatic visualization of any dataset with a single line of Python code. Give it any input file (CSV, txt or json) of any size and AutoViz will visualize it. See Medium article. * Numba - Python JIT (just in time) compiler to LLVM aimed at scientific Python by the developers of Cython and NumPy. * Mars - A tensor-based framework for large-scale data computation which is often regarded as a parallel and distributed version of NumPy. * NetworkX - A high-productivity software for complex networks. * igraph - binding to igraph library - General purpose graph library. * Pandas - A library providing high-performance, easy-to-use data structures and data analysis tools. * ParaMonte - A general-purpose Python library for Bayesian data analysis and visualization via serial/parallel Monte Carlo and MCMC simulations. Documentation can be found here. * Open Mining - Business Intelligence (BI) in Python (Pandas web interface) [Deprecated] * PyMC - Markov Chain Monte Carlo sampling toolkit. * zipline - A Pythonic algorithmic trading library. * PyDy - Short for Python Dynamics, used to assist with workflow in the modeling of dynamic motion based around NumPy, SciPy, IPython, and matplotlib. * SymPy - A Python library for symbolic mathematics. * statsmodels - Statistical modeling and econometrics in Python. * astropy - A community Python library for Astronomy. * matplotlib - A Python 2D plotting library. * bokeh - Interactive Web Plotting for Python. * plotly - Collaborative web plotting for Python and matplotlib. * altair - A Python to Vega translator. * d3py - A plotting library for Python, based on D3.js. * PyDexter - Simple plotting for Python. Wrapper for D3xterjs; easily render charts in-browser. * ggplot - Same API as ggplot2 for R. [Deprecated] * ggfortify - Unified interface to ggplot2 popular R packages. * Kartograph.py - Rendering beautiful SVG maps in Python. * pygal - A Python SVG Charts Creator. * PyQtGraph - A pure-python graphics and GUI library built on PyQt4 / PySide and NumPy. * pycascading [Deprecated] * Petrel - Tools for writing, submitting, debugging, and monitoring Storm topologies in pure Python. * Blaze - NumPy and Pandas interface to Big Data. * emcee - The Python ensemble sampling toolkit for affine-invariant MCMC. * windML - A Python Framework for Wind Energy Analysis and Prediction. * vispy - GPU-based high-performance interactive OpenGL 2D/3D data visualization library. * cerebro2 A web-based visualization and debugging platform for NuPIC. [Deprecated] * NuPIC Studio An all-in-one NuPIC Hierarchical Temporal Memory visualization and debugging super-tool! [Deprecated] * SparklingPandas Pandas on PySpark (POPS). * Seaborn - A python visualization library based on matplotlib. * bqplot - An API for plotting in Jupyter (IPython). * pastalog - Simple, realtime visualization of neural network training performance. * Superset - A data exploration platform designed to be visual, intuitive, and interactive. * Dora - Tools for exploratory data analysis in Python. * Ruffus - Computation Pipeline library for python. * SOMPY - Self Organizing Map written in Python (Uses neural networks for data analysis). * somoclu Massively parallel self-organizing maps: accelerate training on multicore CPUs, GPUs, and clusters, has python API. * HDBScan - implementation of the hdbscan algorithm in Python - used for clustering * visualize_ML - A python package for data exploration and data analysis. [Deprecated] * scikit-plot - A visualization library for quick and easy generation of common plots in data analysis and machine learning. * Bowtie - A dashboard library for interactive visualizations using flask socketio and react. * lime - Lime is about explaining what machine learning classifiers (or models) are doing. It is able to explain any black box classifier, with two or more classes. * PyCM - PyCM is a multi-class confusion matrix library written in Python that supports both input data vectors and direct matrix, and a proper tool for post-classification model evaluation that supports most classes and overall statistics parameters * Dash - A framework for creating analytical web applications built on top of Plotly.js, React, and Flask * Lambdo - A workflow engine for solving machine learning problems by combining in one analysis pipeline (i) feature engineering and machine learning (ii) model training and prediction (iii) table population and column evaluation via user-defined (Python) functions. * TensorWatch - Debugging and visualization tool for machine learning and data science. It extensively leverages Jupyter Notebook to show real-time visualizations of data in running processes such as machine learning training. * dowel - A little logger for machine learning research. Output any object to the terminal, CSV, TensorBoard, text logs on disk, and more with just one call to logger.log().

#### Misc Scripts / iPython Notebooks / Codebases * MiniGrad – A minimal, educational, Pythonic implementation of autograd (~100 loc). * Map/Reduce implementations of common ML algorithms: Jupyter notebooks that cover how to implement from scratch different ML algorithms (ordinary least squares, gradient descent, k-means, alternating least squares), using Python NumPy, and how to then make these implementations scalable using Map/Reduce and Spark. * BioPy - Biologically-Inspired and Machine Learning Algorithms in Python. [Deprecated] * CAEs for Data Assimilation - Convolutional autoencoders for 3D image/field compression applied to reduced order Data Assimilation. * SVM Explorer - Interactive SVM Explorer, using Dash and scikit-learn * pattern_classification * thinking stats 2 * hyperopt * numpic * 2012-paper-diginorm * A gallery of interesting IPython notebooks * ipython-notebooks * data-science-ipython-notebooks - Continually updated Data Science Python Notebooks: Spark, Hadoop MapReduce, HDFS, AWS, Kaggle, scikit-learn, matplotlib, pandas, NumPy, SciPy, and various command lines. * decision-weights * Sarah Palin LDA - Topic Modeling the Sarah Palin emails. * Diffusion Segmentation - A collection of image segmentation algorithms based on diffusion methods. * Scipy Tutorials - SciPy tutorials. This is outdated, check out scipy-lecture-notes. * Crab - A recommendation engine library for Python. * BayesPy - Bayesian Inference Tools in Python. * scikit-learn tutorials - Series of notebooks for learning scikit-learn. * sentiment-analyzer - Tweets Sentiment Analyzer * sentiment_classifier - Sentiment classifier using word sense disambiguation. * group-lasso - Some experiments with the coordinate descent algorithm used in the (Sparse) Group Lasso model. * jProcessing - Kanji / Hiragana / Katakana to Romaji Converter. Edict Dictionary & parallel sentences Search. Sentence Similarity between two JP Sentences. Sentiment Analysis of Japanese Text. Run Cabocha(ISO–8859-1 configured) in Python. * mne-python-notebooks - IPython notebooks for EEG/MEG data processing using mne-python. * Neon Course - IPython notebooks for a complete course around understanding Nervana’s Neon. * pandas cookbook - Recipes for using Python’s pandas library. * climin - Optimization library focused on machine learning, pythonic implementations of gradient descent, LBFGS, rmsprop, adadelta and others. * Allen Downey’s Data Science Course - Code for Data Science at Olin College, Spring 2014. * Allen Downey’s Think Bayes Code - Code repository for Think Bayes. * Allen Downey’s Think Complexity Code - Code for Allen Downey’s book Think Complexity. * Allen Downey’s Think OS Code - Text and supporting code for Think OS: A Brief Introduction to Operating Systems. * Python Programming for the Humanities - Course for Python programming for the Humanities, assuming no prior knowledge. Heavy focus on text processing / NLP. * GreatCircle - Library for calculating great circle distance. * Optunity examples - Examples demonstrating how to use Optunity in synergy with machine learning libraries. * Dive into Machine Learning with Python Jupyter notebook and scikit-learn - “I learned Python by hacking first, and getting serious later. I wanted to do this with Machine Learning. If this is your style, join me in getting a bit ahead of yourself.” * TDB - TensorDebugger (TDB) is a visual debugger for deep learning. It features interactive, node-by-node debugging and visualization for TensorFlow. * Suiron - Machine Learning for RC Cars. * Introduction to machine learning with scikit-learn - IPython notebooks from Data School’s video tutorials on scikit-learn. * Practical XGBoost in Python - comprehensive online course about using XGBoost in Python. * Introduction to Machine Learning with Python - Notebooks and code for the book “Introduction to Machine Learning with Python” * Pydata book - Materials and IPython notebooks for “Python for Data Analysis” by Wes McKinney, published by O’Reilly Media * Homemade Machine Learning - Python examples of popular machine learning algorithms with interactive Jupyter demos and math being explained * Prodmodel - Build tool for data science pipelines. * the-elements-of-statistical-learning - This repository contains Jupyter notebooks implementing the algorithms found in the book and summary of the textbook. * Hyperparameter-Optimization-of-Machine-Learning-Algorithms - Code for hyperparameter tuning/optimization of machine learning and deep learning algorithms.

#### Neural Networks

#### Kaggle Competition Source Code * open-solution-home-credit -> source code and experiments results for Home Credit Default Risk. * open-solution-googleai-object-detection -> source code and experiments results for Google AI Open Images - Object Detection Track. * open-solution-salt-identification -> source code and experiments results for TGS Salt Identification Challenge. * open-solution-ship-detection -> source code and experiments results for Airbus Ship Detection Challenge. * open-solution-data-science-bowl-2018 -> source code and experiments results for 2018 Data Science Bowl. * open-solution-value-prediction -> source code and experiments results for Santander Value Prediction Challenge. * open-solution-toxic-comments -> source code for Toxic Comment Classification Challenge. * wiki challenge - An implementation of Dell Zhang’s solution to Wikipedia’s Participation Challenge on Kaggle. * kaggle insults - Kaggle Submission for “Detecting Insults in Social Commentary”. * kaggle_acquire-valued-shoppers-challenge - Code for the Kaggle acquire valued shoppers challenge. * kaggle-cifar - Code for the CIFAR-10 competition at Kaggle, uses cuda-convnet. * kaggle-blackbox - Deep learning made easy. * kaggle-accelerometer - Code for Accelerometer Biometric Competition at Kaggle. * kaggle-advertised-salaries - Predicting job salaries from ads - a Kaggle competition. * kaggle amazon - Amazon access control challenge. * kaggle-bestbuy_big - Code for the Best Buy competition at Kaggle. * kaggle-bestbuy_small * Kaggle Dogs vs. Cats - Code for Kaggle Dogs vs. Cats competition. * Kaggle Galaxy Challenge - Winning solution for the Galaxy Challenge on Kaggle. * Kaggle Gender - A Kaggle competition: discriminate gender based on handwriting. * Kaggle Merck - Merck challenge at Kaggle. * Kaggle Stackoverflow - Predicting closed questions on Stack Overflow. * kaggle_acquire-valued-shoppers-challenge - Code for the Kaggle acquire valued shoppers challenge. * wine-quality - Predicting wine quality.

#### Reinforcement Learning * DeepMind Lab - DeepMind Lab is a 3D learning environment based on id Software’s Quake III Arena via ioquake3 and other open source software. Its primary purpose is to act as a testbed for research in artificial intelligence, especially deep reinforcement learning. * Gym - OpenAI Gym is a toolkit for developing and comparing reinforcement learning algorithms. * Serpent.AI - Serpent.AI is a game agent framework that allows you to turn any video game you own into a sandbox to develop AI and machine learning experiments. For both researchers and hobbyists. * ViZDoom - ViZDoom allows developing AI bots that play Doom using only the visual information (the screen buffer). It is primarily intended for research in machine visual learning, and deep reinforcement learning, in particular. * Roboschool - Open-source software for robot simulation, integrated with OpenAI Gym. * Retro - Retro Games in Gym * SLM Lab - Modular Deep Reinforcement Learning framework in PyTorch. * Coach - Reinforcement Learning Coach by Intel® AI Lab enables easy experimentation with state of the art Reinforcement Learning algorithms * garage - A toolkit for reproducible reinforcement learning research * metaworld - An open source robotics benchmark for meta- and multi-task reinforcement learning * acme - An Open Source Distributed Framework for Reinforcement Learning that makes build and train your agents easily. * Spinning Up - An educational resource designed to let anyone learn to become a skilled practitioner in deep reinforcement learning * Maze - Application-oriented deep reinforcement learning framework addressing real-world decision problems.

## Ruby

#### Natural Language Processing

#### General-Purpose Machine Learning

#### Data Analysis / Data Visualization

#### Misc

## Rust

#### General-Purpose Machine Learning * deeplearn-rs - deeplearn-rs provides simple networks that use matrix multiplication, addition, and ReLU under the MIT license. * rustlearn - a machine learning framework featuring logistic regression, support vector machines, decision trees and random forests. * rusty-machine - a pure-rust machine learning library. * leaf - open source framework for machine intelligence, sharing concepts from TensorFlow and Caffe. Available under the MIT license. [Deprecated] * RustNN - RustNN is a feedforward neural network library. [Deprecated] * RusticSOM - A Rust library for Self Organising Maps (SOM).

## R

#### General-Purpose Machine Learning

#### Data Manipulation | Data Analysis | Data Visualization

## SAS

#### General-Purpose Machine Learning

#### Data Analysis / Data Visualization

#### Natural Language Processing

#### Demos and Scripts

## Scala

#### Natural Language Processing

#### Data Analysis / Data Visualization

#### General-Purpose Machine Learning

## Scheme

#### Neural Networks

## Swift

#### General-Purpose Machine Learning

## TensorFlow

#### General-Purpose Machine Learning * Awesome TensorFlow - A list of all things related to TensorFlow. * Golden TensorFlow - A page of content on TensorFlow, including academic papers and links to related topics.

## Tools

#### Neural Networks * layer - Neural network inference from the command line

#### Misc

Credits