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_expected_outputs
([outdir, label])Get lists of the expected outputs directories and files.
get_initial_points_from_prior
([npoints])Method to draw a set of live points from the 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.
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
abbreviation
check_point_equiv_kwargs
list: List of parameters providing prior constraints
default_kwargs
external_sampler_name
list: List of parameter keys that are not being sampled
hard_exit
dict: Container for the kwargs.
int: Number of dimensions of the search parameter space
npoints_equiv_kwargs
npool
npool_equiv_kwargs
outputfiles_basename
sampler_function_kwargs
sampler_init_kwargs
sampler_name
sampling_seed_equiv_kwargs
Name of keyword argument for setting the sampling for the specific sampler.
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
- classmethod get_expected_outputs(outdir=None, label=None)[source]
Get lists of the expected outputs directories and files.
These are used by
bilby_pipe
when transferring files via HTCondor. Both can be empty. Defaults to a single directory:"{outdir}/{name}_{label}/"
, wherename
isabbreviation
if it is defined for the sampler class, otherwise it defaults tosampler_name
.- Parameters:
- outdirstr
The output directory.
- labelstr
The label for the run.
- Returns:
- list
List of file names.
- list
List of directory names.
- 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
- 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 aSystemExit
.