pub struct AdamW {
pub lr: Array,
pub betas: (Array, Array),
pub eps: Array,
pub weight_decay: Array,
pub state: State<(Array, Array)>,
}
Expand description
The AdamW optimizer [1].
Following the above convention, in contrast with [1], we do not use bias
correction in the first and second moments for AdamW. We update the weights
with a weightDecay
lambda value:
[1]: Loshchilov, I. and Hutter, F., 2019. Decoupled weight decay regularization. ICLR 2019.
Fields§
§lr: Array
The learning rate.
betas: (Array, Array)
The coefficients used for computing running averages of the gradient and its square.
Default to AdamW::DEFAULT_BETAS
.
eps: Array
The epsilon added to the denominator to improve numerical stability.
Default to AdamW::DEFAULT_EPS
.
weight_decay: Array
The weight decay
Default to AdamW::DEFAULT_WEIGHT_DECAY
.
state: State<(Array, Array)>
Inner state.
Implementations§
Source§impl AdamW
impl AdamW
Sourcepub const DEFAULT_BETAS: (f32, f32) = super::Adam::DEFAULT_BETAS
pub const DEFAULT_BETAS: (f32, f32) = super::Adam::DEFAULT_BETAS
Default value for betas
.
Sourcepub const DEFAULT_EPS: f32 = 9.99999993E-9f32
pub const DEFAULT_EPS: f32 = 9.99999993E-9f32
Default value for eps
.
Sourcepub const DEFAULT_WEIGHT_DECAY: f32 = 0.00999999977f32
pub const DEFAULT_WEIGHT_DECAY: f32 = 0.00999999977f32
Default value for weight_decay
.
Trait Implementations§
Source§impl Buildable for AdamW
impl Buildable for AdamW
Source§type Builder = AdamWBuilder
type Builder = AdamWBuilder
The builder type for this buildable type
Source§impl Builder<AdamW> for AdamWBuilder
impl Builder<AdamW> for AdamWBuilder
Source§impl Optimizer for AdamW
impl Optimizer for AdamW
Source§fn update_single(
&mut self,
key: &Rc<str>,
gradient: &Array,
parameter: &mut Array,
) -> Result<(), Exception>
fn update_single( &mut self, key: &Rc<str>, gradient: &Array, parameter: &mut Array, ) -> Result<(), Exception>
Update a single parameter with the given gradient. Read more
Source§fn update<M>(
&mut self,
model: &mut M,
gradients: impl Borrow<FlattenedModuleParam>,
) -> Result<()>where
M: ModuleParameters,
fn update<M>(
&mut self,
model: &mut M,
gradients: impl Borrow<FlattenedModuleParam>,
) -> Result<()>where
M: ModuleParameters,
Apply the gradients to the parameters of the model and update the model with the new
parameters.
Source§impl Updatable for &mut AdamW
impl Updatable for &mut AdamW
Source§fn updatable_states(&self) -> impl IntoIterator<Item = &Array>
fn updatable_states(&self) -> impl IntoIterator<Item = &Array>
Returns a list of references to the updatable states. Read more
Source§fn updatable_states_mut(&mut self) -> impl IntoIterator<Item = &mut Array>
fn updatable_states_mut(&mut self) -> impl IntoIterator<Item = &mut Array>
Returns a list of mutable references to the updatable states. Read more
Source§impl Updatable for AdamW
impl Updatable for AdamW
Source§fn updatable_states(&self) -> impl IntoIterator<Item = &Array>
fn updatable_states(&self) -> impl IntoIterator<Item = &Array>
Returns a list of references to the updatable states. Read more
Source§fn updatable_states_mut(&mut self) -> impl IntoIterator<Item = &mut Array>
fn updatable_states_mut(&mut self) -> impl IntoIterator<Item = &mut Array>
Returns a list of mutable references to the updatable states. Read more
Auto Trait Implementations§
impl Freeze for AdamW
impl RefUnwindSafe for AdamW
impl !Send for AdamW
impl !Sync for AdamW
impl Unpin for AdamW
impl UnwindSafe for AdamW
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 moreSource§impl<T> IntoOption<T> for T
impl<T> IntoOption<T> for T
Source§fn into_option(self) -> Option<T>
fn into_option(self) -> Option<T>
Convert into an
Option
.