Struct Lion
pub struct Lion { /* private fields */ }Expand description
Lion (EvoLved Sign Momentum) optimizer.
Lion keeps a single momentum tensor and updates parameters with the sign of an interpolation between that momentum and the current gradient. Weight decay is decoupled from the gradient, as in AdamW.
Lion commonly needs a learning rate smaller than AdamW’s and a larger decoupled weight decay. These hyperparameters should be tuned together.
Trait Implementations§
§impl Optimizer for Lion
impl Optimizer for Lion
§type State<const D: usize> = LionState<D>
type State<const D: usize> = LionState<D>
The state of the optimizer for a single parameter of rank
D. Read moreAuto Trait Implementations§
impl Freeze for Lion
impl RefUnwindSafe for Lion
impl Send for Lion
impl Sync for Lion
impl Unpin for Lion
impl UnsafeUnpin for Lion
impl UnwindSafe for Lion
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,
§impl<K, Q> Comparable<Q> for K
impl<K, Q> Comparable<Q> for K
§impl<O> DynOptimizer for Owhere
O: Optimizer,
impl<O> DynOptimizer for Owhere
O: Optimizer,
§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.§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.
§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.§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<K, Q> Equivalent<Q> for K
impl<K, Q> Equivalent<Q> for K
§fn equivalent(&self, key: &Q) -> bool
fn equivalent(&self, key: &Q) -> bool
Compare self to
key and return true if they are equal.impl<T> ErasedDestructor for Twhere
T: 'static,
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
§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