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。
  • 支援神經微分方程。
  • 包含多樣化的求解器,涵蓋辛結構與隱式選項。