pub struct Lamb { /* private fields */ }Expand description
Layer-wise Adaptive Moments (LAMB) optimizer.
LAMB applies an Adam-style update, then scales it by the ratio between the parameter norm and update norm. This layer-wise adaptation is useful when training with very large batch sizes.
See: Large Batch Optimization for Deep Learning: Training BERT in 76 minutes.
Configured by LambConfig.
Trait Implementations§
Source§impl Optimizer for Lamb
impl Optimizer for Lamb
Source§type State<const D: usize> = LambState<D>
type State<const D: usize> = LambState<D>
The state of the optimizer for a single parameter of rank
D. Read moreAuto Trait Implementations§
impl Freeze for Lamb
impl RefUnwindSafe for Lamb
impl Send for Lamb
impl Sync for Lamb
impl Unpin for Lamb
impl UnsafeUnpin for Lamb
impl UnwindSafe for Lamb
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
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<O> DynOptimizer for Owhere
O: Optimizer,
impl<O> DynOptimizer for Owhere
O: Optimizer,
Source§fn step_dyn(
&self,
rank: usize,
lr: f64,
tensor: BridgeTensor,
grad: BridgeTensor,
state: Option<DynState>,
) -> (BridgeTensor, Option<DynState>)
fn step_dyn( &self, rank: usize, lr: f64, tensor: BridgeTensor, grad: BridgeTensor, state: Option<DynState>, ) -> (BridgeTensor, Option<DynState>)
Perform an optimizer step for a single parameter of the given
rank.Source§fn to_device_dyn(&self, state: DynState, device: &Device) -> DynState
fn to_device_dyn(&self, state: DynState, device: &Device) -> DynState
Move a state to the given device.
Source§fn state_flatten(&self, prefix: &str, state: &DynState, out: &mut StateSink)
fn state_flatten(&self, prefix: &str, state: &DynState, out: &mut StateSink)
Decompose a state into named tensors and scalars under
prefix.Source§fn state_unflatten(
&self,
rank: usize,
prefix: &str,
src: &mut StateSource,
device: &Device,
) -> Option<DynState>
fn state_unflatten( &self, rank: usize, prefix: &str, src: &mut StateSource, device: &Device, ) -> Option<DynState>
impl<T> ErasedDestructor for Twhere
T: 'static,
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