Skip to main content
Ctrl+K

blayers v0.2.0 documentation

  • Layers
  • Infer
  • Links
  • Sampling
  • Repository
  • Suggest edit
  • .rst

Links

Contents

  • Link
    • Link.__init__()
    • Link.__call__()
  • LocScaleLink
    • LocScaleLink.__init__()
    • LocScaleLink.__call__()
  • SingleParamLink
    • SingleParamLink.__init__()
    • SingleParamLink.__call__()
  • negative_binomial_link()
  • logit_link
  • poission_link
  • gaussian_link_exp
  • lognormal_link_exp

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_link

  • logit_link

  • poission_link

  • gaussian_link_exp

  • lognormal_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)

abstractmethod __init__(*args)[source]#

Initialize link parameters.

Parameters:

args (Any)

Return type:

None

abstractmethod __call__(*args)[source]#

Execute the link function.

Parameters:

args (Any)

Return type:

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={}, dependent_outputs=False)[source]#

Bases: Link

Parameters:
  • sigma_dist (Distribution)

  • sigma_kwargs (dict[str, float])

  • obs_dist (Distribution)

  • obs_kwargs (dict[str, float])

  • dependent_outputs (bool)

__init__(sigma_dist=<class 'numpyro.distributions.continuous.Exponential'>, sigma_kwargs={'rate': 1.0}, obs_dist=<class 'numpyro.distributions.continuous.Normal'>, obs_kwargs={}, dependent_outputs=False)[source]#

Initialize link parameters.

Parameters:
  • sigma_dist (Distribution)

  • sigma_kwargs (dict[str, float])

  • obs_dist (Distribution)

  • obs_kwargs (dict[str, float])

  • dependent_outputs (bool)

Return type:

None

__call__(y_hat, y=None)[source]#

Execute the link function.

Parameters:
  • y_hat (Array)

  • y (Array | None)

Return type:

Array

class blayers.links.SingleParamLink(obs_dist=<function Bernoulli>, dependent_outputs=False)[source]#

Bases: Link

Parameters:
  • obs_dist (Distribution)

  • dependent_outputs (bool)

__init__(obs_dist=<function Bernoulli>, dependent_outputs=False)[source]#

Initialize link parameters.

Parameters:
  • obs_dist (Distribution)

  • dependent_outputs (bool)

Return type:

None

__call__(y_hat, y=None)[source]#

Execute the link function.

Parameters:
  • y_hat (Array)

  • y (Array | None)

Return type:

Array

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)

Return type:

Array

blayers.links.poission_link#

Poisson link function.

Parameters:
  • y_hat (Array)

  • y (Array | None)

Return type:

Array

blayers.links.gaussian_link_exp#

Gaussian link function with exponentially distributed sigma.

Parameters:
  • y_hat (Array)

  • y (Array | None)

Return type:

Array

blayers.links.lognormal_link_exp#

Lognormal link function with exponentially distributed sigma.

Parameters:
  • y_hat (Array)

  • y (Array | None)

Return type:

Array

previous

Infer

next

Sampling

Contents
  • Link
    • Link.__init__()
    • Link.__call__()
  • LocScaleLink
    • LocScaleLink.__init__()
    • LocScaleLink.__call__()
  • SingleParamLink
    • SingleParamLink.__init__()
    • SingleParamLink.__call__()
  • negative_binomial_link()
  • logit_link
  • poission_link
  • gaussian_link_exp
  • lognormal_link_exp

By George Berry

© Copyright 2025, George Berry.