elixir-nx/axon

Nx-powered Neural Networks

解決的問題

Axon 為在 Elixir 生態系統中建構與訓練神經網路提供了一個全面的框架。它讓開發者無需離開主語言即可實現深度學習模型,提供用於模型建立的高階 API 與用於管理訓練迴圈的結構化 API,同時維持對數值定義的底層控制。

工作原理

Axon 建立在 Nx(數值 Elixir)之上,分為三個主要層級:

  • 函數式 API:基礎層,由 defn(數值定義)組成,提供常見的深度學習元件,如激活函數、層與損失函數。這使得模型可透過 Nx 編譯器進行 JIT 或 AOT 編譯以實現加速。
  • 模型建立 API:用於將模型定義為 Elixir 結構體的高階介面。它將模型定義與初始化和應用的責任分離,使用 Axon.build/2 產生預測與初始化函數。
  • 訓練 API:受 PyTorch Ignite 啟發的基於例程的系統,用於實作訓練迴圈,允許使用者透過指標與事件處理器來監控與控制迴圈。

適用對象

希望將深度學習與神經網路建構直接整合至自身應用程式的 Elixir 開發者,以及需要在高階模型建立與底層數值加速之間取得彈性結合的使用者。

主要特色

  • Nx 驅動:與 Nx 張量與編譯器(如 EXLA)完全整合,實現硬體加速。
  • 解耦 API:函數式、模型建立與訓練 API 可獨立使用。
  • 可編譯:支援 JIT 與 AOT 編譯,亦可轉換為 TensorFlow Lite 與 ONNX 等格式。
  • 可擴充:允許使用者將 Axon 的函數式 API 與自訂數值定義組合使用。

相關

  • 專案
  • 專案
  • 專案
  • 專案
  • 專案