pub trait Pruner: Send + Sync {
// Required methods
fn generate_mask(
&self,
scores: &ImportanceScores,
target_sparsity: f32,
pattern: SparsityPattern,
) -> Result<SparsityMask, PruningError>;
fn apply_mask(
&self,
module: &mut dyn Module,
mask: &SparsityMask,
) -> Result<PruningResult, PruningError>;
fn importance(&self) -> &dyn Importance;
fn name(&self) -> &'static str;
}Expand description
Required Methods§
Sourcefn generate_mask(
&self,
scores: &ImportanceScores,
target_sparsity: f32,
pattern: SparsityPattern,
) -> Result<SparsityMask, PruningError>
fn generate_mask( &self, scores: &ImportanceScores, target_sparsity: f32, pattern: SparsityPattern, ) -> Result<SparsityMask, PruningError>
Generate a sparsity mask based on importance scores.
§Arguments
scores- Pre-computed importance scorestarget_sparsity- Desired fraction of weights to prune (0.0 to 1.0)pattern- Sparsity pattern constraint (unstructured, N:M, block)
§Returns
Ok(SparsityMask)- Generated maskErr(PruningError)- If mask generation fails
Sourcefn apply_mask(
&self,
module: &mut dyn Module,
mask: &SparsityMask,
) -> Result<PruningResult, PruningError>
fn apply_mask( &self, module: &mut dyn Module, mask: &SparsityMask, ) -> Result<PruningResult, PruningError>
Apply a sparsity mask to a module, zeroing pruned weights.
§Arguments
module- The module to prune (modified in-place)mask- The sparsity mask to apply
§Returns
Ok(PruningResult)- Statistics about the pruning operationErr(PruningError)- If mask application fails
§Safety
This operation modifies weights in-place. The mask must match the module’s parameter shapes exactly.
Sourcefn importance(&self) -> &dyn Importance
fn importance(&self) -> &dyn Importance
Get the importance estimator used by this pruner.
Dyn Compatibility§
This trait is dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety".