pub struct AdamState {
pub lr: f64,
pub beta1: f64,
pub beta2: f64,
pub eps: f64,
pub t: u64,
pub m: Vec<f64>,
pub v: Vec<f64>,
}Expand description
Adam optimizer state.
Phase 2b: m/v are first/second moment buffers. The fields stay
pub for backward compatibility (cjc-eval / cjc-mir-exec read
state.m.len()), but new code should prefer the typed accessors
m_at / v_at / set_m_at / set_v_at / n_params.
See ADR-0022 (Phase 2 — typed-ID newtypes) for the policy.
Fields§
§lr: f64§beta1: f64§beta2: f64§eps: f64§t: u64§m: Vec<f64>§v: Vec<f64>Implementations§
Source§impl AdamState
impl AdamState
pub fn new(n_params: usize, lr: f64) -> Self
Sourcepub fn m_at(&self, p: ParamIdx) -> f64
pub fn m_at(&self, p: ParamIdx) -> f64
Read the first-moment estimate at a typed parameter index.
Sourcepub fn set_m_at(&mut self, p: ParamIdx, value: f64)
pub fn set_m_at(&mut self, p: ParamIdx, value: f64)
Write the first-moment estimate at a typed parameter index.
Auto Trait Implementations§
impl Freeze for AdamState
impl RefUnwindSafe for AdamState
impl Send for AdamState
impl Sync for AdamState
impl Unpin for AdamState
impl UnsafeUnpin for AdamState
impl UnwindSafe for AdamState
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> 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