pub struct LearningRateScheduler { /* private fields */ }Expand description
A learning-rate scheduler that adjusts the rate based on drift state.
DriftLevel::None: usebase_lr.DriftLevel::Warning: usebase_lr * warning_multiplier.DriftLevel::Drift: usebase_lr * drift_multiplier.
Space complexity: O(1).
§Examples
use rill_ml::drift::{DriftLevel, LearningRateScheduler};
let mut sched = LearningRateScheduler::new(0.01, 2.0, 5.0).unwrap();
assert!((sched.current_lr() - 0.01).abs() < 1e-12);
sched.on_drift_level(DriftLevel::Warning);
assert!((sched.current_lr() - 0.02).abs() < 1e-12);
sched.on_drift_level(DriftLevel::Drift);
assert!((sched.current_lr() - 0.05).abs() < 1e-12);Implementations§
Source§impl LearningRateScheduler
impl LearningRateScheduler
Sourcepub fn new(
base_lr: f64,
warning_multiplier: f64,
drift_multiplier: f64,
) -> Result<Self, RillError>
pub fn new( base_lr: f64, warning_multiplier: f64, drift_multiplier: f64, ) -> Result<Self, RillError>
Create a new scheduler.
Returns an error if:
base_lris not finite or not strictly positive.warning_multiplieris not finite or less than 1.drift_multiplieris not finite or less thanwarning_multiplier.
Sourcepub const fn warning_multiplier(&self) -> f64
pub const fn warning_multiplier(&self) -> f64
The configured warning multiplier.
Sourcepub const fn drift_multiplier(&self) -> f64
pub const fn drift_multiplier(&self) -> f64
The configured drift multiplier.
Sourcepub const fn current_state(&self) -> DriftLevel
pub const fn current_state(&self) -> DriftLevel
The current drift state.
Sourcepub fn on_drift_level(&mut self, level: DriftLevel)
pub fn on_drift_level(&mut self, level: DriftLevel)
Update the scheduler with the latest drift level from a detector.
Sourcepub fn current_lr(&self) -> f64
pub fn current_lr(&self) -> f64
The current learning rate, adjusted for the drift state.
Trait Implementations§
Source§impl Clone for LearningRateScheduler
impl Clone for LearningRateScheduler
Source§fn clone(&self) -> LearningRateScheduler
fn clone(&self) -> LearningRateScheduler
Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · 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 LearningRateScheduler
impl Debug for LearningRateScheduler
Auto Trait Implementations§
impl Freeze for LearningRateScheduler
impl RefUnwindSafe for LearningRateScheduler
impl Send for LearningRateScheduler
impl Sync for LearningRateScheduler
impl Unpin for LearningRateScheduler
impl UnsafeUnpin for LearningRateScheduler
impl UnwindSafe for LearningRateScheduler
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