Julia Machine Learning

Open-source Julia projects categorized as Machine Learning

Top 23 Julia Machine Learning Projects

  • julia

    The Julia Programming Language

    Project mention: Dart 3.3 | news.ycombinator.com | 2024-02-15

    3. dispatch on all the arguments

    the first solution is clean, but people really like dispatch.

    the second makes calling functions in the function call syntax weird, because the first argument is privileged semantically but not syntactically.

    the third makes calling functions in the method call syntax weird because the first argument is privileged syntactically but not semantically.

    the closest things to this i can think of off the top of my head in remotely popular programming languages are: nim, lisp dialects, and julia.

    nim navigates the dispatch conundrum by providing different ways to define free functions for different dispatch-ness. the tutorial gives a good overview: https://nim-lang.org/docs/tut2.html

    lisps of course lack UFCS.

    see here for a discussion on the lack of UFCS in julia: https://github.com/JuliaLang/julia/issues/31779

    so to sum up the answer to the original question: because it's only obvious how to make it nice and tidy like you're wanting if you sacrifice function dispatch, which is ubiquitous for good reason!

  • Flux.jl

    Relax! Flux is the ML library that doesn't make you tensor

    Project mention: Julia 1.10 Released | news.ycombinator.com | 2023-12-27
  • WorkOS

    The modern API for authentication & user identity. The APIs are flexible and easy-to-use, supporting authentication, user identity, and complex enterprise features like SSO and SCIM provisioning.

  • MLJ.jl

    A Julia machine learning framework

  • Zygote.jl

    21st century AD

    Project mention: Yann Lecun: ML would have advanced if other lang had been adopted versus Python | news.ycombinator.com | 2023-02-22

    If you look at Julia open source projects you'll see that the projects tend to have a lot more contributors than the Python counterparts, even over smaller time periods. A package for defining statistical distributions has had 202 contributors (https://github.com/JuliaStats/Distributions.jl), etc. Julia Base even has had over 1,300 contributors (https://github.com/JuliaLang/julia) which is quite a lot for a core language, and that's mostly because the majority of the core is in Julia itself.

    This is one of the things that was noted quite a bit at this SIAM CSE conference, that Julia development tends to have a lot more code reuse than other ecosystems like Python. For example, the various machine learning libraries like Flux.jl and Lux.jl share a lot of layer intrinsics in NNlib.jl (https://github.com/FluxML/NNlib.jl), the same GPU libraries (https://github.com/JuliaGPU/CUDA.jl), the same automatic differentiation library (https://github.com/FluxML/Zygote.jl), and of course the same JIT compiler (Julia itself). These two libraries are far enough apart that people say "Flux is to PyTorch as Lux is to JAX/flax", but while in the Python world those share almost 0 code or implementation, in the Julia world they share >90% of the core internals but have different higher levels APIs.

    If one hasn't participated in this space it's a bit hard to fathom how much code reuse goes on and how that is influenced by the design of multiple dispatch. This is one of the reasons there is so much cohesion in the community since it doesn't matter if one person is an ecologist and the other is a financial engineer, you may both be contributing to the same library like Distances.jl just adding a distance function which is then used in thousands of places. With the Python ecosystem you tend to have a lot more "megapackages", PyTorch, SciPy, etc. where the barrier to entry is generally a lot higher (and sometimes requires handling the build systems, fun times). But in the Julia ecosystem you have a lot of core development happening in "small" but central libraries, like Distances.jl or Distributions.jl, which are simple enough for an undergrad to get productive in a week but is then used everywhere (Distributions.jl for example is used in every statistics package, and definitions of prior distributions for Turing.jl's probabilistic programming language, etc.).

  • BeautifulAlgorithms.jl

    Concise and beautiful algorithms written in Julia

  • AlphaZero.jl

    A generic, simple and fast implementation of Deepmind's AlphaZero algorithm.

  • StatsWithJuliaBook

    Project mention: An Introduction to Statistical Learning with Applications in Python | news.ycombinator.com | 2023-07-09

    I actually like this book by Yoni Nazarathy

    https://statisticswithjulia.org/

    They have a book on Mathematics of DL too which is a natural progression from the concepts covered here.

    (I am slightly biased towards this since I've known the author by online interactions)

  • InfluxDB

    Power Real-Time Data Analytics at Scale. Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality.

  • TensorFlow.jl

    A Julia wrapper for TensorFlow

  • NeuralPDE.jl

    Physics-Informed Neural Networks (PINN) Solvers of (Partial) Differential Equations for Scientific Machine Learning (SciML) accelerated simulation

    Project mention: Automatically install huge number of dependency? | /r/Julia | 2023-05-31

    The documentation has a manifest associated with it: https://docs.sciml.ai/NeuralPDE/dev/#Reproducibility. Instantiating the manifest will give you all of the exact versions used for the documentation build (https://github.com/SciML/NeuralPDE.jl/blob/gh-pages/v5.7.0/assets/Manifest.toml). You just ]instantiate folder_of_manifest. Or you can use the Project.toml.

  • Yao.jl

    Extensible, Efficient Quantum Algorithm Design for Humans.

  • model-zoo

    Please do not feed the models

  • Oceananigans.jl

    🌊 Julia software for fast, friendly, flexible, ocean-flavored fluid dynamics on CPUs and GPUs

    Project mention: Julia 1.10 Released | news.ycombinator.com | 2023-12-27

    I think it’s also the design philosophy. JuMP and ForwardDiff are great success stories and are packages very light on dependencies. I like those.

    The DiffEq library seems to pull you towards the SciML ecosystem and that might not be agreeable to everyone.

    For instance a known Julia project that simulates diff equations seems to have implemented their own solver

    https://github.com/CliMA/Oceananigans.jl

  • ReinforcementLearning.jl

    A reinforcement learning package for Julia

  • ScikitLearn.jl

    Julia implementation of the scikit-learn API https://cstjean.github.io/ScikitLearn.jl/dev/

  • SymbolicRegression.jl

    Distributed High-Performance Symbolic Regression in Julia

    Project mention: Symbolicregression.jl – High-Performance Symbolic Regression in Julia and Python | news.ycombinator.com | 2023-07-15
  • Transformers.jl

    Julia Implementation of Transformer models

    Project mention: Julia 1.10 Released | news.ycombinator.com | 2023-12-27

    Flux is quite a nice lower level library:

    https://github.com/FluxML/Flux.jl

    On top of that there are many higher level libraries such as Transformers.jl

    https://github.com/chengchingwen/Transformers.jl

  • Lux.jl

    Explicitly Parameterized Neural Networks in Julia

    Project mention: Julia 1.10 Released | news.ycombinator.com | 2023-12-27
  • Enzyme.jl

    Julia bindings for the Enzyme automatic differentiator

  • GeometricFlux.jl

    Geometric Deep Learning for Flux

  • Stheno.jl

    Probabilistic Programming with Gaussian processes in Julia

  • ADCME.jl

    Automatic Differentiation Library for Computational and Mathematical Engineering

  • ComponentArrays.jl

    Arrays with arbitrarily nested named components.

  • MLDatasets.jl

    Utility package for accessing common Machine Learning datasets in Julia

  • Onboard AI

    ChatGPT with full context of any GitHub repo. Onboard AI learns any GitHub repo in minutes and lets you chat with it to locate functionality, understand different parts, and generate new code. Use it for free at app.getonboardai.com.

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 2024-02-15.

Julia Machine Learning related posts

Index

What are some of the best open-source Machine Learning projects in Julia? This list will help you:

Project Stars
1 julia 44,062
2 Flux.jl 4,343
3 MLJ.jl 1,700
4 Zygote.jl 1,426
5 BeautifulAlgorithms.jl 1,292
6 AlphaZero.jl 1,200
7 StatsWithJuliaBook 1,056
8 TensorFlow.jl 880
9 NeuralPDE.jl 878
10 Yao.jl 871
11 model-zoo 870
12 Oceananigans.jl 861
13 ReinforcementLearning.jl 544
14 ScikitLearn.jl 531
15 SymbolicRegression.jl 494
16 Transformers.jl 492
17 Lux.jl 391
18 Enzyme.jl 378
19 GeometricFlux.jl 343
20 Stheno.jl 331
21 ADCME.jl 277
22 ComponentArrays.jl 267
23 MLDatasets.jl 215
ChatGPT with full context of any GitHub repo.
Onboard AI learns any GitHub repo in minutes and lets you chat with it to locate functionality, understand different parts, and generate new code. Use it for free at app.getonboardai.com.
app.getonboardai.com