Skip to content
/ klax Public

Collection of semi-common machine learning architectures and tools build on JAX + Equinox

License

Notifications You must be signed in to change notification settings

Drenderer/klax

Repository files navigation

logo

A lightweight machine learning package for computational mechanics built on JAX.


Check out the Documentation for examples and reference material.

What is Klax?

Klax provides specialized machine learning architectures, constraints, and training utilities for mechanics and physics applications. Built on top of JAX, Equinox, and Optax, it offers:

  • Special Neural Networks: Implementations of, e.g., Input Convex Neural Networks (ICNNs), matrix-valued neural networks, MLPs with custom initialization, and more.
  • JAX Compatibility: Seamless integration with JAX's automatic differentiation and acceleration.
  • Parameter Constraints: Differentiable and non-differentiable parameter constraints through klax.Unwrappable and klax.Constraint
  • Customizable Training: Methods and APIs for customized calibrations on arbitrary PyTree data structures through klax.fit, klax.Loss, and klax.Callback.

Klax is designed to be minimally intrusive - all models inherit directly from equinox.Module without additional abstraction layers. This ensures full compatibility with the JAX/Equinox ecosystem.

The constraint system is derived from Paramax's paramax.AbstractUnwrappable, extending it to support non-differentiable/zero-gradient parameter constraints such as ReLU-based non-negativity constraints.

The provided calibration utilities (klax.fit, klax.Loss, klax.Callback) are designed to operate on arbitrarily shaped PyTrees of data, fully utilizing the flexibility of JAX and Equinox. While they cover most common machine learning use cases, as well as our specialized requirements, they remain entirely optional. The core building blocks of Klax work seamlessly in custom training loops.

Currently Klax's training utilities are built around Optax, but different optimization libraries could be supported in the future if desired.

If you like using Klax, feel free to leave a GitHub star, and if there is a machine learning architecture that you think should be included in Klax, please consider making a PR.

Installation

Klax requires python 3.12+.

pip install klax

or get the most recent changes from the main branch via

pip install "klax @ git+https://github.com/Drenderer/klax.git@main"

About

Collection of semi-common machine learning architectures and tools build on JAX + Equinox

Resources

License

Contributing

Stars

Watchers

Forks

Packages

No packages published

Contributors 2

  •  
  •  

Languages