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 构建,该库使用统一的内部结构来处理不同类型的方程。它支持多种求解器(例如 Tsit5 与 Dopri8),允许状态以 PyTree 形式表示,并提供多种 adjoint 方法进行反向传播。由于是基于 JAX,几乎所有过程的每个部分(包括积分区间)都可以 vmappable。
Who it’s for
此库面向从事科学计算和 AI 的研究人员与开发者,特别是实现神经微分方程或需要高性能、可微分数值求解器的人。
Highlights
- 支持 ODE、SDE 与 CDE 求解器。
- 完全自动微分且兼容 GPU。
- 整个库的操作均可 vmappable。
- 支持神经微分方程。
- 包含多样化的求解器,涵盖辛结构和隐式选项。