Decorators

Decorators#

Model decorators for blayers.

  • reshape_inputs: Auto-reshape 1D arrays to (n, 1)

  • autoreparam: Auto-reparameterize LocScale distributions for MCMC

Usage: ``` @reshape_inputs @autoreparam def my_model(x, y=None):

```

blayers.decorators.autoreshape(fn)[source]#

Decorator that ensures all array inputs have shape (n, d), not (n,).

blayers expects arrays with explicit trailing dimensions. This decorator auto-reshapes 1D arrays to (n, 1) so you don’t have to do it manually.

Usage:

@autoreshape def model(x, y=None):

mu = AdaptiveLayer()(‘mu’, x) return gaussian_link(mu, y)

Parameters:

fn (Callable[[...], Any])

Return type:

Callable[[…], Any]

blayers.decorators.autoreparam(model_fn=None, *, centered=0.0)[source]#

Auto-reparameterize LocScale distributions in a model for MCMC.

Automatically applies LocScaleReparam to all LocScale distributions (Normal, LogNormal, StudentT, Cauchy, Laplace, Gumbel) found in the model, which improves NUTS mixing by removing funnel geometries.

Works with or without parentheses:

@autoreparam
def model(x, y): ...

@autoreparam()
def model(x, y): ...

@autoreparam(centered=0.5)
def model(x, y): ...
Parameters:
  • model_fn (Callable[[...], Any] | None) – The model function (when used without parentheses).

  • centered (float) – Degree of centering for LocScaleReparam. 0.0 = fully non-centered (default, best for weak data); 1.0 = fully centered (better when data is informative).

Return type:

Any