pub struct Trace {
pub log_score: f64,
pub choices: Choicemap,
}
Expand description
The trace struct. This holds information about the execution of a gnerative model.
Fields§
§log_score: f64
The log joint liklihood of all of the random decisions in the trace.
choices: Choicemap
The Choicemap that holds the list of the actual decisions that were made in the execution of the generative model.
Implementations§
Source§impl Trace
impl Trace
Sourcepub fn new() -> Trace
pub fn new() -> Trace
Create a new blank trace. It begins with an empty choice map and a log score of 0 (which corresponds to a probability of 1.0 when exponentiated.)
Sourcepub fn get_trace_string(&self) -> String
pub fn get_trace_string(&self) -> String
Return a string that discribes the random decisions made by the model in this trace.
§Example
#[macro_use]
use r_gen::{sample, r_gen};
use r_gen::{simulate, distributions::{Value, Distribution}, trace::{Choicemap, Trace}};
use std::rc::Rc;
#[r_gen]
fn my_biased_coin_model(():()){
let p = sample!(format!("p"), Distribution::Beta(1.0, 1.0)); //Sample p from a uniform.
sample!(format!("num_heads"), Distribution::Binomial(100, p.into())); //Flip 100 coins where P(Heads)=p
}
let (trace, result) = simulate(&mut my_biased_coin_model, ());
println!("{}", trace.get_trace_string());
Sourcepub fn sample_weighted_traces(traces: &Vec<Trace>) -> Option<Trace>
pub fn sample_weighted_traces(traces: &Vec<Trace>) -> Option<Trace>
Sample a trace from a vector of traces according to a categorical distribution. The weights for the distribution are the scores of the traces rescaled by a normalizing constant. This function is intended to be used in an importance resampling algorithm.
Trait Implementations§
Auto Trait Implementations§
impl Freeze for Trace
impl RefUnwindSafe for Trace
impl Send for Trace
impl Sync for Trace
impl Unpin for Trace
impl UnwindSafe for Trace
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
Source§fn to_subset(&self) -> Option<SS>
fn to_subset(&self) -> Option<SS>
The inverse inclusion map: attempts to construct
self
from the equivalent element of its
superset. Read moreSource§fn is_in_subset(&self) -> bool
fn is_in_subset(&self) -> bool
Checks if
self
is actually part of its subset T
(and can be converted to it).Source§unsafe fn to_subset_unchecked(&self) -> SS
unsafe fn to_subset_unchecked(&self) -> SS
Use with care! Same as
self.to_subset
but without any property checks. Always succeeds.Source§fn from_subset(element: &SS) -> SP
fn from_subset(element: &SS) -> SP
The inclusion map: converts
self
to the equivalent element of its superset.