pub trait SparseUpdateSupport {
// Required methods
fn apply_sparse_update(
&mut self,
parameter_id: &str,
sparse_gradient: &SparseGradient,
) -> Result<(), OptimizerError>;
fn apply_block_sparse_update(
&mut self,
parameter_id: &str,
block_sparse: &BlockSparseGradient,
) -> Result<(), OptimizerError>;
fn apply_dense_update(
&mut self,
parameter_id: &str,
gradient: &[f32],
) -> Result<(), OptimizerError>;
fn get_parameter_shape(&self, parameter_id: &str) -> Option<Vec<usize>>;
}Expand description
Trait for optimizers that support sparse updates
Required Methods§
Sourcefn apply_sparse_update(
&mut self,
parameter_id: &str,
sparse_gradient: &SparseGradient,
) -> Result<(), OptimizerError>
fn apply_sparse_update( &mut self, parameter_id: &str, sparse_gradient: &SparseGradient, ) -> Result<(), OptimizerError>
Apply a sparse gradient update
Sourcefn apply_block_sparse_update(
&mut self,
parameter_id: &str,
block_sparse: &BlockSparseGradient,
) -> Result<(), OptimizerError>
fn apply_block_sparse_update( &mut self, parameter_id: &str, block_sparse: &BlockSparseGradient, ) -> Result<(), OptimizerError>
Apply a block-sparse gradient update
Sourcefn apply_dense_update(
&mut self,
parameter_id: &str,
gradient: &[f32],
) -> Result<(), OptimizerError>
fn apply_dense_update( &mut self, parameter_id: &str, gradient: &[f32], ) -> Result<(), OptimizerError>
Apply a dense gradient update
Dyn Compatibility§
This trait is dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety".