pub trait GradientCompressionOptimizer: DistributedOptimizer {
type CompressionMethod;
// Required methods
fn compress_gradients(&self, gradients: &[Tensor]) -> Result<Vec<u8>>;
fn decompress_gradients(&self, data: &[u8]) -> Result<Vec<Tensor>>;
fn compression_ratio(&self) -> f32;
fn set_compression_config(&mut self, config: Self::CompressionMethod);
}Expand description
Trait for optimizers with gradient compression capabilities.
Required Associated Types§
Sourcetype CompressionMethod
type CompressionMethod
The compression method used.
Required Methods§
Sourcefn compress_gradients(&self, gradients: &[Tensor]) -> Result<Vec<u8>>
fn compress_gradients(&self, gradients: &[Tensor]) -> Result<Vec<u8>>
Compresses gradients before communication.
Sourcefn decompress_gradients(&self, data: &[u8]) -> Result<Vec<Tensor>>
fn decompress_gradients(&self, data: &[u8]) -> Result<Vec<Tensor>>
Decompresses received gradient data.
Sourcefn compression_ratio(&self) -> f32
fn compression_ratio(&self) -> f32
Gets the compression ratio achieved.
Sourcefn set_compression_config(&mut self, config: Self::CompressionMethod)
fn set_compression_config(&mut self, config: Self::CompressionMethod)
Sets the compression parameters.