pyjuice.queries.sample
- pyjuice.queries.sample(pc: TensorCircuit, num_samples: int | None = None, conditional: bool = False, _sample_input_ns: bool = True, _do_calibration: bool = False, **kwargs)
Draw samples from a PC by performing a top-down ancestral sampling pass.
For unconditional sampling, num_samples must be specified. For conditional sampling (conditional = True), run a forward pass on the evidence first (e.g., via
marginal()); the sampler then reuses the cached pc.node_mars and draws one sample per example in that batch, so num_samples is ignored.- Parameters:
pc (TensorCircuit) – the input PC
num_samples (Optional[int]) – number of samples to draw; required for unconditional sampling, ignored when conditional = True
conditional (bool) – whether to sample conditioned on the evidence cached by a preceding forward pass
- Returns:
a tensor of samples of size [num_samples, num_vars]
- Return type:
torch.Tensor