PositionSplit.add_inferred_sample_sizes_from_model()

PositionSplit.add_inferred_sample_sizes_from_model()#

PositionSplit.add_inferred_sample_sizes_from_model(model)[source]#

Infer effective sample sizes from model and attach them to this split.

Empty validation or test parts are omitted from the inferred mapping. The method mutates and returns self. Inference counts log-probability scalars, not observed value elements; for multivariate observation distributions, one observed event may have several value dimensions but one pointwise log-probability scalar.

Return type:

PositionSplit

Examples

>>> import jax.numpy as jnp
>>> import liesel.model as lsl
>>> import tensorflow_probability.substrates.jax.distributions as tfd
>>> from liesel.optim import Split
>>> y = lsl.Var.new_obs(
...     jnp.arange(4.0),
...     lsl.Dist(tfd.Normal, loc=0.0, scale=1.0),
...     name="y",
... )
>>> model = lsl.Model([y])
>>> split = Split(
...     ["y"], axis_size=4, validate_axis_size=1, shuffle=False
... ).split_position(model.extract_position(["y"]))
>>> split.add_inferred_sample_sizes_from_model(model) is split
True
>>> split.sample_sizes
{'train': 3.0, 'validate': 1.0}