nessai.flowmodel.importance#

FlowModel for use in importance nested sampling.

Classes#

ImportanceFlowModel

Flow Model that contains multiple flows for importance sampler.

Module Contents#

class nessai.flowmodel.importance.ImportanceFlowModel(flow_config: dict = None, training_config: dict = None, output: str = None, rng: numpy.random.Generator | None = None)#

Bases: nessai.flowmodel.base.FlowModel

Flow Model that contains multiple flows for importance sampler.

property model#

The current flow (model).

Returns None if the no models have been added.

property n_models: int#

Number of models (flows)

initialise() None#

Initialise things

reset_optimiser() None#

Reset the optimiser to point at current model.

Uses the original optimiser and kwargs.

add_new_flow(reset=False)#

Add a new flow

log_prob_ith(x, i)#

Compute the log-prob for the ith flow

log_prob_all(x)#

Compute the log probability using all of the stored models.

sample_ith(i, N=1)#

Draw samples from the ith flow

save_weights(weights_file) None#

Save the weights file.

load_all_weights() None#

Load all of the weights files for each flow.

Resets any existing models.

update_weights_path(weights_path: str, n: int | None = None) None#

Update the weights path.

Searches in the specified directory for weights files.

Parameters:
weights_pathstr

Path to the directory that contains the weights files.

nOptional[int]

The number of files to load. If not specified, n_models is used instead. Must be specified when resuming since the models list is not saved.

resume(flow_config: dict, weights_path: str | None = None) None#

Resume the model