pub struct ConservationMetrics {
pub magnitude: f32,
pub energy: f32,
pub information: f32,
}Expand description
Conservation metrics for a set of embeddings with attention weights.
Fields§
§magnitude: f32Total weighted magnitude: Σᵢ aᵢ ‖eᵢ‖
energy: f32Attention energy: ½Σᵢⱼ aᵢaⱼ cos(eᵢ, eⱼ)
information: f32Shannon entropy: -Σᵢ aᵢ log(aᵢ)
Implementations§
Source§impl ConservationMetrics
impl ConservationMetrics
Sourcepub fn from_vecs(embeddings: &[Vec<f32>], attention: &[f32]) -> Self
pub fn from_vecs(embeddings: &[Vec<f32>], attention: &[f32]) -> Self
Compute metrics from owned vectors.
Sourcepub fn is_conserved(&self, other: &Self, tolerance: f32) -> bool
pub fn is_conserved(&self, other: &Self, tolerance: f32) -> bool
Sourcepub fn is_fully_conserved(&self, other: &Self, tolerance: f32) -> bool
pub fn is_fully_conserved(&self, other: &Self, tolerance: f32) -> bool
Check if all three metrics are conserved.
Sourcepub fn violation(&self, other: &Self) -> ConservationViolation
pub fn violation(&self, other: &Self) -> ConservationViolation
Compute the conservation violation (distance from conservation).
Sourcepub fn uniform(embeddings: &[&[f32]]) -> Self
pub fn uniform(embeddings: &[&[f32]]) -> Self
Create metrics for a uniform attention distribution.
Sourcepub fn max_entropy(n: usize) -> f32
pub fn max_entropy(n: usize) -> f32
Maximum possible entropy for n items.
Sourcepub fn normalized_entropy(&self, n: usize) -> f32
pub fn normalized_entropy(&self, n: usize) -> f32
Normalized entropy (0 = concentrated, 1 = uniform).
Trait Implementations§
Source§impl Clone for ConservationMetrics
impl Clone for ConservationMetrics
Source§fn clone(&self) -> ConservationMetrics
fn clone(&self) -> ConservationMetrics
Returns a duplicate of the value. Read more
1.0.0 · 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 ConservationMetrics
impl Debug for ConservationMetrics
Source§impl Default for ConservationMetrics
impl Default for ConservationMetrics
Source§impl PartialEq for ConservationMetrics
impl PartialEq for ConservationMetrics
impl Copy for ConservationMetrics
impl StructuralPartialEq for ConservationMetrics
Auto Trait Implementations§
impl Freeze for ConservationMetrics
impl RefUnwindSafe for ConservationMetrics
impl Send for ConservationMetrics
impl Sync for ConservationMetrics
impl Unpin for ConservationMetrics
impl UnwindSafe for ConservationMetrics
Blanket Implementations§
Source§impl<T> ArchivePointee for T
impl<T> ArchivePointee for T
Source§type ArchivedMetadata = ()
type ArchivedMetadata = ()
The archived version of the pointer metadata for this type.
Source§fn pointer_metadata(
_: &<T as ArchivePointee>::ArchivedMetadata,
) -> <T as Pointee>::Metadata
fn pointer_metadata( _: &<T as ArchivePointee>::ArchivedMetadata, ) -> <T as Pointee>::Metadata
Converts some archived metadata to the pointer metadata for itself.
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<F, W, T, D> Deserialize<With<T, W>, D> for F
impl<F, W, T, D> Deserialize<With<T, W>, D> for F
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> LayoutRaw for T
impl<T> LayoutRaw for T
Source§fn layout_raw(_: <T as Pointee>::Metadata) -> Result<Layout, LayoutError>
fn layout_raw(_: <T as Pointee>::Metadata) -> Result<Layout, LayoutError>
Gets the layout of the type.