Automatic differentiation for high-energy physics correction factor calculations.
Project description
correctionlib-gradients
A JAX-friendly, auto-differentiable, Python-only implementation of correctionlib correction evaluations.
Table of Contents
Installation
pip install correctionlib-gradients
Usage
- construct a
CorrectionWithGradient
object from acorrectionlib.schemav2.Correction
- there is no point 2: you can use
CorrectionWithGradient.evaluate
as a normal JAX-friendly, auto-differentiable function
Example
import jax
from correctionlib import schemav2
from correctionlib_gradients import CorrectionWithGradient
# given a correctionlib schema:
formula_schema = schemav2.Correction(
name="x squared",
version=2,
inputs=[schemav2.Variable(name="x", type="real")],
output=schemav2.Variable(name="a scale", type="real"),
data=schemav2.Formula(
nodetype="formula",
expression="x * x",
parser="TFormula",
variables=["x"],
),
)
# construct a CorrectionWithGradient
c = CorrectionWithGradient(formula_schema)
# use c.evaluate as a JAX-friendly, auto-differentiable function
value, grad = jax.value_and_grad(c.evaluate)(3.0)
assert jax.numpy.isclose(value, 9.0)
assert jax.numpy.isclose(grad, 6.0)
# jax.jit works too
value, grad = jax.jit(jax.value_and_grad(c.evaluate))(3.0)
assert jax.numpy.isclose(value, 9.0)
assert jax.numpy.isclose(grad, 6.0)
Supported types of corrections
Currently the following corrections from correctionlib.schemav2
are supported:
Formula
Binning
with uniform and non-uniform bin edges, simple scalar bin values, andflow="clamp"
- scalar constants
License
correctionlib-gradients
is distributed under the terms of the BSD 3-Clause license.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Close
Hashes for correctionlib_gradients-0.1.1.tar.gz
Algorithm | Hash digest | |
---|---|---|
SHA256 | 2a87623ff1c9ff333891eca98cfd2984758e31af71cae2185aee502e826d70a5 |
|
MD5 | b75becf64dc24c230673a186e3541399 |
|
BLAKE2b-256 | 3704cc71bccc772385a01032c1b0db942f078e2a74e1e44dc5be0581428bceb4 |
Close
Hashes for correctionlib_gradients-0.1.1-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | a30734c06ea577d82bc40c471f627f4e4d1632afb6d8bd6bf380f7e2d8eae0ce |
|
MD5 | b0ac62b5e285e9c33bad9e23c0fbaab3 |
|
BLAKE2b-256 | 19f4860be88d60595cdf20ec503c0e2aa477f07bfb1da4626fbf694f09b39367 |