pub enum CompressionMethod {
Show 13 variants
TopK {
k: f32,
},
RandomK {
k: f32,
},
Threshold {
threshold: f32,
},
Quantization {
bits: u8,
},
SignSGD,
Sketching {
sketch_size: usize,
},
PowerSGD {
rank: usize,
},
TernaryQuant {
threshold: f32,
},
BimodalQuant {
num_bins: usize,
},
NaturalCompression {
compression_factor: f32,
},
LayerwiseAdaptive {
base_ratio: f32,
sensitivity: f32,
},
EF21 {
compression_ratio: f32,
momentum: f32,
},
None,
}Expand description
Supported compression methods
Variants§
TopK
Top-K sparsification (keep top k% of gradients)
RandomK
Random sparsification
Threshold
Threshold-based sparsification
Quantization
Quantization to specific number of bits
SignSGD
Sign-based compression (SignSGD)
Sketching
Gradient sketching using Count-Sketch
PowerSGD
PowerSGD low-rank approximation
TernaryQuant
Ternary quantization (-1, 0, +1)
BimodalQuant
Bimodal quantization (adaptive binning)
NaturalCompression
Natural compression (based on gradient distribution)
LayerwiseAdaptive
Layerwise adaptive compression
EF21
EF21 compression with momentum
None
No compression (baseline)
Trait Implementations§
Source§impl Clone for CompressionMethod
impl Clone for CompressionMethod
Source§fn clone(&self) -> CompressionMethod
fn clone(&self) -> CompressionMethod
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 CompressionMethod
impl Debug for CompressionMethod
Source§impl<'de> Deserialize<'de> for CompressionMethod
impl<'de> Deserialize<'de> for CompressionMethod
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
Source§impl PartialEq for CompressionMethod
impl PartialEq for CompressionMethod
Source§impl Serialize for CompressionMethod
impl Serialize for CompressionMethod
impl StructuralPartialEq for CompressionMethod
Auto Trait Implementations§
impl Freeze for CompressionMethod
impl RefUnwindSafe for CompressionMethod
impl Send for CompressionMethod
impl Sync for CompressionMethod
impl Unpin for CompressionMethod
impl UnsafeUnpin for CompressionMethod
impl UnwindSafe for CompressionMethod
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<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