google/jaxopt

Hardware accelerated, batchable and differentiable optimizers in JAX.

What it solves

JAXopt provides a library of optimizers that are hardware accelerated, batchable, and differentiable. It allows users to solve optimization problems on GPUs and TPUs, and differentiate the solutions of these problems with respect to their inputs.

How it works

Built on top of JAX, the library leverages JAX's vmap for automatic vectorization to handle multiple instances of the same optimization problem simultaneously. It supports differentiation of optimization solutions through either implicit differentiation or by using autodiff on unrolled algorithm iterations.

Who it’s for

Researchers and developers working with JAX who need high-performance optimization tools that can be integrated into differentiable programming workflows.

Highlights

  • Hardware acceleration for CPU, GPU, and TPU.
  • Automatic vectorization via JAX's vmap for batching optimization problems.
  • Support for both implicit and unrolled differentiation of optimization solutions.

Related

  • Project
  • Project
  • Project
  • Project