mchammers package¶
Copyright (c) 2024 The Princeton Hammers. All rights reserved.
mchammers: A toy package for sampling posteriors. Our final project for APC 524 at Princeton University.
- class mchammers.Sampler(num_step, num_walker, num_dim, prior_bounds, state_init, log_prob_func, args=None, kwargs=None, frac_burn=0.2, seed=None, flatten=True)¶
Bases:
ABCThe Sampler object.
Parameters:¶
- num_step:
The number of steps.
- num_walker:
The number of walkers.
- num_dim:
The number of dimensions.
- prior_bounds:
The prior bounds on the model parameters.
- state_init:
The initial state.
- log_prob_func:
The log probability function.
- args:
The arguments of the log probability function.
- kwargs:
The keyword arguments of the log probability function.
- frac_burn:
The burn fraction.
- seed:
The random number generator seed.
- flatten:
Whether to flatten the final sample array.
- param num_step:
- type num_step:
- param num_walker:
- type num_walker:
- param num_dim:
- type num_dim:
- param prior_bounds:
- type prior_bounds:
- param state_init:
- type state_init:
- param log_prob_func:
- type log_prob_func:
Callable[...,ndarray[tuple[int,...],dtype[Union[int,float]]]]- param args:
- type args:
- param kwargs:
- type kwargs:
- param frac_burn:
- type frac_burn:
- param seed:
- type seed:
- param flatten:
- type flatten:
- abstract prob_accept(log_prob_curr, log_prob_prop)¶
Calculate the acceptance probability.
Parameters:¶
- log_prob_curr:
The log probability of the current state.
- log_prob_prop:
The log probability of the proposed state.
Returns:¶
- :
The acceptance probability.
- class mchammers.SamplerBasic(num_step, num_walker, num_dim, prior_bounds, state_init, log_prob_func, std_rel_prop, args=None, kwargs=None, frac_burn=0.2, seed=None, flatten=True)¶
Bases:
SamplerThe SamplerBasic object.
Parameters:¶
- std:
The standard deviation of the proposal distribution relative to the prior bounds.
- param num_step:
- type num_step:
- param num_walker:
- type num_walker:
- param num_dim:
- type num_dim:
- param prior_bounds:
- type prior_bounds:
- param state_init:
- type state_init:
- param log_prob_func:
- type log_prob_func:
Callable[...,ndarray[tuple[int,...],dtype[Union[int,float]]]]- param std_rel_prop:
- type std_rel_prop:
- param args:
- type args:
- param kwargs:
- type kwargs:
- param frac_burn:
- type frac_burn:
- param seed:
- type seed:
- param flatten:
- type flatten:
- class mchammers.SamplerBasicMPI(num_step, num_walker, num_dim, prior_bounds, state_init, log_prob_func, comm, mpi_sum, size, rank, std_rel_prop, args=None, kwargs=None, frac_burn=0.2, seed=None, flatten=True)¶
Bases:
SamplerMPIThe SamplerBasic object.
Parameters:¶
- cov:
The covariance of the proposal distribution in each dimension.
- param num_step:
- type num_step:
- param num_walker:
- type num_walker:
- param num_dim:
- type num_dim:
- param prior_bounds:
- type prior_bounds:
- param state_init:
- type state_init:
- param log_prob_func:
- type log_prob_func:
Callable[...,ndarray[tuple[int,...],dtype[Union[int,float]]]]- param comm:
- type comm:
- param mpi_sum:
- type mpi_sum:
- param size:
- type size:
- param rank:
- type rank:
- param std_rel_prop:
- type std_rel_prop:
- param args:
- type args:
- param kwargs:
- type kwargs:
- param frac_burn:
- type frac_burn:
- param seed:
- type seed:
- param flatten:
- type flatten:
- class mchammers.SamplerMPI(num_step, num_walker, num_dim, prior_bounds, state_init, log_prob_func, comm, mpi_sum, size, rank, args=None, kwargs=None, frac_burn=0.2, seed=None, flatten=True)¶
Bases:
SamplerThe SamplerMPI object.
Parameters:¶
- comm:
The MPI communicator.
- mpi_sum:
The MPI sum operation.
- size:
The number of MPI ranks.
- rank:
The MPI rank.
- param num_step:
- type num_step:
- param num_walker:
- type num_walker:
- param num_dim:
- type num_dim:
- param prior_bounds:
- type prior_bounds:
- param state_init:
- type state_init:
- param log_prob_func:
- type log_prob_func:
Callable[...,ndarray[tuple[int,...],dtype[Union[int,float]]]]- param comm:
- type comm:
- param mpi_sum:
- type mpi_sum:
- param size:
- type size:
- param rank:
- type rank:
- param args:
- type args:
- param kwargs:
- type kwargs:
- param frac_burn:
- type frac_burn:
- param seed:
- type seed:
- param flatten:
- type flatten:
- class mchammers.SamplerStretch(num_step, num_walker, num_dim, prior_bounds, state_init, log_prob_func, args=None, kwargs=None, a=2.0, frac_burn=0.2, seed=None, flatten=True)¶
Bases:
SamplerThe SamplerStretch object. Implements the affine-invariant ensemble sampler using the parallel stretch move.
Parameters:¶
- a:
The stretch move parameter, a > 1.
- param num_step:
- type num_step:
- param num_walker:
- type num_walker:
- param num_dim:
- type num_dim:
- param prior_bounds:
- type prior_bounds:
- param state_init:
- type state_init:
- param log_prob_func:
- type log_prob_func:
Callable[...,ndarray[tuple[int,...],dtype[Union[int,float]]]]- param args:
- type args:
- param kwargs:
- type kwargs:
- param a:
- type a:
- param frac_burn:
- type frac_burn:
- param seed:
- type seed:
- param flatten:
- type flatten:
- prob_accept(log_prob_curr, log_prob_prop)¶
Calculate the acceptance probability.
Parameters:¶
- log_prob_curr:
The log probability of the current state.
- log_prob_prop:
The log probability of the proposed state.
Returns:¶
- :
The acceptance probability.
- sample_Z(size)¶
Sample Z from g(Z) ∝ 1/sqrt(Z) within [1/a, a] using the inverse transform sampling
Submodules¶
mchammers.hammer module¶
- class mchammers.hammer.Sampler(num_step, num_walker, num_dim, prior_bounds, state_init, log_prob_func, args=None, kwargs=None, frac_burn=0.2, seed=None, flatten=True)¶
Bases:
ABCThe Sampler object.
Parameters:¶
- num_step:
The number of steps.
- num_walker:
The number of walkers.
- num_dim:
The number of dimensions.
- prior_bounds:
The prior bounds on the model parameters.
- state_init:
The initial state.
- log_prob_func:
The log probability function.
- args:
The arguments of the log probability function.
- kwargs:
The keyword arguments of the log probability function.
- frac_burn:
The burn fraction.
- seed:
The random number generator seed.
- flatten:
Whether to flatten the final sample array.
- param num_step:
- type num_step:
- param num_walker:
- type num_walker:
- param num_dim:
- type num_dim:
- param prior_bounds:
- type prior_bounds:
- param state_init:
- type state_init:
- param log_prob_func:
- type log_prob_func:
Callable[...,ndarray[tuple[int,...],dtype[Union[int,float]]]]- param args:
- type args:
- param kwargs:
- type kwargs:
- param frac_burn:
- type frac_burn:
- param seed:
- type seed:
- param flatten:
- type flatten:
- abstract prob_accept(log_prob_curr, log_prob_prop)¶
Calculate the acceptance probability.
Parameters:¶
- log_prob_curr:
The log probability of the current state.
- log_prob_prop:
The log probability of the proposed state.
Returns:¶
- :
The acceptance probability.
- class mchammers.hammer.SamplerBasic(num_step, num_walker, num_dim, prior_bounds, state_init, log_prob_func, std_rel_prop, args=None, kwargs=None, frac_burn=0.2, seed=None, flatten=True)¶
Bases:
SamplerThe SamplerBasic object.
Parameters:¶
- std:
The standard deviation of the proposal distribution relative to the prior bounds.
- param num_step:
- type num_step:
- param num_walker:
- type num_walker:
- param num_dim:
- type num_dim:
- param prior_bounds:
- type prior_bounds:
- param state_init:
- type state_init:
- param log_prob_func:
- type log_prob_func:
Callable[...,ndarray[tuple[int,...],dtype[Union[int,float]]]]- param std_rel_prop:
- type std_rel_prop:
- param args:
- type args:
- param kwargs:
- type kwargs:
- param frac_burn:
- type frac_burn:
- param seed:
- type seed:
- param flatten:
- type flatten:
- class mchammers.hammer.SamplerBasicMPI(num_step, num_walker, num_dim, prior_bounds, state_init, log_prob_func, comm, mpi_sum, size, rank, std_rel_prop, args=None, kwargs=None, frac_burn=0.2, seed=None, flatten=True)¶
Bases:
SamplerMPIThe SamplerBasic object.
Parameters:¶
- cov:
The covariance of the proposal distribution in each dimension.
- param num_step:
- type num_step:
- param num_walker:
- type num_walker:
- param num_dim:
- type num_dim:
- param prior_bounds:
- type prior_bounds:
- param state_init:
- type state_init:
- param log_prob_func:
- type log_prob_func:
Callable[...,ndarray[tuple[int,...],dtype[Union[int,float]]]]- param comm:
- type comm:
- param mpi_sum:
- type mpi_sum:
- param size:
- type size:
- param rank:
- type rank:
- param std_rel_prop:
- type std_rel_prop:
- param args:
- type args:
- param kwargs:
- type kwargs:
- param frac_burn:
- type frac_burn:
- param seed:
- type seed:
- param flatten:
- type flatten:
- class mchammers.hammer.SamplerMPI(num_step, num_walker, num_dim, prior_bounds, state_init, log_prob_func, comm, mpi_sum, size, rank, args=None, kwargs=None, frac_burn=0.2, seed=None, flatten=True)¶
Bases:
SamplerThe SamplerMPI object.
Parameters:¶
- comm:
The MPI communicator.
- mpi_sum:
The MPI sum operation.
- size:
The number of MPI ranks.
- rank:
The MPI rank.
- param num_step:
- type num_step:
- param num_walker:
- type num_walker:
- param num_dim:
- type num_dim:
- param prior_bounds:
- type prior_bounds:
- param state_init:
- type state_init:
- param log_prob_func:
- type log_prob_func:
Callable[...,ndarray[tuple[int,...],dtype[Union[int,float]]]]- param comm:
- type comm:
- param mpi_sum:
- type mpi_sum:
- param size:
- type size:
- param rank:
- type rank:
- param args:
- type args:
- param kwargs:
- type kwargs:
- param frac_burn:
- type frac_burn:
- param seed:
- type seed:
- param flatten:
- type flatten: