/best-of-ml-julia

🏆 A ranked list of awesome machine learning Julia libraries.

Creative Commons Attribution Share Alike 4.0 InternationalCC-BY-SA-4.0

best-of-ml-julia

🏆  A ranked list of awesome machine learning Julia libraries. Updated weekly.

This curated list contains 100 awesome open-source projects with a total of 46K stars grouped into 8 categories. All projects are ranked by a project-quality score, which is calculated based on various metrics automatically collected from GitHub and different package managers. If you like to add or update projects, feel free to open an issue, submit a pull request, or directly edit the projects.yaml. Contributions are very welcome!

🧙‍♂️ Discover other best-of lists or create your own.

Contents

Explanation

  • 🥇🥈🥉  Combined project-quality score
  • ⭐️  Star count from GitHub
  • 🐣  New project (less than 6 months old)
  • 💤  Inactive project (6 months no activity)
  • 💀  Dead project (12 months no activity)
  • 📈📉  Project is trending up or down
  • ➕  Project was recently added
  • ❗️  Warning (e.g. missing/risky license)
  • 👨‍💻  Contributors count from GitHub
  • 🔀  Fork count from GitHub
  • 📋  Issue count from GitHub
  • ⏱️  Last update timestamp on package manager
  • 📥  Download count from package manager
  • 📦  Number of dependent projects

Machine Learning Frameworks

Back to top

General-purpose machine learning and deep learning frameworks.

incubator-mxnet (🥇31 · ⭐ 19K) - Lightweight, Portable, Flexible Distributed/Mobile Deep.. Apache-2
  • GitHub (👨‍💻 960 · 🔀 6.5K · 📥 24K · 📦 2K · 📋 9.3K - 18% open · ⏱️ 21.05.2021):

     git clone https://github.com/apache/incubator-mxnet
    
Turing.jl (🥇20 · ⭐ 1.2K) - Bayesian inference with probabilistic programming. MIT
  • GitHub (👨‍💻 74 · 🔀 150 · 📋 820 - 19% open · ⏱️ 20.05.2021):

     git clone https://github.com/TuringLang/Turing.jl
    
Gen.jl (🥇19 · ⭐ 1.5K) - A general-purpose probabilistic programming system with programmable.. Apache-2
  • GitHub (👨‍💻 29 · 🔀 140 · 📋 240 - 54% open · ⏱️ 13.05.2021):

     git clone https://github.com/probcomp/Gen.jl
    
DiffEqFlux.jl (🥇18 · ⭐ 510) - Universal neural differential equations with O(1) backprop, GPUs,.. MIT
  • GitHub (👨‍💻 52 · 🔀 99 · 📋 240 - 23% open · ⏱️ 20.05.2021):

     git clone https://github.com/SciML/DiffEqFlux.jl
    
DFTK.jl/ (🥈16 · ⭐ 160) - Density-functional toolkit. MIT
  • GitHub (🔀 25 · 📋 120 - 39% open · ⏱️ 12.05.2021):

     git clone https://github.com/JuliaMolSim/DFTK.jl/
    
MixedModels.jl (🥈15 · ⭐ 260) - A Julia package for fitting (statistical) mixed-effects models. MIT
  • GitHub (👨‍💻 23 · 🔀 37 · 📋 220 - 9% open · ⏱️ 16.05.2021):

     git clone https://github.com/JuliaStats/MixedModels.jl
    
AutoMLPipeline.jl (🥈15 · ⭐ 250) - A package that makes it trivial to create and evaluate.. MIT
  • GitHub (👨‍💻 4 · 🔀 18 · 📋 64 - 28% open · ⏱️ 23.05.2021):

     git clone https://github.com/IBM/AutoMLPipeline.jl
    
GeometricFlux.jl (🥈15 · ⭐ 200) - Geometric Deep Learning for Flux. MIT
  • GitHub (👨‍💻 10 · 🔀 17 · 📋 49 - 44% open · ⏱️ 17.05.2021):

     git clone https://github.com/yuehhua/GeometricFlux.jl
    
ADCME.jl (🥈15 · ⭐ 130) - Automatic Differentiation Library for Computational and Mathematical.. MIT
  • GitHub (👨‍💻 4 · 🔀 35 · 📥 96 · 📋 37 - 37% open · ⏱️ 21.05.2021):

     git clone https://github.com/kailaix/ADCME.jl
    
KernelFunctions.jl (🥈14 · ⭐ 120) - Julia package for kernel functions for machine learning. MIT
  • GitHub (👨‍💻 14 · 🔀 14 · 📋 100 - 37% open · ⏱️ 15.05.2021):

     git clone https://github.com/JuliaGaussianProcesses/KernelFunctions.jl
    
FastAI.jl (🥉12 · ⭐ 160) - Repository of best practices for deep learning in Julia, inspired by.. MIT
  • GitHub (👨‍💻 11 · 🔀 20 · 📋 18 - 50% open · ⏱️ 23.05.2021):

     git clone https://github.com/FluxML/FastAI.jl
    
Show 52 hidden projects...
  • Flux.jl (🥇19 · ⭐ 3K) - Relax! Flux is the ML library that doesn't make you tensor. ❗Unlicensed
  • Knet.jl (🥇19 · ⭐ 1.3K) - Ko University deep learning framework. ❗Unlicensed
  • MLJBase.jl (🥇17 · ⭐ 63) - Core functionality for the MLJ machine learning framework. MIT
  • DifferentialEquations.jl (🥈16 · ⭐ 1.8K) - Multi-language suite for high-performance solvers of.. ❗Unlicensed
  • MLJ.jl (🥈16 · ⭐ 1.1K) - A Julia machine learning framework. ❗Unlicensed
  • Zygote.jl (🥈16 · ⭐ 980) - Intimate Affection Auditor. ❗Unlicensed
  • ModelingToolkit.jl (🥈16 · ⭐ 630) - A modeling framework for automatically parallelized.. ❗Unlicensed
  • OrdinaryDiffEq.jl (🥈16 · ⭐ 220) - High performance differential equation solvers for.. ❗Unlicensed
  • TensorFlow.jl (🥈15 · ⭐ 830) - A Julia wrapper for TensorFlow. ❗Unlicensed
  • NeuralPDE.jl (🥈15 · ⭐ 330) - Physics-Informed Neural Networks (PINN) and Deep BSDE.. ❗Unlicensed
  • Distances.jl (🥈15 · ⭐ 270) - A Julia package for evaluating distances (metrics) between.. ❗Unlicensed
  • ReinforcementLearning.jl (🥈15 · ⭐ 220) - A reinforcement learning package for Julia. ❗Unlicensed
  • DiffEqBase.jl (🥈15 · ⭐ 120) - The lightweight Base library for shared types and.. ❗Unlicensed
  • ScikitLearn.jl (🥈14 · ⭐ 440) - Julia implementation of the scikit-learn API.. ❗Unlicensed
  • Clustering.jl (🥈14 · ⭐ 230) - A Julia package for data clustering. ❗Unlicensed
  • DecisionTree.jl (🥈14 · ⭐ 230 · 💤) - Julia implementation of Decision Tree (CART) and.. ❗Unlicensed
  • XGBoost.jl (🥈14 · ⭐ 180) - XGBoost Julia Package. ❗Unlicensed
  • MLBase.jl (🥈14 · ⭐ 180 · 💀) - A set of functions to support the development of machine learning.. MIT
  • NNlib.jl (🥈14 · ⭐ 99) - Neural Network primitives with multiple backends. ❗Unlicensed
  • ForneyLab.jl (🥈14 · ⭐ 90) - Julia package for automatically generating Bayesian.. ❗Unlicensed
  • Yota.jl (🥈14 · ⭐ 84) - Reverse-mode automatic differentiation in Julia. MIT
  • ReservoirComputing.jl (🥈14 · ⭐ 66) - Reservoir computing utilities for scientific machine.. MIT
  • TSML.jl (🥈14 · ⭐ 59) - A package for time series data processing, classification, clustering, and.. MIT
  • FluxTraining.jl (🥈14 · ⭐ 34) - A flexible neural net training library inspired by fast.ai. MIT
  • Mocha.jl (🥉13 · ⭐ 1.3K · 💀) - Deep Learning framework for Julia. ❗Unlicensed
  • Yao.jl (🥉13 · ⭐ 540 · 📈) - Extensible, Efficient Quantum Algorithm Design for Humans. ❗Unlicensed
  • Stheno.jl (🥉13 · ⭐ 250) - Probabilistic Programming with Gaussian processes in Julia. ❗Unlicensed
  • ArrayFire.jl (🥉13 · ⭐ 180) - Julia wrapper for the ArrayFire library. ❗Unlicensed
  • Merlin.jl (🥉13 · ⭐ 150 · 💀) - Deep Learning for Julia. MIT
  • Enzyme.jl (🥉13 · ⭐ 96) - Julia bindings for the Enzyme automatic differentiator. MIT
  • LossFunctions.jl (🥉13 · ⭐ 90 · 📈) - Julia package of loss functions for machine learning. ❗Unlicensed
  • UMAP.jl (🥉13 · ⭐ 81) - Uniform Manifold Approximation and Projection (UMAP) implementation in Julia. MIT
  • Mads.jl (🥉13 · ⭐ 75) - MADS: Model Analysis & Decision Support. ❗Unlicensed
  • Loess.jl (🥉13 · ⭐ 54) - Local regression, so smooooth!. ❗Unlicensed
  • Mamba.jl (🥉12 · ⭐ 240 · 💤) - Markov chain Monte Carlo (MCMC) for Bayesian analysis in.. ❗Unlicensed
  • Reinforce.jl (🥉12 · ⭐ 180) - Abstractions, algorithms, and utilities for reinforcement.. ❗Unlicensed
  • AutoGrad.jl (🥉12 · ⭐ 150) - Julia port of the Python autograd package. ❗Unlicensed
  • DiffEqBayes.jl (🥉12 · ⭐ 93) - Extension functionality which uses Stan.jl,.. ❗Unlicensed
  • NMF.jl (🥉12 · ⭐ 68) - A Julia package for non-negative matrix factorization. ❗Unlicensed
  • CausalInference.jl (🥉12 · ⭐ 64) - Causal inference, graphical models and structure.. ❗Unlicensed
  • JLBoost.jl (🥉12 · ⭐ 61) - A 100%-Julia implementation of Gradient-Boosting Regression Tree.. MIT
  • bat (🥉12 · ⭐ 56) - Bayesian analysis toolkit http://mpp.mpg.de/bat. ❗Unlicensed
  • DiffEqParamEstim.jl (🥉12 · ⭐ 33) - Easy scientific machine learning (SciML) parameter.. ❗Unlicensed
  • AtomicGraphNets.jl (🥉12 · ⭐ 25) - Atomic graph models for molecules and crystals in Julia. MIT
  • Torch.jl (🥉11 · ⭐ 130) - Sensible extensions for exposing torch in Julia. ❗Unlicensed
  • ONNX.jl (🥉11 · ⭐ 80) - Read ONNX graphs in Julia. ❗Unlicensed
  • ROCAnalysis.jl (🥉11 · ⭐ 24) - Receiver Operating Characteristics and functions for.. ❗Unlicensed
  • ManifoldLearning.jl (🥉10 · ⭐ 59) - A Julia package for manifold learning and nonlinear.. ❗Unlicensed
  • lathe (🥉10 · ⭐ 44) - A tool for generating bacterial genomes from metagenomes with nanopore long.. MIT
  • DiscriminantAnalysis.jl (🥉9 · ⭐ 8) - Regularized discriminant analysis in Julia. MIT
  • TimeSeriesClassification.jl (🥉8 · ⭐ 19) - Machine Learning with Time Series in Julia. MIT
  • OpenAIGym.jl (🥉7 · ⭐ 84 · 💤) - OpenAI's Gym binding for Julia. ❗Unlicensed

Text Data & NLP

Back to top

Libraries for processing, cleaning, manipulating, and analyzing text data as well as for diverse NLP tasks.

Transformers.jl (🥇16 · ⭐ 190) - Julia Implementation of Transformer models. MIT
  • GitHub (👨‍💻 8 · 🔀 29 · 📋 21 - 14% open · ⏱️ 22.05.2021):

     git clone https://github.com/chengchingwen/Transformers.jl
    
Show 11 hidden projects...
  • TextAnalysis.jl (🥇17 · ⭐ 300) - Julia package for text analysis. ❗Unlicensed
  • WordTokenizers.jl (🥈12 · ⭐ 68) - High performance tokenizers for natural language.. ❗Unlicensed
  • AdaGram.jl (🥈11 · ⭐ 160 · 💀) - Adaptive Skip-gram implementation in Julia. MIT
  • Embeddings.jl (🥈11 · ⭐ 52 · 💀) - Functions and data dependencies for loading various word.. MIT
  • BytePairEncoding.jl (🥈11 · ⭐ 3) - Julia implementation of Byte Pair Encoding for NLP. MIT
  • Languages.jl (🥉10 · ⭐ 34) - A package for working with human languages. ❗Unlicensed
  • TextModels.jl (🥉10 · ⭐ 7) - Neural Network based models for Natural Language Processing. ❗Unlicensed
  • Word2Vec.jl (🥉9 · ⭐ 51) - Julia interface to word2vec. ❗Unlicensed
  • WordNet.jl (🥉9 · ⭐ 22 · 💀) - A Julia package for Princeton's WordNet. ❗Unlicensed
  • TopicModels.jl (🥉8 · ⭐ 31 · 💤) - TopicModels for Julia. MIT
  • Snowball.jl (🥉5 · ⭐ 1) - Snowball stemming algorithms. MIT

Image Data

Back to top

Libraries for image & video processing, manipulation, and augmentation as well as libraries for computer vision.

Show 3 hidden projects...
  • Images.jl (🥇16 · ⭐ 440) - An image library for Julia. ❗Unlicensed
  • Metalhead.jl (🥉15 · ⭐ 200 · 📈) - Computer vision models for Flux. ❗Unlicensed
  • Augmentor.jl (🥉13 · ⭐ 99 · 📈) - A fast image augmentation library in Julia for machine.. ❗Unlicensed

Data Loading & Extraction

Back to top

Libraries for loading, collecting, and extracting data from a variety of data sources and formats.

MLDatasets.jl (🥈15 · ⭐ 120) - Utility package for accessing common Machine Learning datasets in.. MIT
  • GitHub (👨‍💻 13 · 🔀 25 · 📥 4 · 📋 25 - 44% open · ⏱️ 30.03.2021):

     git clone https://github.com/JuliaML/MLDatasets.jl
    
Show 6 hidden projects...
  • DataFrames.jl (🥇18 · ⭐ 1K) - In-memory tabular data in Julia. ❗Unlicensed
  • DataDeps.jl (🥈13 · ⭐ 91) - reproducible data setup for reproducible science. ❗Unlicensed
  • DataAugmentation.jl (🥈13 · ⭐ 4) - Flexible data augmentation library for machine and deep.. MIT
  • JuliaML/MLDataUtils.jl (🥉12 · ⭐ 77) - Utility package for generating, loading, splitting,.. ❗Unlicensed
  • CorpusLoaders.jl (🥉11 · ⭐ 21) - A variety of loaders for various NLP corpora. ❗Unlicensed
  • MLDataPattern.jl (🥉9 · ⭐ 40) - Utility package for subsetting, resampling, iteration,.. ❗Unlicensed

Workflow & Experiment Tracking

Back to top

Libraries to organize, track, and visualize machine learning experiments.

Show 1 hidden projects...

Hyperparameter Optimization & AutoML

Back to top

Libraries for hyperparameter optimization, automl and neural architecture search.

Show 1 hidden projects...
  • MLJTuning.jl (🥇14 · ⭐ 35) - Hyperparameter optimization algorithms for use in the MLJ machine.. MIT

Probabilistics & Statistics

Back to top

Libraries providing capabilities for probabilistic programming/reasoning, bayesian inference, gaussian processes, or statistics.

Show 12 hidden projects...
  • Distributions.jl (🥇18 · ⭐ 690) - A Julia package for probability distributions and.. ❗Unlicensed
  • GLM.jl (🥇15 · ⭐ 380) - Generalized linear models in Julia. ❗Unlicensed
  • HypothesisTests.jl (🥇15 · ⭐ 180) - Hypothesis tests for Julia. ❗Unlicensed
  • MultivariateStats.jl (🥈14 · ⭐ 230) - A Julia package for multivariate statistics and data.. ❗Unlicensed
  • GaussianProcesses.jl (🥈14 · ⭐ 220) - A Julia package for Gaussian Processes. ❗Unlicensed
  • MeasureTheory.jl (🥈14 · ⭐ 170) - MIT
  • ReadStat.jl (🥈14 · ⭐ 66) - Read files from Stata, SAS, and SPSS. MIT
  • KernelDensity.jl (🥉13 · ⭐ 100) - Kernel density estimators for Julia. ❗Unlicensed
  • Omega.jl (🥉13 · ⭐ 86) - Causal, Higher-Order, Probabilistic Programming. MIT
  • GaussianMixtures.jl (🥉13 · ⭐ 59) - Large scale Gaussian Mixture Models. ❗Unlicensed
  • GLMNet.jl (🥉12 · ⭐ 79) - Julia wrapper for fitting Lasso/ElasticNet GLM models using.. ❗Unlicensed
  • cscherrer/SossMLJ.jl (🥉11 · ⭐ 12) - SossMLJ makes it easy to build MLJ machines from user-.. MIT

Model Interpretability

Back to top

Libraries to visualize, explain, debug, evaluate, and interpret machine learning models.

Show 1 hidden projects...
  • Fairness.jl (🥇12 · ⭐ 18) - Julia Toolkit with fairness metrics and bias mitigation algorithms. MIT

Others

Back to top

Show 2 hidden projects...

Related Resources

Contribution

Contributions are encouraged and always welcome! If you like to add or update projects, choose one of the following ways:

  • Open an issue by selecting one of the provided categories from the issue page and fill in the requested information.
  • Modify the projects.yaml with your additions or changes, and submit a pull request. This can also be done directly via the Github UI.

If you like to contribute to or share suggestions regarding the project metadata collection or markdown generation, please refer to the best-of-generator repository. If you like to create your own best-of list, we recommend to follow this guide.

For more information on how to add or update projects, please read the contribution guidelines. By participating in this project, you agree to abide by its Code of Conduct.

License

CC0