pub struct GradientDelta {
pub values: Vec<f32>,
pub is_full: bool,
pub round: u64,
}Expand description
A gradient update that is either a complete gradient or a delta from the previous round.
Fields§
§values: Vec<f32>Either the full gradient vector (is_full = true) or the element-wise
delta from the previous round’s gradient.
is_full: booltrue when values contains the full gradient rather than a delta.
round: u64The federated learning round number this update belongs to.
Implementations§
Source§impl GradientDelta
impl GradientDelta
Sourcepub fn compression_ratio(&self, original_len: usize) -> f64
pub fn compression_ratio(&self, original_len: usize) -> f64
Compression ratio expressed as mean absolute delta divided by the maximum possible delta magnitude.
For full gradients, returns 1.0 (no compression). For delta updates,
a lower value indicates a smaller delta and therefore better effective
compression relative to sending the full gradient.
original_len is the number of elements in the underlying gradient
(used for normalisation when values.len() != original_len).
Trait Implementations§
Source§impl Clone for GradientDelta
impl Clone for GradientDelta
Source§fn clone(&self) -> GradientDelta
fn clone(&self) -> GradientDelta
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 GradientDelta
impl Debug for GradientDelta
Source§impl<'de> Deserialize<'de> for GradientDelta
impl<'de> Deserialize<'de> for GradientDelta
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Deserialize this value from the given Serde deserializer. Read more
Auto Trait Implementations§
impl Freeze for GradientDelta
impl RefUnwindSafe for GradientDelta
impl Send for GradientDelta
impl Sync for GradientDelta
impl Unpin for GradientDelta
impl UnsafeUnpin for GradientDelta
impl UnwindSafe for GradientDelta
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
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,
impl<T> DeserializeOwned for Twhere
T: for<'de> Deserialize<'de>,
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