patrick-kidger/diffrax

Numerical differential equation solvers in JAX. Autodifferentiable and GPU-capable. https://docs.kidger.site/diffrax/

What it solves

Diffrax 提供了一种在 JAX 生态系统中数值求解微分方程(特别是常微分方程 (ODE)、随机微分方程 (SDE) 与受控微分方程 (CDE))的方法。它使这些求解器具备自动微分能力并能在 GPU 上运行,这对于将基于物理的模型与机器学习结合至关重要。

How it works

基于 JAX 构建,该库使用统一的内部结构来处理不同类型的方程。它支持多种求解器(例如 Tsit5Dopri8),允许状态以 PyTree 形式表示,并提供多种 adjoint 方法进行反向传播。由于是基于 JAX,几乎所有过程的每个部分(包括积分区间)都可以 vmappable。

Who it’s for

此库面向从事科学计算和 AI 的研究人员与开发者,特别是实现神经微分方程或需要高性能、可微分数值求解器的人。

Highlights

  • 支持 ODE、SDE 与 CDE 求解器。
  • 完全自动微分且兼容 GPU。
  • 整个库的操作均可 vmappable。
  • 支持神经微分方程。
  • 包含多样化的求解器,涵盖辛结构和隐式选项。