Skip to main content

Nonlinear optimisation in JAX and Equinox.

Project description

Optimistix

Optimistix is a JAX library for nonlinear solvers: root finding, minimisation, fixed points, and least squares.

Features include:

  • interoperable solvers: e.g. autoconvert root find problems to least squares problems, then solve using a minimisation algorithm.
  • modular optimisers: e.g. use a BFGS quadratic bowl with a dogleg descent path with a trust region update.
  • using a PyTree as the state.
  • fast compilation and runtimes.
  • interoperability with Optax.
  • all the benefits of working with JAX: autodiff, autoparallism, GPU/TPU support etc.

Installation

pip install optimistix

Requires Python 3.9+ and JAX 0.4.14+ and Equinox 0.11.0+.

Documentation

Available at https://docs.kidger.site/optimistix.

Quick example

import jax.numpy as jnp
import optimistix as optx

# Let's solve the ODE dy/dt=tanh(y(t)) with the implicit Euler method.
# We need to find y1 s.t. y1 = y0 + tanh(y1)dt.

y0 = jnp.array(1.)
dt = jnp.array(0.1)

def fn(y, args):
    return y0 + jnp.tanh(y) * dt

solver = optx.Newton(rtol=1e-5, atol=1e-5)
sol = optx.fixed_point(fn, solver, y0)
y1 = sol.value  # satisfies y1 == fn(y1)

Finally

JAX ecosystem

jaxtyping: type annotations for shape/dtype of arrays.

Equinox: neural networks.

Optax: first-order gradient (SGD, Adam, ...) optimisers.

Diffrax: numerical differential equation solvers.

Lineax: linear solvers.

BlackJAX: probabilistic+Bayesian sampling.

Orbax: checkpointing (async/multi-host/multi-device).

sympy2jax: SymPy<->JAX conversion; train symbolic expressions via gradient descent.

Eqxvision: computer vision models.

Levanter: scalable+reliable training of foundation models (e.g. LLMs).

PySR: symbolic regression. (Non-JAX honourable mention!)

Disclaimer

This is not an official Google product.

Credit

Optimistix was primarily built by Jason Rader (@packquickly): Twitter; GitHub; Website.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

optimistix-0.0.6.tar.gz (52.8 kB view details)

Uploaded Source

Built Distribution

optimistix-0.0.6-py3-none-any.whl (89.4 kB view details)

Uploaded Python 3

File details

Details for the file optimistix-0.0.6.tar.gz.

File metadata

  • Download URL: optimistix-0.0.6.tar.gz
  • Upload date:
  • Size: 52.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.11.7

File hashes

Hashes for optimistix-0.0.6.tar.gz
Algorithm Hash digest
SHA256 a9dab1052a9579769d7967f420018adf13aa9650d11198a018209dd0ac0b441a
MD5 14cd7d4821a12f92eb22aba9917571b3
BLAKE2b-256 d17f4cfa5e3b207e68a75ba4ca91d02bca0d1412c13089bf558be80ee9b9d045

See more details on using hashes here.

File details

Details for the file optimistix-0.0.6-py3-none-any.whl.

File metadata

  • Download URL: optimistix-0.0.6-py3-none-any.whl
  • Upload date:
  • Size: 89.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.11.7

File hashes

Hashes for optimistix-0.0.6-py3-none-any.whl
Algorithm Hash digest
SHA256 a269a5f63a54abd9eb630d093bd87cd15539a5520e97d828bb6651b2b9d88085
MD5 290d8e00385900e057f5cbc95fef636c
BLAKE2b-256 2631915db6685340cfc94b6e03d162b9ae390ef30ba2cb7c2cea4a4a666fe078

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page