{"id":32153926,"url":"https://github.com/luxdl/lux.jl","last_synced_at":"2026-04-21T02:15:14.063Z","repository":{"id":37021309,"uuid":"472190973","full_name":"LuxDL/Lux.jl","owner":"LuxDL","description":"Elegant and Performant Deep Learning","archived":false,"fork":false,"pushed_at":"2026-01-26T04:36:55.000Z","size":285491,"stargazers_count":671,"open_issues_count":82,"forks_count":80,"subscribers_count":10,"default_branch":"main","last_synced_at":"2026-01-26T09:05:44.820Z","etag":null,"topics":["deep-learning","gpu","machine-learning","neural-networks","scientific-machine-learning","tpu","xla"],"latest_commit_sha":null,"homepage":"https://lux.csail.mit.edu/","language":"Julia","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/LuxDL.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":"CITATION.cff","codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2022-03-21T04:53:14.000Z","updated_at":"2026-01-26T02:47:33.000Z","dependencies_parsed_at":"2023-02-10T14:01:34.672Z","dependency_job_id":"30a3a9bf-87df-414e-a3e9-92e23796b57d","html_url":"https://github.com/LuxDL/Lux.jl","commit_stats":null,"previous_names":["avik-pal/lux.jl","avik-pal/explicitfluxlayers.jl"],"tags_count":489,"template":false,"template_full_name":null,"purl":"pkg:github/LuxDL/Lux.jl","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/LuxDL%2FLux.jl","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/LuxDL%2FLux.jl/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/LuxDL%2FLux.jl/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/LuxDL%2FLux.jl/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/LuxDL","download_url":"https://codeload.github.com/LuxDL/Lux.jl/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/LuxDL%2FLux.jl/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28884708,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-29T19:55:09.949Z","status":"ssl_error","status_checked_at":"2026-01-29T19:55:08.490Z","response_time":59,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["deep-learning","gpu","machine-learning","neural-networks","scientific-machine-learning","tpu","xla"],"created_at":"2025-10-21T11:47:48.208Z","updated_at":"2026-04-21T02:15:14.048Z","avatar_url":"https://github.com/LuxDL.png","language":"Julia","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cp align=\"center\"\u003e\n    \u003cimg width=\"400px\" src=\"assets/lux-logo.svg#gh-light-mode-only\"/\u003e\n    \u003cimg width=\"400px\" src=\"assets/lux-logo-dark.svg#gh-dark-mode-only\"/\u003e\n\u003c/p\u003e\n\n\u003cdiv align=\"center\"\u003e\n\n[![GitHub Discussions](https://img.shields.io/github/discussions/LuxDL/Lux.jl?color=white\u0026logo=github\u0026label=Discussions)](https://github.com/LuxDL/Lux.jl/discussions)\n[![Latest Docs](https://img.shields.io/badge/docs-latest-blue.svg)](http://lux.csail.mit.edu/dev/)\n[![Stable Docs](https://img.shields.io/badge/docs-stable-blue.svg)](http://lux.csail.mit.edu/stable/)\n\n[![CI](https://github.com/LuxDL/Lux.jl/actions/workflows/CI.yml/badge.svg?branch=main)](https://github.com/LuxDL/Lux.jl/actions/workflows/CI.yml)\n[![CI (pre-release)](\u003chttps://img.shields.io/github/actions/workflow/status/LuxDL/Lux.jl/CIPreRelease.yml?branch=main\u0026label=CI%20(pre-release)\u0026logo=github\u003e)](https://github.com/LuxDL/Lux.jl/actions/workflows/CIPreRelease.yml)\n[![Build status](https://img.shields.io/buildkite/ba1f9622add5978c2d7b194563fd9327113c9c21e5734be20e/main.svg?label=gpu\u0026branch=main\u0026logo=buildkite)](https://buildkite.com/julialang/lux-dot-jl)\n[![codecov](https://codecov.io/gh/LuxDL/Lux.jl/branch/main/graph/badge.svg?token=IMqBM1e3hz)](https://codecov.io/gh/LuxDL/Lux.jl)\n\u003c!-- [![Benchmarks](https://github.com/LuxDL/Lux.jl/actions/workflows/Benchmark.yml/badge.svg?branch=main)](https://lux.csail.mit.edu/benchmarks/) --\u003e\n\n[![Downloads](https://img.shields.io/badge/dynamic/json?url=http%3A%2F%2Fjuliapkgstats.com%2Fapi%2Fv1%2Fmonthly_downloads%2FLux\u0026query=total_requests\u0026suffix=%2Fmonth\u0026label=Downloads)](https://juliapkgstats.com/pkg/Lux)\n[![Downloads](https://img.shields.io/badge/dynamic/json?url=http%3A%2F%2Fjuliapkgstats.com%2Fapi%2Fv1%2Ftotal_downloads%2FLux\u0026query=total_requests\u0026\u0026label=Total%20Downloads)](https://juliapkgstats.com/pkg/Lux)\n\n[![JET Testing](https://img.shields.io/badge/%F0%9F%9B%A9%EF%B8%8F_tested_with-JET.jl-233f9a)](https://github.com/aviatesk/JET.jl)\n[![Aqua QA](https://raw.githubusercontent.com/JuliaTesting/Aqua.jl/master/badge.svg)](https://github.com/JuliaTesting/Aqua.jl)\n[![ColPrac: Contributor's Guide on Collaborative Practices for Community Packages](https://img.shields.io/badge/ColPrac-Contributor's%20Guide-blueviolet)](https://github.com/SciML/ColPrac)\n[![Code Style: Blue](https://img.shields.io/badge/code%20style-blue-4495d1.svg)](https://github.com/JuliaDiff/BlueStyle)\n\n\u003c/div\u003e\n\n\u003cdiv align=\"center\"\u003e\n    \u003ch2\u003eElegant \u0026 Performant Deep Learning in JuliaLang\u003c/h2\u003e\n    \u003ch3\u003eModel with the elegance of Julia, and the performance of XLA.\u003c/h3\u003e\n\u003c/div\u003e\n\n## 💻 Installation\n\n```julia\nimport Pkg\nPkg.add(\"Lux\")\n```\n\n\u003e [!TIP]\n\u003e To use Lux online, use [Google Colab](https://colab.research.google.com/). The Julia Runtime comes pre-installed with Lux and Reactant!\n\n\u003cdiv align=\"center\"\u003e\n\n| **Packages**                                           | **Stable Version**                                             | **Monthly Downloads**                                                 | **Total Downloads**                                                         | **Build Status**                                                                                                                                |\n| :----------------------------------------------------- | :------------------------------------------------------------- | :-------------------------------------------------------------------- | :-------------------------------------------------------------------------- | :---------------------------------------------------------------------------------------------------------------------------------------------- |\n| 📦 [Lux.jl](./src)                                     | [![][lux-version]][lux-juliahub]                               | [![][downloads-lux]][downloads-lux-url]                               | [![][total-downloads-lux]][downloads-lux-url]                               | [![][gh-actions-lux]][gh-actions-lux-url] [![][gh-actions-lux-prerelease]][gh-actions-lux-prerelease-url] [![][buildkite-badge]][buildkite-url] |\n| └ 📦 [LuxLib.jl](./lib/LuxLib)                         | [![][luxlib-version]][luxlib-juliahub]                         | [![][downloads-luxlib]][downloads-luxlib-url]                         | [![][total-downloads-luxlib]][downloads-luxlib-url]                         | [![][gh-actions-luxlib]][gh-actions-luxlib-url]                                                                                                 |\n| └ 📦 [LuxCore.jl](./lib/LuxCore)                       | [![][luxcore-version]][luxcore-juliahub]                       | [![][downloads-luxcore]][downloads-luxcore-url]                       | [![][total-downloads-luxcore]][downloads-luxcore-url]                       | [![][gh-actions-luxcore]][gh-actions-luxcore-url]                                                                                               |\n| └ 📦 [MLDataDevices.jl](./lib/MLDataDevices)           | [![][mldatadevices-version]][mldatadevices-juliahub]           | [![][downloads-mldatadevices]][downloads-mldatadevices-url]           | [![][total-downloads-mldatadevices]][downloads-mldatadevices-url]           | [![][gh-actions-mldatadevices]][gh-actions-mldatadevices-url]                                                                                   |\n| └ 📦 [WeightInitializers.jl](./lib/WeightInitializers) | [![][weightinitializers-version]][weightinitializers-juliahub] | [![][downloads-weightinitializers]][downloads-weightinitializers-url] | [![][total-downloads-weightinitializers]][downloads-weightinitializers-url] | [![][gh-actions-weightinitializers]][gh-actions-weightinitializers-url]                                                                         |\n| └ 📦 [LuxTestUtils.jl](./lib/LuxTestUtils)             | [![][luxtestutils-version]][luxtestutils-juliahub]             | [![][downloads-luxtestutils]][downloads-luxtestutils-url]             | [![][total-downloads-luxtestutils]][downloads-luxtestutils-url]             | [![][gh-actions-luxtestutils]][gh-actions-luxtestutils-url]                                                                                     |\n| └ 📦 [LuxCUDA.jl](./lib/LuxCUDA)                       | [![][luxcuda-version]][luxcuda-juliahub]                       | [![][downloads-luxcuda]][downloads-luxcuda-url]                       | [![][total-downloads-luxcuda]][downloads-luxcuda-url]                       | [![][gh-actions-luxcuda]][gh-actions-luxcuda-url]                                                                                               |\n\n\u003c/div\u003e\n\n\u003c!-- VARIABLES --\u003e\n\n\u003c!-- Package --\u003e\n\n[lux-version]: https://juliahub.com/docs/General/Lux/stable/version.svg?color=blue\n[luxlib-version]: https://juliahub.com/docs/General/LuxLib/stable/version.svg?color=blue\n[luxcore-version]: https://juliahub.com/docs/General/LuxCore/stable/version.svg?color=blue\n[mldatadevices-version]: https://juliahub.com/docs/General/MLDataDevices/stable/version.svg?color=blue\n[weightinitializers-version]: https://juliahub.com/docs/General/WeightInitializers/stable/version.svg?color=blue\n[luxtestutils-version]: https://juliahub.com/docs/General/LuxTestUtils/stable/version.svg?color=blue\n[luxcuda-version]: https://juliahub.com/docs/General/LuxCUDA/stable/version.svg?color=blue\n[lux-juliahub]: https://juliahub.com/ui/Packages/General/Lux\n[luxlib-juliahub]: https://juliahub.com/ui/Packages/General/LuxLib\n[luxcore-juliahub]: https://juliahub.com/ui/Packages/General/LuxCore\n[mldatadevices-juliahub]: https://juliahub.com/ui/Packages/General/MLDataDevices\n[weightinitializers-juliahub]: https://juliahub.com/ui/Packages/General/WeightInitializers\n[luxtestutils-juliahub]: https://juliahub.com/ui/Packages/General/LuxTestUtils\n[luxcuda-juliahub]: https://juliahub.com/ui/Packages/General/LuxCUDA\n\n\u003c!-- Documentation --\u003e\n\n[docr-img]: https://img.shields.io/badge/docs-stable-blue.svg\n[docd-img]: https://img.shields.io/badge/docs-dev-blue.svg\n[docr-url]: https://lux.csail.mit.edu/stable/\n[docd-url]: https://lux.csail.mit.edu/dev/\n\n\u003c!-- Buildkite --\u003e\n\n[buildkite-badge]: https://img.shields.io/buildkite/ba1f9622add5978c2d7b194563fd9327113c9c21e5734be20e/main.svg?label=gpu\u0026branch=main\u0026logo=buildkite]\n\n[buildkite-url]: https://buildkite.com/julialang/lux-dot-jl/builds?branch=main\n\n\u003c!-- CI --\u003e\n\n[gh-actions-lux]: https://github.com/LuxDL/Lux.jl/workflows/CI%20(Lux)/badge.svg\n[gh-actions-lux-prerelease]: https://github.com/LuxDL/Lux.jl/workflows/CIPreRelease%20(Lux)/badge.svg\n[gh-actions-luxlib]: https://github.com/LuxDL/Lux.jl/workflows/CI%20(LuxLib)/badge.svg\n[gh-actions-luxcore]: https://github.com/LuxDL/Lux.jl/workflows/CI%20(LuxCore)/badge.svg\n[gh-actions-mldatadevices]: https://github.com/LuxDL/Lux.jl/workflows/CI%20(MLDataDevices)/badge.svg\n[gh-actions-weightinitializers]: https://github.com/LuxDL/Lux.jl/workflows/CI%20(WeightInitializers)/badge.svg\n[gh-actions-luxtestutils]: https://github.com/LuxDL/Lux.jl/workflows/CI%20(LuxTestUtils)/badge.svg\n[gh-actions-luxcuda]: https://github.com/LuxDL/Lux.jl/workflows/CI%20(LuxCUDA)/badge.svg\n[gh-actions-lux-url]: https://github.com/LuxDL/Lux.jl/actions/workflows/CI.yml\n[gh-actions-lux-prerelease-url]: https://github.com/LuxDL/Lux.jl/actions/workflows/CIPreRelease.yml\n[gh-actions-luxlib-url]: https://github.com/LuxDL/Lux.jl/actions/workflows/CI_LuxLib.yml\n[gh-actions-luxcore-url]: https://github.com/LuxDL/Lux.jl/actions/workflows/CI_LuxCore.yml\n[gh-actions-mldatadevices-url]: https://github.com/LuxDL/Lux.jl/actions/workflows/CI_MLDataDevices.yml\n[gh-actions-weightinitializers-url]: https://github.com/LuxDL/Lux.jl/actions/workflows/CI_WeightInitializers.yml\n[gh-actions-luxtestutils-url]: https://github.com/LuxDL/Lux.jl/actions/workflows/CI_LuxTestUtils.yml\n[gh-actions-luxcuda-url]: https://github.com/LuxDL/Lux.jl/actions/workflows/CI_LuxCUDA.yml\n\n\u003c!-- Downloads --\u003e\n\n[total-downloads-lux]: https://img.shields.io/badge/dynamic/json?url=http%3A%2F%2Fjuliapkgstats.com%2Fapi%2Fv1%2Ftotal_downloads%2FLux\u0026query=total_requests\u0026label=Downloads\n[total-downloads-luxlib]: https://img.shields.io/badge/dynamic/json?url=http%3A%2F%2Fjuliapkgstats.com%2Fapi%2Fv1%2Ftotal_downloads%2FLuxLib\u0026query=total_requests\u0026label=Downloads\n[total-downloads-luxcore]: https://img.shields.io/badge/dynamic/json?url=http%3A%2F%2Fjuliapkgstats.com%2Fapi%2Fv1%2Ftotal_downloads%2FLuxCore\u0026query=total_requests\u0026label=Downloads\n[total-downloads-mldatadevices]: https://img.shields.io/badge/dynamic/json?url=http%3A%2F%2Fjuliapkgstats.com%2Fapi%2Fv1%2Ftotal_downloads%2FMLDataDevices\u0026query=total_requests\u0026label=Downloads\n[total-downloads-weightinitializers]: https://img.shields.io/badge/dynamic/json?url=http%3A%2F%2Fjuliapkgstats.com%2Fapi%2Fv1%2Ftotal_downloads%2FWeightInitializers\u0026query=total_requests\u0026label=Downloads\n[total-downloads-luxtestutils]: https://img.shields.io/badge/dynamic/json?url=http%3A%2F%2Fjuliapkgstats.com%2Fapi%2Fv1%2Ftotal_downloads%2FLuxTestUtils\u0026query=total_requests\u0026label=Downloads\n[total-downloads-luxcuda]: https://img.shields.io/badge/dynamic/json?url=http%3A%2F%2Fjuliapkgstats.com%2Fapi%2Fv1%2Ftotal_downloads%2FLuxCUDA\u0026query=total_requests\u0026label=Downloads\n[downloads-lux]: https://img.shields.io/badge/dynamic/json?url=http%3A%2F%2Fjuliapkgstats.com%2Fapi%2Fv1%2Fmonthly_downloads%2FLux\u0026query=total_requests\u0026suffix=%2Fmonth\u0026label=Downloads\n[downloads-luxlib]: https://img.shields.io/badge/dynamic/json?url=http%3A%2F%2Fjuliapkgstats.com%2Fapi%2Fv1%2Fmonthly_downloads%2FLuxLib\u0026query=total_requests\u0026suffix=%2Fmonth\u0026label=Downloads\n[downloads-luxcore]: https://img.shields.io/badge/dynamic/json?url=http%3A%2F%2Fjuliapkgstats.com%2Fapi%2Fv1%2Fmonthly_downloads%2FLuxCore\u0026query=total_requests\u0026suffix=%2Fmonth\u0026label=Downloads\n[downloads-mldatadevices]: https://img.shields.io/badge/dynamic/json?url=http%3A%2F%2Fjuliapkgstats.com%2Fapi%2Fv1%2Fmonthly_downloads%2FMLDataDevices\u0026query=total_requests\u0026suffix=%2Fmonth\u0026label=Downloads\n[downloads-weightinitializers]: https://img.shields.io/badge/dynamic/json?url=http%3A%2F%2Fjuliapkgstats.com%2Fapi%2Fv1%2Fmonthly_downloads%2FWeightInitializers\u0026query=total_requests\u0026suffix=%2Fmonth\u0026label=Downloads\n[downloads-luxtestutils]: https://img.shields.io/badge/dynamic/json?url=http%3A%2F%2Fjuliapkgstats.com%2Fapi%2Fv1%2Fmonthly_downloads%2FLuxTestUtils\u0026query=total_requests\u0026suffix=%2Fmonth\u0026label=Downloads\n[downloads-luxcuda]: https://img.shields.io/badge/dynamic/json?url=http%3A%2F%2Fjuliapkgstats.com%2Fapi%2Fv1%2Fmonthly_downloads%2FLuxCUDA\u0026query=total_requests\u0026suffix=%2Fmonth\u0026label=Downloads\n[downloads-lux-url]: http://juliapkgstats.com/pkg/Lux\n[downloads-luxlib-url]: http://juliapkgstats.com/pkg/LuxLib\n[downloads-luxcore-url]: http://juliapkgstats.com/pkg/LuxCore\n[downloads-mldatadevices-url]: http://juliapkgstats.com/pkg/MLDataDevices\n[downloads-weightinitializers-url]: http://juliapkgstats.com/pkg/WeightInitializers\n[downloads-luxtestutils-url]: http://juliapkgstats.com/pkg/LuxTestUtils\n[downloads-luxcuda-url]: http://juliapkgstats.com/pkg/LuxCUDA\n\n## 🚀 Benchmarks\n\nCurrently Benchmarks are scatter across a few places:\n\n  1. For comparison with other Julia packages like CUDA.jl take a look\n     at [Lux.jl/perf](./perf/README.md).\n  2. \u003chttps://enzymead.github.io/Enzyme-JAX/benchmarks/\u003e highlights\n     performance of EnzymeJAX (backend for Reactant.jl) against JAX.\n  3. \u003chttps://enzymead.github.io/Reactant.jl/benchmarks/\u003e highlights\n     performance of Reactant.jl against default XLA and base Julia\n     compilation.\n\n## 🤸 Quickstart\n\n### Reactant \u0026 Enzyme\n\n```julia\nusing Lux, Random, Optimisers, Reactant, Enzyme\n\nrng = Random.default_rng()\nRandom.seed!(rng, 0)\n\nmodel = Chain(Dense(128, 256, tanh), Chain(Dense(256, 1, tanh), Dense(1, 10)))\n\ndev = reactant_device()\n\nps, st = Lux.setup(rng, model) |\u003e dev\n\nx = rand(rng, Float32, 128, 2) |\u003e dev\n\n# We need to compile the model before we can use it.\nmodel_forward = @compile model(x, ps, Lux.testmode(st))\nmodel_forward(x, ps, Lux.testmode(st))\n\n# Gradients can be computed using Enzyme\n@jit Enzyme.gradient(Reverse, sum ∘ first ∘ Lux.apply, Const(model), x, ps, Const(st))\n\n# All of this can be automated using the TrainState API\ntrain_state = Training.TrainState(model, ps, st, Adam(0.001f0))\n\ngs, loss, stats, train_state = Training.single_train_step!(\n    AutoEnzyme(), MSELoss(),\n    (x, dev(rand(rng, Float32, 10, 2))), train_state\n)\n```\n\n### Native Julia \u0026 Zygote\n\n```julia\nusing Lux, Random, Optimisers, Zygote\n# using LuxCUDA, AMDGPU, Metal, oneAPI # Optional packages for GPU support\n\n# Seeding\nrng = Random.default_rng()\nRandom.seed!(rng, 0)\n\n# Construct the layer\nmodel = Chain(Dense(128, 256, tanh), Chain(Dense(256, 1, tanh), Dense(1, 10)))\n\n# Get the device determined by Lux\ndev = gpu_device()\n\n# Parameter and State Variables\nps, st = Lux.setup(rng, model) |\u003e dev\n\n# Dummy Input\nx = rand(rng, Float32, 128, 2) |\u003e dev\n\n# Run the model\ny, st = Lux.apply(model, x, ps, st)\n\n# Gradients\n## First construct a TrainState\ntrain_state = Lux.Training.TrainState(model, ps, st, Adam(0.0001f0))\n\n## We can compute the gradients using Training.compute_gradients\ngs, loss, stats, train_state = Lux.Training.compute_gradients(AutoZygote(), MSELoss(),\n    (x, dev(rand(rng, Float32, 10, 2))), train_state)\n\n## Optimization\ntrain_state = Training.apply_gradients!(train_state, gs) # or Training.apply_gradients (no `!` at the end)\n\n# Both these steps can be combined into a single call\ngs, loss, stats, train_state = Training.single_train_step!(AutoZygote(), MSELoss(),\n    (x, dev(rand(rng, Float32, 10, 2))), train_state)\n```\n\n## 📚 Examples\n\nLook in the [examples](/examples/) directory for self-contained usage examples. The [documentation](https://lux.csail.mit.edu) has examples sorted into proper categories.\n\n## 🆘 Getting Help\n\nFor usage related questions, please use [Github Discussions](https://github.com/orgs/LuxDL/discussions) which allows questions and answers to be indexed. To report bugs use [github issues](https://github.com/LuxDL/Lux.jl/issues) or even better send in a [pull request](https://github.com/LuxDL/Lux.jl/pulls).\n\n## 🧑‍🔬 Citation\n\nIf you found this library to be useful in academic work, then please cite:\n\n```bibtex\n@software{pal2023lux,\n  author    = {Pal, Avik},\n  title     = {{Lux: Explicit Parameterization of Deep Neural Networks in Julia}},\n  month     = apr,\n  year      = 2023,\n  note      = {If you use this software, please cite it as below.},\n  publisher = {Zenodo},\n  version   = {v1.4.2},\n  doi       = {10.5281/zenodo.7808903},\n  url       = {https://doi.org/10.5281/zenodo.7808903},\n  swhid     = {swh:1:dir:1a304ec3243961314a1cc7c1481a31c4386c4a34;origin=https://doi.org/10.5281/zenodo.7808903;visit=swh:1:snp:e2bbe43b14bde47c4ddf7e637eb7fc7bd10db8c7;anchor=swh:1:rel:2c0c0ff927e7bfe8fc8bc43fd553ab392a6eb403;path=/}\n}\n\n@thesis{pal2023efficient,\n  title     = {{On Efficient Training \\\u0026 Inference of Neural Differential Equations}},\n  author    = {Pal, Avik},\n  year      = {2023},\n  school    = {Massachusetts Institute of Technology}\n}\n```\n\nAlso consider starring [our github repo](https://github.com/LuxDL/Lux.jl/).\n\n## 🧑‍💻 Contributing\n\nThis section is somewhat incomplete. You can contribute by contributing to finishing this\nsection 😜.\n\n### 💎 Formatting (JuliaFormatter)\n\n\u003e [!NOTE]\n\u003e Pin JuliaFormatter to v1 until upstream issues with v2 are resolved.\n\n```julia\nusing JuliaFormatter\nformat(\".\")\n```\n\n### 🧪 Testing\n\nThe full test of `Lux.jl` takes a long time, here's how to test a portion of the code.\n\nTests are organized by directories, where each directory contains test files with `@testset`\nblocks. For example, tests for `SkipConnection` are in `test/core_layers/containers_tests.jl`.\n\n#### Running a Specific Test File\n\nThe easiest way to run a specific test is to directly activate the test directory and\ninclude the test file:\n\n```julia\n# From the Lux.jl root directory\nusing Pkg\nPkg.activate(\"test\")\n\n# Run a specific test file\ninclude(\"test/core_layers/containers_tests.jl\")\n```\n\nThis approach allows you to quickly iterate on specific tests without running the entire\ntest suite.\n\nSee [ParallelTestRunners.jl](https://github.com/JuliaTesting/ParallelTestRunner.jl) for\ndetails on executing specific groups of tests.\n\n#### Running Test Groups via CI\n\nTo run a specific group of tests via the test runner, you can pass the directory name as a\npositional argument:\n\n```shell\njulia --project -e 'using Pkg; Pkg.test(test_args=[\"core_layers\"])'\n```\n\n#### Running All Tests\n\nTo run the full test suite:\n\n```shell\njulia --project -e 'using Pkg; Pkg.test()'\n```\n\n### 📖 Documentation\n\nLux builds a bunch of tutorials as part of its documentation. This can be time-consuming and\nrequires a lot of compute. To speed up the build, you can set the\n`LUX_DOCS_DRAFT_BUILD=true`.\n\n```shell\nLUX_DOCS_DRAFT_BUILD=true julia --threads=auto --startup=no --project=docs docs/make.jl\n```\n\nWhen writing tutorials (anything under `examples/`), include the tutorial in\n`docs/tutorials.jl`. If the tutorial is time-consuming, set `should_run` to `false`.\n\nAdditionally for a new page to be included in the navigation and sidebar, these need to be\nadded to `docs/src/.vitepress/config.mts`. Specifically these need to be added under\n`sidebar` and/or `nav` based on the type of page.\n\nTo use LiveServer to preview the docs locally, checkout\n[DocumenterVitepress.jl](https://luxdl.github.io/DocumenterVitepress.jl/dev/manual/get_started#Preview-Documentation-Development-Instantly)\ndocumentation.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fluxdl%2Flux.jl","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fluxdl%2Flux.jl","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fluxdl%2Flux.jl/lists"}