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> CloneExpand for Twhere
T: Clone,
impl<T> CloneExpand for Twhere
T: Clone,
fn __expand_clone_method(&self, _: &Scope) -> T
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
Source§fn into_any(self: Box<T>) -> Box<dyn Any>
fn into_any(self: Box<T>) -> Box<dyn Any>
Converts
Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>, which can then be
downcast into Box<dyn ConcreteType> where ConcreteType implements Trait.Source§fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
Converts
Rc<Trait> (where Trait: Downcast) to Rc<Any>, which can then be further
downcast into Rc<ConcreteType> where ConcreteType implements Trait.Source§fn as_any(&self) -> &(dyn Any + 'static)
fn as_any(&self) -> &(dyn Any + 'static)
Converts
&Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &Any’s vtable from &Trait’s.Source§fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
Converts
&mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &mut Any’s vtable from &mut Trait’s.Source§impl<T> DowncastSend for T
impl<T> DowncastSend for T
Source§impl<T> DowncastSync for T
impl<T> DowncastSync for T
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