pub struct NesterovAcceleratedGradient { /* private fields */ }Expand description
Nesterov Accelerated Gradient optimizer.
NAG uses lookahead to evaluate the gradient at the predicted next position, which can lead to faster convergence than standard momentum methods. Update rule: v_t = momentum * v_{t-1} + lr * grad(x_t + momentum * v_{t-1}) x_{t+1} = x_t - v_t
Implementations§
Source§impl NesterovAcceleratedGradient
impl NesterovAcceleratedGradient
Sourcepub fn new(config: NesterovAcceleratedGradientConfig) -> Self
pub fn new(config: NesterovAcceleratedGradientConfig) -> Self
Create a new NAG optimizer.
Sourcepub fn with_defaults(learning_rate: f32, momentum: f32) -> Self
pub fn with_defaults(learning_rate: f32, momentum: f32) -> Self
Create NAG with default configuration.
Sourcepub fn get_config(&self) -> &NesterovAcceleratedGradientConfig
pub fn get_config(&self) -> &NesterovAcceleratedGradientConfig
Get the configuration.
Sourcepub fn set_current_loss(&mut self, loss: f32)
pub fn set_current_loss(&mut self, loss: f32)
Set a loss value for restart detection.
Trait Implementations§
Source§impl Debug for NesterovAcceleratedGradient
impl Debug for NesterovAcceleratedGradient
Auto Trait Implementations§
impl Freeze for NesterovAcceleratedGradient
impl RefUnwindSafe for NesterovAcceleratedGradient
impl Send for NesterovAcceleratedGradient
impl Sync for NesterovAcceleratedGradient
impl Unpin for NesterovAcceleratedGradient
impl UnwindSafe for NesterovAcceleratedGradient
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> 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 more