pub struct AdamOptimizer {
pub lr: f64,
pub beta1: f64,
pub beta2: f64,
pub epsilon: f64,
pub m: Vec<f64>,
pub v: Vec<f64>,
pub step: u64,
}Expand description
Adam optimizer for a flat parameter vector.
Reference: Kingma & Ba (2015) “Adam: A Method for Stochastic Optimization”.
Fields§
§lr: f64Learning rate α.
beta1: f64Exponential decay rate for first moment estimates.
beta2: f64Exponential decay rate for second moment estimates.
epsilon: f64Small constant for numerical stability.
m: Vec<f64>First moment vector (m).
v: Vec<f64>Second moment vector (v).
step: u64Current step count (t).
Implementations§
Source§impl AdamOptimizer
impl AdamOptimizer
Sourcepub fn new(
n_params: usize,
lr: f64,
beta1: f64,
beta2: f64,
epsilon: f64,
) -> Self
pub fn new( n_params: usize, lr: f64, beta1: f64, beta2: f64, epsilon: f64, ) -> Self
Create a new Adam optimizer for a parameter vector of length n_params.
Sourcepub fn default_params(n_params: usize) -> Self
pub fn default_params(n_params: usize) -> Self
Create an Adam optimizer with default hyperparameters (lr=1e-3, β1=0.9, β2=0.999, ε=1e-8).
Sourcepub fn step_update(&mut self, params: &mut [f64], grads: &[f64])
pub fn step_update(&mut self, params: &mut [f64], grads: &[f64])
Apply one Adam update step to params using grads.
Updates params in-place and increments the step counter.
Trait Implementations§
Source§impl Clone for AdamOptimizer
impl Clone for AdamOptimizer
Source§fn clone(&self) -> AdamOptimizer
fn clone(&self) -> AdamOptimizer
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 moreAuto Trait Implementations§
impl Freeze for AdamOptimizer
impl RefUnwindSafe for AdamOptimizer
impl Send for AdamOptimizer
impl Sync for AdamOptimizer
impl Unpin for AdamOptimizer
impl UnsafeUnpin for AdamOptimizer
impl UnwindSafe for AdamOptimizer
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> 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