pub struct OneCycle {
pub max_lr: f64,
pub pct_start: f64,
pub anneal_strategy: AnnealStrategy,
pub total_epochs: usize,
pub div_factor: f64,
pub final_div_factor: f64,
}Expand description
One-cycle learning rate policy.
Implements Smith & Touvron’s 1cycle policy: the learning rate rises from
base_lr to max_lr over the first pct_start fraction of training,
then anneals back down to a minimum learning rate over the remainder.
Reference: Smith (2018), “A disciplined approach to neural network hyper-parameters”.
Fields§
§max_lr: f64Maximum learning rate (peak of the cycle)
pct_start: f64Fraction of total epochs for the increasing phase (0 < pct_start < 1)
anneal_strategy: AnnealStrategyAnnealing strategy for the decreasing phase
total_epochs: usizeTotal number of training epochs
div_factor: f64Minimum (final) learning rate as a fraction of base_lr
final_div_factor: f64Final learning rate divisor (final_lr = base_lr / final_div_factor)
Implementations§
Source§impl OneCycle
impl OneCycle
Sourcepub fn new(
max_lr: f64,
pct_start: f64,
anneal_strategy: AnnealStrategy,
total_epochs: usize,
) -> Self
pub fn new( max_lr: f64, pct_start: f64, anneal_strategy: AnnealStrategy, total_epochs: usize, ) -> Self
Create a new one-cycle schedule.
§Arguments
max_lr- Peak learning ratepct_start- Fraction of epochs for the warmup/increase phaseanneal_strategy- How to anneal during the decrease phasetotal_epochs- Total training epochs
Trait Implementations§
Auto Trait Implementations§
impl Freeze for OneCycle
impl RefUnwindSafe for OneCycle
impl Send for OneCycle
impl Sync for OneCycle
impl Unpin for OneCycle
impl UnsafeUnpin for OneCycle
impl UnwindSafe for OneCycle
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
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
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>
Converts
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>
Converts
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> Pointable for T
impl<T> Pointable for T
Source§impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
Source§fn to_subset(&self) -> Option<SS>
fn to_subset(&self) -> Option<SS>
The inverse inclusion map: attempts to construct
self from the equivalent element of its
superset. Read moreSource§fn is_in_subset(&self) -> bool
fn is_in_subset(&self) -> bool
Checks if
self is actually part of its subset T (and can be converted to it).Source§fn to_subset_unchecked(&self) -> SS
fn to_subset_unchecked(&self) -> SS
Use with care! Same as
self.to_subset but without any property checks. Always succeeds.Source§fn from_subset(element: &SS) -> SP
fn from_subset(element: &SS) -> SP
The inclusion map: converts
self to the equivalent element of its superset.