Source code for aspire.samplers.importance

from ..samples import Samples
from ..utils import track_calls
from .base import Sampler


[docs] class ImportanceSampler(Sampler): @track_calls
[docs] def sample(self, n_samples: int) -> Samples: x, log_q = self.prior_flow.sample_and_log_prob(n_samples) samples = Samples( x, log_q=log_q, xp=self.xp, parameters=self.parameters, dtype=self.dtype, ) samples.log_prior = samples.array_to_namespace(self.log_prior(samples)) samples.log_likelihood = samples.array_to_namespace( self.log_likelihood(samples) ) samples.compute_weights() return samples