pub struct StepComparison {
pub logits_before: Vec<f32>,
pub logits_vanilla: Vec<f32>,
pub logits_natural: Vec<f32>,
pub euclid_vanilla: f32,
pub euclid_natural: f32,
pub kl_vanilla: f32,
pub kl_natural: f32,
pub fisher_rao_vanilla: f32,
pub fisher_rao_natural: f32,
}Expand description
One step comparison of vanilla gradient descent vs natural gradient descent.
Fields§
§logits_before: Vec<f32>Logits before the step (reference distribution p₀).
logits_vanilla: Vec<f32>Vanilla update: θ ← θ − lr · g.
logits_natural: Vec<f32>Natural update: θ ← θ − lr · F⁻¹ g.
euclid_vanilla: f32Euclidean distance traveled in logit space (vanilla).
euclid_natural: f32Euclidean distance traveled in logit space (natural).
kl_vanilla: f32KL(p₀ ‖ p_vanilla) — information divergence of vanilla step.
kl_natural: f32KL(p₀ ‖ p_natural) — information divergence of natural step.
fisher_rao_vanilla: f32Fisher-Rao geodesic distance (vanilla).
fisher_rao_natural: f32Fisher-Rao geodesic distance (natural).
Auto Trait Implementations§
impl Freeze for StepComparison
impl RefUnwindSafe for StepComparison
impl Send for StepComparison
impl Sync for StepComparison
impl Unpin for StepComparison
impl UnsafeUnpin for StepComparison
impl UnwindSafe for StepComparison
Blanket Implementations§
impl<T> Allocation for T
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> 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 more