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 与自定义数值定义组合使用。

相关

  • 项目
  • 项目
  • 项目
  • 项目
  • 项目