Repolode
patrick-kidger

patrick-kidger/diffrax

Численные решатели дифференциальных уравнений для JAX: ODE, SDE и CDE, автоматическое дифференцирование и выполнение на GPU.

Звёзды
2,122
Форки
202
Открытые issues
265
Последний коммит
2 месяца назад

Что это?

Diffrax — библиотека численных решателей дифференциальных уравнений на базе JAX. Она работает с обыкновенными дифференциальными уравнениями (ODE), стохастическими дифференциальными уравнениями (SDE) и управляемыми дифференциальными уравнениями (CDE) в рамках единой внутренней структуры, поэтому все три типа уравнений решаются одинаково.

В библиотеку входит множество решателей, в том числе Tsit5, Dopri5 и Dopri8 для явного интегрирования, а также симплектические и неявные методы. Интегрирование можно распараллелить с помощью vmap по всем измерениям, включая область интегрирования, а состояние может быть любым PyTree. Доступны плотные решения, а для обратного распространения градиентов через решение предусмотрено несколько методов adjoint.

Diffrax предназначена для пользователей, которым нужны дифференцируемые симуляции, например нейронные дифференциальные уравнения. Библиотека устанавливается через pip и требует Python версии 3.10 или новее.

Ключевые возможности

  • 01Решает ODE, SDE и CDE в рамках единой структуры.
  • 02Включает явные, симплектические и неявные решатели, например Tsit5 и Dopri8.
  • 03Поддерживает vmap для решения, в том числе по области интегрирования.
  • 04Принимает состояния типа PyTree и предоставляет плотные решения.
  • 05Предлагает несколько методов adjoint для обратного распространения градиентов.

Сценарии использования

  • Обучение моделей нейронных дифференциальных уравнений, которым нужны градиенты через решатель.
  • Пакетное моделирование динамических систем на GPU.
  • Моделирование стохастических процессов с помощью решателей SDE.

Быстрый старт

  1. 1

    Установите библиотеку с помощью pip

    pip install diffrax
  2. 2

    Определите слагаемое ODE и решатель, затем вызовите diffeqsolve (см. краткий пример в README)

Что важно знать

  • Требуется Python версии 3.10 или новее.
  • Библиотека построена на базе JAX, поэтому для её использования необходима рабочая настройка JAX.

В подборках

Темы

#differential-equations#jax#scientific-computing#neural-differential-equations#ode-solver#gpu#deep-learning#dynamical-systems#equinox#machine-learning

Частые вопросы

Что такое diffrax?
Численные решатели дифференциальных уравнений для JAX: ODE, SDE и CDE, автоматическое дифференцирование и выполнение на GPU. Diffrax — библиотека численных решателей дифференциальных уравнений на базе JAX. Она работает с обыкновенными дифференциальными уравнениями (ODE), стохастическими дифференциальными уравнениями (SDE) и управляемыми дифференциальными уравнениями (CDE) в рамках единой внутренней структуры, поэтому все три типа уравнений решаются одинаково.
diffrax можно использовать бесплатно? Какая у него лицензия?
diffrax распространяется с открытым исходным кодом под лицензией Apache-2.0. Перед использованием в коммерческих продуктах проверьте условия лицензии.
diffrax всё ещё поддерживается?
Обновлялся за последние 6 месяцев. Последний коммит в diffrax — 6 сент. 2026 г..
Для чего можно использовать diffrax?
Обучение моделей нейронных дифференциальных уравнений, которым нужны градиенты через решатель. Пакетное моделирование динамических систем на GPU. Моделирование стохастических процессов с помощью решателей SDE.
Как установить diffrax?
Установите библиотеку с помощью pip: pip install diffrax Определите слагаемое ODE и решатель, затем вызовите diffeqsolve (см. краткий пример в README)
Где скачать diffrax?
Исходный код и инструкции по установке — на GitHub: https://github.com/patrick-kidger/diffrax

Описание создано ИИ на основе README проекта. Статистика GitHub обновляется ежедневно.

Похожие проекты