bilby.core.sampler.ultranest.Ultranest

class bilby.core.sampler.ultranest.Ultranest(likelihood, priors, outdir='outdir', label='label', use_ratio=False, plot=False, exit_code=77, skip_import_verification=False, temporary_directory=True, callback_interval=10, **kwargs)[source]

Bases: _TemporaryFileSamplerMixin, NestedSampler

bilby wrapper of ultranest (https://johannesbuchner.github.io/UltraNest/index.html)

All positional and keyword arguments (i.e., the args and kwargs) passed to run_sampler will be propagated to ultranest.ReactiveNestedSampler.run or ultranest.NestedSampler.run, see documentation for those classes for further help. Under Other Parameters, we list commonly used kwargs and the bilby defaults. If the number of live points is specified the ultranest.NestedSampler will be used, otherwise the ultranest.ReactiveNestedSampler will be used.

Parameters:
num_live_points: int

The number of live points, note this can also equivalently be given as one of [nlive, nlives, n_live_points, num_live_points]. If not given then the ultranest.ReactiveNestedSampler will be used, which does not require the number of live points to be specified.

show_status: Bool

If true, print information information about the convergence during

resume: bool

If true, resume run from checkpoint (if available)

step_sampler:

An UltraNest step sampler object. This defaults to None, so the default stepping behaviour is used.

__init__(likelihood, priors, outdir='outdir', label='label', use_ratio=False, plot=False, exit_code=77, skip_import_verification=False, temporary_directory=True, callback_interval=10, **kwargs)[source]
__call__(*args, **kwargs)

Call self as a function.

Methods

__init__(likelihood, priors[, outdir, ...])

calc_likelihood_count()

check_draw(theta[, warning])

Checks if the draw will generate an infinite prior or likelihood

get_initial_points_from_prior([npoints])

Method to draw a set of live points from the prior

get_random_draw_from_prior()

Get a random draw from the prior distribution

log_likelihood(theta)

Since some nested samplers don't call the log_prior method, evaluate the prior constraint here.

log_prior(theta)

Parameters:

prior_transform(theta)

Prior transform method that is passed into the external sampler.

reorder_loglikelihoods(...)

Reorders the stored log-likelihood after they have been reweighted

run_sampler(*args, **kwargs)

A template method to run in subclasses

write_current_state()

write_current_state_and_exit([signum, frame])

Make sure that if a pool of jobs is running only the parent tries to checkpoint and exit.

Attributes

check_point_equiv_kwargs

constraint_parameter_keys

list: List of parameters providing prior constraints

default_kwargs

external_sampler_name

fixed_parameter_keys

list: List of parameter keys that are not being sampled

hard_exit

kwargs

dict: Container for the kwargs.

ndim

int: Number of dimensions of the search parameter space

npoints_equiv_kwargs

npool

npool_equiv_kwargs

outputfiles_basename

sampler_function_kwargs

sampler_init_kwargs

sampling_seed_equiv_kwargs

sampling_seed_key

Name of keyword argument for setting the sampling for the specific sampler.

search_parameter_keys

list: List of parameter keys that are being sampled

short_name

temporary_outputfiles_basename

walks_equiv_kwargs

check_draw(theta, warning=True)[source]

Checks if the draw will generate an infinite prior or likelihood

Also catches the output of numpy.nan_to_num.

Parameters:
theta: array_like

Parameter values at which to evaluate likelihood

warning: bool

Whether or not to print a warning

Returns:
bool, cube (nlive,

True if the likelihood and prior are finite, false otherwise

property constraint_parameter_keys

list: List of parameters providing prior constraints

property fixed_parameter_keys

list: List of parameter keys that are not being sampled

get_initial_points_from_prior(npoints=1)[source]

Method to draw a set of live points from the prior

This iterates over draws from the prior until all the samples have a finite prior and likelihood (relevant for constrained priors).

Parameters:
npoints: int

The number of values to return

Returns:
unit_cube, parameters, likelihood: tuple of array_like

unit_cube (nlive, ndim) is an array of the prior samples from the unit cube, parameters (nlive, ndim) is the unit_cube array transformed to the target space, while likelihood (nlive) are the likelihood evaluations.

get_random_draw_from_prior()[source]

Get a random draw from the prior distribution

Returns:
draw: array_like

An ndim-length array of values drawn from the prior. Parameters with delta-function (or fixed) priors are not returned

property kwargs

dict: Container for the kwargs. Has more sophisticated logic in subclasses

log_likelihood(theta)[source]

Since some nested samplers don’t call the log_prior method, evaluate the prior constraint here.

Parameters:
theta: array_like

Parameter values at which to evaluate likelihood

Returns:
float: log_likelihood
log_prior(theta)[source]
Parameters:
theta: list

List of sampled values on a unit interval

Returns:
float: Joint ln prior probability of theta
property ndim

int: Number of dimensions of the search parameter space

prior_transform(theta)[source]

Prior transform method that is passed into the external sampler.

Parameters:
theta: list

List of sampled values on a unit interval

Returns:
list: Properly rescaled sampled values
static reorder_loglikelihoods(unsorted_loglikelihoods, unsorted_samples, sorted_samples)[source]

Reorders the stored log-likelihood after they have been reweighted

This creates a sorting index by matching the reweights result.samples against the raw samples, then uses this index to sort the loglikelihoods

Parameters:
sorted_samples, unsorted_samples: array-like

Sorted and unsorted values of the samples. These should be of the same shape and contain the same sample values, but in different orders

unsorted_loglikelihoods: array-like

The loglikelihoods corresponding to the unsorted_samples

Returns:
sorted_loglikelihoods: array-like

The loglikelihoods reordered to match that of the sorted_samples

run_sampler(*args, **kwargs)[source]

A template method to run in subclasses

sampling_seed_key = None

Name of keyword argument for setting the sampling for the specific sampler. If a specific sampler does not have a sampling seed option, then it should be left as None.

property search_parameter_keys

list: List of parameter keys that are being sampled

write_current_state_and_exit(signum=None, frame=None)[source]

Make sure that if a pool of jobs is running only the parent tries to checkpoint and exit. Only the parent has a ‘pool’ attribute.

For samplers that must hard exit (typically due to non-Python process) use os._exit that cannot be excepted. Other samplers exiting can be caught as a SystemExit.