Skip to main content

Exponential

Struct Exponential 

Source
pub struct Exponential { /* private fields */ }
Expand description

Exponential is a builder for Exponential Learning rate scheduler which allows for more flexible and readable construction.

It implements an exponential decay learning rate scheduler which continuously decreases the learning rate after each epoch. This scheduler is useful for smoothing the training process by gradually decreasing the step size of updates to the model’s parameters, allowing for more precise convergence as training progresses. The rate of decay per epoch is controlled by decay_rate raised to the power of the product of the epoch number and decay_factor.

Implementations§

Source§

impl Exponential

Source

pub fn initial_lr(self, initial_lr: f32) -> Self

Sets the initial learning rate. This is the starting learning rate before any decay is applied.

§Parameters
  • initial_lr: The initial learning rate.
Source

pub fn decay_rate(self, decay_rate: f32) -> Self

Sets the decay rate. This is the base for the exponential decay.

§Parameters
  • decay_rate: The decay rate.
Source

pub fn decay_factor(self, decay_factor: f32) -> Self

Sets the decay factor. This controls how quickly the learning rate decreases. A smaller decay factor results in slower decay.

§Parameters
  • decay_factor: The decay factor.
Source

pub fn build(self) -> Result<Box<dyn LearningRateScheduler>, NetworkError>

Builds the ExponentialLRScheduler if all required fields are set.

Trait Implementations§

Source§

impl Default for Exponential

Source§

fn default() -> Self

Creates a new ExponentialLRSchedulerBuilder with default values. Default values:

  • initial_lr: 0.01
  • decay_rate: 0.95
  • decay_factor: 0.1

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
Source§

impl<SS, SP> SupersetOf<SS> for SP
where SS: SubsetOf<SP>,

Source§

fn to_subset(&self) -> Option<SS>

The inverse inclusion map: attempts to construct self from the equivalent element of its superset. Read more
Source§

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

Use with care! Same as self.to_subset but without any property checks. Always succeeds.
Source§

fn from_subset(element: &SS) -> SP

The inclusion map: converts self to the equivalent element of its superset.
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

Source§

fn vzip(self) -> V