FluxML/Flux.jl

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

4,741

stars

4,859

commits

Julia

primary language

Aug 16, 2026

updated

fluxml.ai/
data-science
deep-learning
flux
machine-learning
neural-networks
the-human-brain

README

DOI Flux Downloads
ColPrac: Contributor's Guide on Collaborative Practices for Community Packages

Flux is an elegant approach to machine learning. It's a 100% pure-Julia stack, and provides lightweight abstractions on top of Julia's native GPU and AD support. Flux makes the easy things easy while remaining fully hackable.

Works best with Julia 1.10 or later. Here's a very short example to try it out:

using Flux
data = [(x, 2x-x^3) for x in -2:0.1f0:2]

model = let
  w, b, v = (randn(Float32, 23) for _ in 1:3)  # parameters
  x -> sum(v .* tanh.(w*x .+ b))               # callable
end
# model = Chain(vcat, Dense(1 => 23, tanh), Dense(23 => 1, bias=false), only)

opt_state = Flux.setup(Adam(), model)
for epoch in 1:100
  Flux.train!((m,x,y) -> (m(x) - y)^2, model, data, opt_state)
end

using Plots
plot(x -> 2x-x^3, -2, 2, label="truth")
scatter!(model, -2:0.1f0:2, label="learned")

In Flux 0.15, almost any parameterised function in Julia is a valid Flux model -- such as this closure over w, b, v. The same function can also be implemented with built-in layers as shown.

The quickstart page has a longer example. See the documentation for details, or the model zoo for examples. Ask questions on the Julia discourse or slack.

If you use Flux in your research, please cite our work.

Contributors

(top 30 of 247)

MikeInnes

1,464 commits

DhairyaLGandhi

508 commits

CarloLucibello

412 commits

bors[bot]

273 commits

FluxML/Flux.jl

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

4,741

stars

4,859

commits

Julia

primary language

Aug 16, 2026

updated

fluxml.ai/
data-science
deep-learning
flux
machine-learning
neural-networks
the-human-brain

README

DOI Flux Downloads
ColPrac: Contributor's Guide on Collaborative Practices for Community Packages

Flux is an elegant approach to machine learning. It's a 100% pure-Julia stack, and provides lightweight abstractions on top of Julia's native GPU and AD support. Flux makes the easy things easy while remaining fully hackable.

Works best with Julia 1.10 or later. Here's a very short example to try it out:

using Flux
data = [(x, 2x-x^3) for x in -2:0.1f0:2]

model = let
  w, b, v = (randn(Float32, 23) for _ in 1:3)  # parameters
  x -> sum(v .* tanh.(w*x .+ b))               # callable
end
# model = Chain(vcat, Dense(1 => 23, tanh), Dense(23 => 1, bias=false), only)

opt_state = Flux.setup(Adam(), model)
for epoch in 1:100
  Flux.train!((m,x,y) -> (m(x) - y)^2, model, data, opt_state)
end

using Plots
plot(x -> 2x-x^3, -2, 2, label="truth")
scatter!(model, -2:0.1f0:2, label="learned")

In Flux 0.15, almost any parameterised function in Julia is a valid Flux model -- such as this closure over w, b, v. The same function can also be implemented with built-in layers as shown.

The quickstart page has a longer example. See the documentation for details, or the model zoo for examples. Ask questions on the Julia discourse or slack.

If you use Flux in your research, please cite our work.

Contributors

(top 30 of 247)

MikeInnes

1,464 commits

DhairyaLGandhi

508 commits

CarloLucibello

412 commits

bors[bot]

273 commits

Languages

Julia

100.0%