Skip to content
forked from LuxDL/Lux.jl

Explicitly Parameterized Neural Networks in Julia

License

Notifications You must be signed in to change notification settings

cormullion/Lux.jl

This branch is 2158 commits behind LuxDL/Lux.jl:main.

Folders and files

NameName
Last commit message
Last commit date
Apr 9, 2024
Apr 8, 2024
Aug 21, 2023
Apr 6, 2024
Apr 10, 2024
Apr 7, 2024
Apr 9, 2024
Apr 9, 2024
Apr 9, 2024
Feb 18, 2024
Apr 7, 2024
Dec 17, 2023
Apr 1, 2022
Feb 13, 2024
Apr 9, 2024
Apr 4, 2024

Repository files navigation

Join the chat at https://julialang.zulipchat.com #machine-learning Latest Docs Stable Docs

CI Build status codecov Benchmarks Aqua QA

ColPrac: Contributor's Guide on Collaborative Practices for Community Packages SciML Code Style

The 🔥 Deep Learning Framework

Installation

] add Lux

Getting Started

using Lux, Random, Optimisers, Zygote
# using LuxCUDA, LuxAMDGPU # Optional packages for GPU support

# Seeding
rng = Random.default_rng()
Random.seed!(rng, 0)

# Construct the layer
model = Chain(BatchNorm(128), Dense(128, 256, tanh), BatchNorm(256),
              Chain(Dense(256, 1, tanh), Dense(1, 10)))

# Get the device determined by Lux
device = gpu_device()

# Parameter and State Variables
ps, st = Lux.setup(rng, model) .|> device

# Dummy Input
x = rand(rng, Float32, 128, 2) |> device

# Run the model
y, st = Lux.apply(model, x, ps, st)

# Gradients
gs = gradient(p -> sum(Lux.apply(model, x, p, st)[1]), ps)[1]

# Optimization
st_opt = Optimisers.setup(Optimisers.Adam(0.0001), ps)
st_opt, ps = Optimisers.update(st_opt, ps, gs)

Examples

Look in the examples directory for self-contained usage examples. The documentation has examples sorted into proper categories.

Ecosystem

Checkout our Ecosystem page for more details.

Getting Help

For usage related questions, please use Github Discussions or JuliaLang Discourse (machine learning domain) which allows questions and answers to be indexed. To report bugs use github issues or even better send in a pull request.

Citation

If you found this library to be useful in academic work, then please cite:

@software{pal2023lux,
  author    = {Pal, Avik},
  title     = {{Lux: Explicit Parameterization of Deep Neural Networks in Julia}},
  month     = apr,
  year      = 2023,
  note      = {If you use this software, please cite it as below.},
  publisher = {Zenodo},
  version   = {v0.5.0},
  doi       = {10.5281/zenodo.7808904},
  url       = {https://doi.org/10.5281/zenodo.7808904}
}

@thesis{pal2023efficient,
  title     = {{On Efficient Training \& Inference of Neural Differential Equations}},
  author    = {Pal, Avik},
  year      = {2023},
  school    = {Massachusetts Institute of Technology}
}

Also consider starring our github repo

About

Explicitly Parameterized Neural Networks in Julia

Resources

License

Citation

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Julia 100.0%