gitmyhub

Flux.jl

Julia ★ 4.7k updated 21h ago

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

Flux is a machine learning library for Julia that lets you build and train neural networks using ordinary Julia functions, with built-in GPU support and automatic differentiation, no hidden layers in another language.

Juliasetup: moderatecomplexity 3/5

Flux is a machine learning library for the Julia programming language. Julia is a language designed for technical computing that runs fast like compiled code while being easy to write like a scripting language. Flux gives Julia programmers a set of tools for building and training neural networks, which are the kind of mathematical models behind modern AI applications like image recognition and text generation.

Flux is written entirely in Julia rather than wrapping libraries from another language. It builds on Julia's built-in support for running computations on graphics cards (GPU) and for automatically calculating the mathematical derivatives that training algorithms need. Because of this approach, advanced users can inspect and modify how Flux works at any level without hitting a wall where the internals are hidden in a different language.

A core idea in recent versions of Flux is that almost any ordinary Julia function with parameters counts as a valid model. You do not have to use a special class system. You can define a model as a simple function that closes over some numbers, or you can use the built-in layer types like Dense layers and Chain, which connects layers in sequence. Training loops use optimizers such as Adam to adjust the model's parameters until it fits your data.

The library has a companion model zoo repository with worked examples across different tasks. Documentation covers a quickstart guide and detailed references. The project has a published research paper and an active community on Julia's discussion forum and chat server. It works best with Julia version 1.10 or later.

Where it fits