Links#
We provide link functions as a convenience to abstract away a bit more Numpyro boilerplate. Link functions take model predictions as inputs to a distribution.
The simplest example is the Gaussian link
mu = ...
sigma ~ Exp(1)
y ~ Normal(mu, sigma)
We currently provide
negative_binomial_linklogit_linkpoission_linkgaussian_link_explognormal_link_exp
Link functions include trainable scale parameters when needed, as in the case
of Gaussians. We also provide classes for eaisly making additional links via
the LocScaleLink and SingleParamLink classes.
For instance, the Poisson link is created like this:
poission_link = SingleParamLink(obs_dist=dists.Poisson)
And implements
rate = ...
y ~ Poisson(rate)
In a Numpyro model, you use a link like
from blayers.layers import AdaptiveLayer
from blayers.links import poisson_link
def model(x, y):
rate = AdaptiveLayer()('rate', x)
return poisson_link(rate, y)
- class blayers.links.Link(*args)[source]#
Bases:
ABC- Parameters:
args (Any)
- class blayers.links.LocScaleLink(sigma_dist=<class 'numpyro.distributions.continuous.Exponential'>, sigma_kwargs={'rate': 1.0}, obs_dist=<class 'numpyro.distributions.continuous.Normal'>, obs_kwargs={})[source]#
Bases:
Link- Parameters:
sigma_dist (Distribution)
sigma_kwargs (dict[str, float])
obs_dist (Distribution)
obs_kwargs (dict[str, float])
- __init__(sigma_dist=<class 'numpyro.distributions.continuous.Exponential'>, sigma_kwargs={'rate': 1.0}, obs_dist=<class 'numpyro.distributions.continuous.Normal'>, obs_kwargs={})[source]#
Initialize link parameters.
- Parameters:
sigma_dist (Distribution)
sigma_kwargs (dict[str, float])
obs_dist (Distribution)
obs_kwargs (dict[str, float])
- Return type:
None
- class blayers.links.SingleParamLink(obs_dist=<function Bernoulli>)[source]#
Bases:
Link- Parameters:
obs_dist (Distribution)
- blayers.links.negative_binomial_link(y_hat, y=None, dependent_outputs=False, rate=1.0)[source]#
- Parameters:
y_hat (Array)
y (Array | None)
dependent_outputs (bool)
rate (float)
- Return type:
Array
- blayers.links.logit_link#
Logit link function.
- Parameters:
y_hat (Array)
y (Array | None)
dependent_outputs (bool)
- Return type:
Array
- blayers.links.poission_link#
Poisson link function.
- Parameters:
y_hat (Array)
y (Array | None)
dependent_outputs (bool)
- Return type:
Array
- blayers.links.gaussian_link_exp#
Gaussian link function with exponentially distributed sigma.
- Parameters:
y_hat (Array)
y (Array | None)
dependent_outputs (bool)
- Return type:
Array
- blayers.links.lognormal_link_exp#
Lognormal link function with exponentially distributed sigma.
- Parameters:
y_hat (Array)
y (Array | None)
dependent_outputs (bool)
- Return type:
Array