pub struct VariationalDiagnostics {
pub elbo_trace: Vec<f64>,
pub gradient_norms: Vec<f64>,
pub param_change_norms: Vec<f64>,
pub converged: bool,
pub n_iterations: usize,
pub final_elbo: f64,
}Expand description
Diagnostics for monitoring variational inference convergence
Fields§
§elbo_trace: Vec<f64>ELBO values at each iteration
gradient_norms: Vec<f64>Gradient norms at each iteration (if tracked)
param_change_norms: Vec<f64>Parameter change norms at each iteration (if tracked)
converged: boolWhether the algorithm converged
n_iterations: usizeNumber of iterations performed
final_elbo: f64Final ELBO value
Implementations§
Source§impl VariationalDiagnostics
impl VariationalDiagnostics
Sourcepub fn record_elbo(&mut self, elbo: f64)
pub fn record_elbo(&mut self, elbo: f64)
Record an ELBO value
Sourcepub fn record_gradient_norm(&mut self, norm: f64)
pub fn record_gradient_norm(&mut self, norm: f64)
Record a gradient norm
Sourcepub fn record_param_change(&mut self, norm: f64)
pub fn record_param_change(&mut self, norm: f64)
Record a parameter change norm
Sourcepub fn check_elbo_convergence(&self, tol: f64) -> bool
pub fn check_elbo_convergence(&self, tol: f64) -> bool
Check whether parameters have converged based on ELBO change
Sourcepub fn check_gradient_convergence(&self, tol: f64) -> bool
pub fn check_gradient_convergence(&self, tol: f64) -> bool
Check whether gradient norms indicate convergence
Sourcepub fn check_param_convergence(&self, tol: f64) -> bool
pub fn check_param_convergence(&self, tol: f64) -> bool
Check whether parameter changes indicate convergence
Sourcepub fn relative_elbo_change(&self, window: usize) -> Option<f64>
pub fn relative_elbo_change(&self, window: usize) -> Option<f64>
Compute the relative ELBO change over recent iterations
Sourcepub fn elbo_summary(&self) -> ElboSummary
pub fn elbo_summary(&self) -> ElboSummary
Get summary statistics for the ELBO trace
Trait Implementations§
Source§impl Clone for VariationalDiagnostics
impl Clone for VariationalDiagnostics
Source§fn clone(&self) -> VariationalDiagnostics
fn clone(&self) -> VariationalDiagnostics
Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreSource§impl Debug for VariationalDiagnostics
impl Debug for VariationalDiagnostics
Auto Trait Implementations§
impl Freeze for VariationalDiagnostics
impl RefUnwindSafe for VariationalDiagnostics
impl Send for VariationalDiagnostics
impl Sync for VariationalDiagnostics
impl Unpin for VariationalDiagnostics
impl UnsafeUnpin for VariationalDiagnostics
impl UnwindSafe for VariationalDiagnostics
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
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§impl<T> Pointable for T
impl<T> Pointable for T
impl<T> Read<Exclusive, BecauseExclusive> for Twhere
T: ?Sized,
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§fn to_subset_unchecked(&self) -> SS
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.