LuxDL/Lux.jl

Elegant and Performant Deep Learning

What it solves

Lux.jl 提供了一種高效且優雅的方式,在 Julia 語言中構建與訓練深度神經網路,將 Julia 的高階表達力與 XLA(Accelerated Linear Algebra)的效能結合起來。

How it works

Lux 採用顯式參數化的深度學習方法。與某些框架不同,它將模型架構(層)與參數與狀態分離,讓操作更容易,也更好地與 Julia 生態系統整合。它支援多種自動微分與最佳化後端,包括 Zygote 與 Enzyme,且可部署於各種裝置,如 CPU、GPU(透過 LuxCUDA)以及其他加速器。

Who it’s for

此框架設計給想在 JuliaLang 生態系統中使用深度學習功能的研究人員與開發者,特別是需要高效能、相容 XLA 的框架來構建複雜神經網路的使用者。

Highlights

  • Explicit Parameterization: Separates model structure from weights and state.
  • XLA Performance: Ability to leverage XLA for high-performance execution.
  • XLA-compatible backends: Supports Reactant.jl and Enzyme for optimized gradients.
  • Device Agnostic: Works across different hardware accelerators including CUDA GPUs.
  • Integrated Training API: Includes a TrainState API to automate training steps and gradient application.