Automatic differentiation for high-energy physics correction factor calculations.
Project description
correctionlib-gradients
Table of Contents
Installation
pip install correctionlib-gradients
Usage
- construct a
CorrectionWithGradient
object from a correctionlib schema - there is no point 2: you can use
CorrectionWithGradient.evaluate
as a normal JAX-friendly, auto-differentiable function
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.tar.gz
Algorithm | Hash digest | |
---|---|---|
SHA256 | 8139374a97b8b6031457589e36ed6f250d745f5a61ef7b3b7f9ff3b3cfe0fc2e |
|
MD5 | c1f4dc8dab5e92badff498b38bef189c |
|
BLAKE2b-256 | c9aafdf9f7868d4d43c1c15babd72e969bd10bcadae3c6fcee10b79a790186fd |
Close
Hashes for correctionlib_gradients-0.1-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | d7094fac6015083591b472761ae8ec08d866298345498ffb276843c5eb820e7f |
|
MD5 | c2a5c0fa66b6d1ee07b8ef862bdb1b4b |
|
BLAKE2b-256 | b7c7ffaa4cb5e3e4ff32ea4befe8f9c9ce2fbc0af3ce12566eae850c91657536 |