patrick-kidger/lineax

Linear solvers in JAX and Equinox. https://docs.kidger.site/lineax

解决的问题

Lineax 是一个专为求解线性系统(求解 $Ax = b$ 中的 $x$)和线性最小二乘问题而设计的 JAX 库。它能够处理矩阵 $A$ 为矩形或病态的情况,为 JAX 生态系统内这些数学运算提供更统一、更稳定的处理方式。

工作原理

Lineax 使用线性算子来表示矩阵和雅可比矩阵,使得在求解问题时无需在内存中生成完整的矩阵。它支持多种求解器,如 QR 求解器和共轭梯度(CG)方法,并与 JAX 深度集成,以利用自动微分、GPU/TPU 加速和自动并行化。

适用人群

适用于从事科学计算、机器学习和科学人工智能的研究人员和开发者,他们需要与 JAX 和 Equinox 兼容的高效、数值稳定的线性代数运算。

主要亮点

  • PyTree 值的矩阵和向量:支持线性代数的复杂数据结构。
  • 通用线性算子:无需生成矩阵即可处理雅可比矩阵和转置。
  • PyTree 值的矩阵和向量:支持实值和复值输入。
  • 数值稳定性:通过线性最小二乘提供稳定的梯度。
  • JAX 集成:完全支持自动微分、GPU/TPU 加速和结构化矩阵(例如对称矩阵)。
  • 性能:某些算法的编译时间和运行时间得到优化。

相关

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