jesterTOV.inference.samplers.flowmc.FlowMCSampler#
- class FlowMCSampler(
- likelihood,
- prior,
- config,
- sample_transforms=None,
- likelihood_transforms=None,
- seed=0,
- local_sampler_name='GaussianRandomWalk',
- local_sampler_arg=None,
- num_layers=10,
- hidden_size=None,
- num_bins=8,
Bases:
JesterSamplerFlowMC-specific sampler implementation.
This class inherits from JesterSampler and adds flowMC-specific initialization and configuration. It creates a flowMC Sampler with: - Local sampler (MALA or GaussianRandomWalk) - Normalizing flow model (MaskedCouplingRQSpline) - Training and production sampling loops
- Parameters:
likelihood (LikelihoodBase) – Likelihood object with evaluate(params, data) method
prior (Prior) – Prior object with sample() and log_prob() methods
config (FlowMCSamplerConfig) – Configuration object from YAML (contains n_chains, n_loop_training, learning_rate, etc.)
sample_transforms (list[BijectiveTransform], optional) – Bijective transforms applied during sampling (with Jacobians)
likelihood_transforms (list[NtoMTransform], optional) – N-to-M transforms applied before likelihood evaluation
seed (int, optional) – Random seed (default: 0)
local_sampler_name (str, optional) – Name of the local sampler: “MALA” or “GaussianRandomWalk” (default: “GaussianRandomWalk”)
local_sampler_arg (dict[str, Any], optional) – Arguments for local sampler (e.g., {“step_size”: …})
num_layers (int, optional) – Number of coupling layers in normalizing flow (default: 10)
hidden_size (list[int], optional) – Hidden layer sizes for normalizing flow (default: [128, 128])
num_bins (int, optional) – Number of bins for rational quadratic splines (default: 8)
- Variables:
sampler (Sampler) – FlowMC sampler instance
config (FlowMCSamplerConfig) – Configuration object
- __init__(
- likelihood,
- prior,
- config,
- sample_transforms=None,
- likelihood_transforms=None,
- seed=0,
- local_sampler_name='GaussianRandomWalk',
- local_sampler_arg=None,
- num_layers=10,
- hidden_size=None,
- num_bins=8,
Methods
__init__(likelihood, prior, config[, ...])add_name(x)Turn an array into a dictionary.
Get log probabilities from flowMC sampler (production samples only).
Get number of production samples from flowMC sampler.
Get number of training samples from flowMC sampler.
Get standardized sampler output (production samples only).
Get production samples from the flowMC sampler.
Get standardized sampler output for training samples.
posterior(params, data)Evaluate posterior log probability from flat array.
posterior_from_dict(named_params, data)Evaluate posterior log probability from parameter dict.
print_summary([transform])Generate summary of the flowMC run.
sample(key)Run flowMC sampling.
Attributes
likelihoodpriorsample_transformslikelihood_transformsparameter_names- get_log_prob()[source]#
Get log probabilities from flowMC sampler (production samples only).
- Return type:
- Returns:
Array – Log posterior probability values (1D array, flattened across chains)
- get_n_samples()[source]#
Get number of production samples from flowMC sampler.
- Return type:
- Returns:
int – Number of production samples (total across all chains)
- get_n_training_samples()[source]#
Get number of training samples from flowMC sampler.
This is a FlowMC-specific method for diagnostic purposes.
- Return type:
- Returns:
int – Number of training samples (total across all chains)
- get_sampler_output()[source]#
Get standardized sampler output (production samples only).
- Return type:
- Returns:
SamplerOutput –
samples: Parameter samples (dict of arrays)
log_prob: Log posterior probability
metadata: {} (empty, MCMC has equal weights)
- get_samples()[source]#
Get production samples from the flowMC sampler.
- Return type:
- Returns:
dict – Dictionary of production samples
- get_training_sampler_output()[source]#
Get standardized sampler output for training samples.
This is a FlowMC-specific method for diagnostic purposes.
- Return type:
- Returns:
SamplerOutput –
samples: Parameter samples from training phase (dict of arrays)
log_prob: Log posterior probability from training phase
metadata: {} (empty, MCMC has equal weights)
- print_summary(transform=True)[source]#
Generate summary of the flowMC run.
- Parameters:
transform (bool, optional) – Whether to apply inverse sample transforms to results (default: True)
- sample(key)[source]#
Run flowMC sampling.
- Parameters:
key (PRNGKeyArray) – JAX random key
Notes
This method includes a critical bug fix: parameter ordering is preserved when converting from dictionary to array using a list comprehension instead of jax.tree.leaves().
- sampler: flowMC.Sampler.Sampler#