pub struct PruningCallback { /* private fields */ }Expand description
Callback for applying pruning during training.
Integrates with the training loop to apply pruning at scheduled steps, collect calibration data for activation-weighted methods, and log pruning metrics.
§Toyota Way: Kaizen (Continuous Improvement)
Gradual pruning allows the model to adapt incrementally to sparsity.
§Example
use entrenar::prune::{PruningCallback, PruningConfig, PruningSchedule};
let config = PruningConfig::new()
.with_schedule(PruningSchedule::Gradual {
start_step: 1000,
end_step: 5000,
initial_sparsity: 0.0,
final_sparsity: 0.5,
frequency: 100,
})
.with_target_sparsity(0.5);
let callback = PruningCallback::new(config);
trainer.add_callback(callback);Implementations§
Source§impl PruningCallback
impl PruningCallback
Sourcepub fn new(config: PruningConfig) -> Self
pub fn new(config: PruningConfig) -> Self
Create a new pruning callback with the given configuration.
§Arguments
config- Pruning configuration
Sourcepub fn with_calibration(
config: PruningConfig,
cal_config: CalibrationConfig,
) -> Self
pub fn with_calibration( config: PruningConfig, cal_config: CalibrationConfig, ) -> Self
Create a pruning callback with custom calibration configuration.
Sourcepub fn set_enabled(&mut self, enabled: bool)
pub fn set_enabled(&mut self, enabled: bool)
Enable or disable the callback.
Sourcepub fn is_enabled(&self) -> bool
pub fn is_enabled(&self) -> bool
Check if the callback is enabled.
Sourcepub fn current_sparsity(&self) -> f32
pub fn current_sparsity(&self) -> f32
Get the current achieved sparsity.
Sourcepub fn target_sparsity(&self) -> f32
pub fn target_sparsity(&self) -> f32
Get the target sparsity from the configuration.
Sourcepub fn parameters_pruned(&self) -> usize
pub fn parameters_pruned(&self) -> usize
Get the total number of parameters pruned.
Sourcepub fn schedule(&self) -> &PruningSchedule
pub fn schedule(&self) -> &PruningSchedule
Get the pruning schedule.
Sourcepub fn is_complete(&self) -> bool
pub fn is_complete(&self) -> bool
Check if pruning is complete.
Sourcepub fn last_prune_step(&self) -> Option<usize>
pub fn last_prune_step(&self) -> Option<usize>
Get the step at which pruning last occurred.
Sourcepub fn set_current_sparsity(&mut self, sparsity: f32)
pub fn set_current_sparsity(&mut self, sparsity: f32)
Update current sparsity (for testing or manual updates).
Sourcepub fn config(&self) -> &PruningConfig
pub fn config(&self) -> &PruningConfig
Get the configuration.
Trait Implementations§
Source§impl Clone for PruningCallback
impl Clone for PruningCallback
Source§impl Debug for PruningCallback
impl Debug for PruningCallback
Source§impl TrainerCallback for PruningCallback
impl TrainerCallback for PruningCallback
Source§fn on_train_begin(&mut self, _ctx: &CallbackContext) -> CallbackAction
fn on_train_begin(&mut self, _ctx: &CallbackContext) -> CallbackAction
Source§fn on_step_end(&mut self, ctx: &CallbackContext) -> CallbackAction
fn on_step_end(&mut self, ctx: &CallbackContext) -> CallbackAction
Source§fn on_train_end(&mut self, _ctx: &CallbackContext)
fn on_train_end(&mut self, _ctx: &CallbackContext)
Source§fn on_epoch_begin(&mut self, _ctx: &CallbackContext) -> CallbackAction
fn on_epoch_begin(&mut self, _ctx: &CallbackContext) -> CallbackAction
Source§fn on_epoch_end(&mut self, _ctx: &CallbackContext) -> CallbackAction
fn on_epoch_end(&mut self, _ctx: &CallbackContext) -> CallbackAction
Source§fn on_step_begin(&mut self, _ctx: &CallbackContext) -> CallbackAction
fn on_step_begin(&mut self, _ctx: &CallbackContext) -> CallbackAction
Source§fn on_validation(&mut self, _ctx: &CallbackContext) -> CallbackAction
fn on_validation(&mut self, _ctx: &CallbackContext) -> CallbackAction
Auto Trait Implementations§
impl Freeze for PruningCallback
impl RefUnwindSafe for PruningCallback
impl Send for PruningCallback
impl Sync for PruningCallback
impl Unpin for PruningCallback
impl UnsafeUnpin for PruningCallback
impl UnwindSafe for PruningCallback
Blanket Implementations§
impl<T> Allocation for T
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
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> FmtForward for T
impl<T> FmtForward for T
Source§fn fmt_binary(self) -> FmtBinary<Self>where
Self: Binary,
fn fmt_binary(self) -> FmtBinary<Self>where
Self: Binary,
self to use its Binary implementation when Debug-formatted.Source§fn fmt_display(self) -> FmtDisplay<Self>where
Self: Display,
fn fmt_display(self) -> FmtDisplay<Self>where
Self: Display,
self to use its Display implementation when
Debug-formatted.Source§fn fmt_lower_exp(self) -> FmtLowerExp<Self>where
Self: LowerExp,
fn fmt_lower_exp(self) -> FmtLowerExp<Self>where
Self: LowerExp,
self to use its LowerExp implementation when
Debug-formatted.Source§fn fmt_lower_hex(self) -> FmtLowerHex<Self>where
Self: LowerHex,
fn fmt_lower_hex(self) -> FmtLowerHex<Self>where
Self: LowerHex,
self to use its LowerHex implementation when
Debug-formatted.Source§fn fmt_octal(self) -> FmtOctal<Self>where
Self: Octal,
fn fmt_octal(self) -> FmtOctal<Self>where
Self: Octal,
self to use its Octal implementation when Debug-formatted.Source§fn fmt_pointer(self) -> FmtPointer<Self>where
Self: Pointer,
fn fmt_pointer(self) -> FmtPointer<Self>where
Self: Pointer,
self to use its Pointer implementation when
Debug-formatted.Source§fn fmt_upper_exp(self) -> FmtUpperExp<Self>where
Self: UpperExp,
fn fmt_upper_exp(self) -> FmtUpperExp<Self>where
Self: UpperExp,
self to use its UpperExp implementation when
Debug-formatted.Source§fn fmt_upper_hex(self) -> FmtUpperHex<Self>where
Self: UpperHex,
fn fmt_upper_hex(self) -> FmtUpperHex<Self>where
Self: UpperHex,
self to use its UpperHex implementation when
Debug-formatted.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>
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>
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 moreSource§impl<T> Pipe for Twhere
T: ?Sized,
impl<T> Pipe for Twhere
T: ?Sized,
Source§fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> Rwhere
Self: Sized,
fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> Rwhere
Self: Sized,
Source§fn pipe_ref<'a, R>(&'a self, func: impl FnOnce(&'a Self) -> R) -> Rwhere
R: 'a,
fn pipe_ref<'a, R>(&'a self, func: impl FnOnce(&'a Self) -> R) -> Rwhere
R: 'a,
self and passes that borrow into the pipe function. Read moreSource§fn pipe_ref_mut<'a, R>(&'a mut self, func: impl FnOnce(&'a mut Self) -> R) -> Rwhere
R: 'a,
fn pipe_ref_mut<'a, R>(&'a mut self, func: impl FnOnce(&'a mut Self) -> R) -> Rwhere
R: 'a,
self and passes that borrow into the pipe function. Read moreSource§fn pipe_borrow<'a, B, R>(&'a self, func: impl FnOnce(&'a B) -> R) -> R
fn pipe_borrow<'a, B, R>(&'a self, func: impl FnOnce(&'a B) -> R) -> R
Source§fn pipe_borrow_mut<'a, B, R>(
&'a mut self,
func: impl FnOnce(&'a mut B) -> R,
) -> R
fn pipe_borrow_mut<'a, B, R>( &'a mut self, func: impl FnOnce(&'a mut B) -> R, ) -> R
Source§fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> R
fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> R
self, then passes self.as_ref() into the pipe function.Source§fn pipe_as_mut<'a, U, R>(&'a mut self, func: impl FnOnce(&'a mut U) -> R) -> R
fn pipe_as_mut<'a, U, R>(&'a mut self, func: impl FnOnce(&'a mut U) -> R) -> R
self, then passes self.as_mut() into the pipe
function.Source§fn pipe_deref<'a, T, R>(&'a self, func: impl FnOnce(&'a T) -> R) -> R
fn pipe_deref<'a, T, R>(&'a self, func: impl FnOnce(&'a T) -> R) -> R
self, then passes self.deref() into the pipe function.Source§impl<T> Pointable for T
impl<T> Pointable for T
Source§impl<T> PolicyExt for Twhere
T: ?Sized,
impl<T> PolicyExt for Twhere
T: ?Sized,
Source§impl<T> Tap for T
impl<T> Tap for T
Source§fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Self
fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Self
Borrow<B> of a value. Read moreSource§fn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Self
fn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Self
BorrowMut<B> of a value. Read moreSource§fn tap_ref<R>(self, func: impl FnOnce(&R)) -> Self
fn tap_ref<R>(self, func: impl FnOnce(&R)) -> Self
AsRef<R> view of a value. Read moreSource§fn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Self
fn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Self
AsMut<R> view of a value. Read moreSource§fn tap_deref<T>(self, func: impl FnOnce(&T)) -> Self
fn tap_deref<T>(self, func: impl FnOnce(&T)) -> Self
Deref::Target of a value. Read moreSource§fn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Self
fn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Self
Deref::Target of a value. Read moreSource§fn tap_dbg(self, func: impl FnOnce(&Self)) -> Self
fn tap_dbg(self, func: impl FnOnce(&Self)) -> Self
.tap() only in debug builds, and is erased in release builds.Source§fn tap_mut_dbg(self, func: impl FnOnce(&mut Self)) -> Self
fn tap_mut_dbg(self, func: impl FnOnce(&mut Self)) -> Self
.tap_mut() only in debug builds, and is erased in release
builds.Source§fn tap_borrow_dbg<B>(self, func: impl FnOnce(&B)) -> Self
fn tap_borrow_dbg<B>(self, func: impl FnOnce(&B)) -> Self
.tap_borrow() only in debug builds, and is erased in release
builds.Source§fn tap_borrow_mut_dbg<B>(self, func: impl FnOnce(&mut B)) -> Self
fn tap_borrow_mut_dbg<B>(self, func: impl FnOnce(&mut B)) -> Self
.tap_borrow_mut() only in debug builds, and is erased in release
builds.Source§fn tap_ref_dbg<R>(self, func: impl FnOnce(&R)) -> Self
fn tap_ref_dbg<R>(self, func: impl FnOnce(&R)) -> Self
.tap_ref() only in debug builds, and is erased in release
builds.Source§fn tap_ref_mut_dbg<R>(self, func: impl FnOnce(&mut R)) -> Self
fn tap_ref_mut_dbg<R>(self, func: impl FnOnce(&mut R)) -> Self
.tap_ref_mut() only in debug builds, and is erased in release
builds.Source§fn tap_deref_dbg<T>(self, func: impl FnOnce(&T)) -> Self
fn tap_deref_dbg<T>(self, func: impl FnOnce(&T)) -> Self
.tap_deref() only in debug builds, and is erased in release
builds.