Struct AdafactorConfig
pub struct AdafactorConfig { /* private fields */ }Expand description
Adafactor configuration.
By default, the supplied learning rate caps the relative step size at
min(lr, 1 / sqrt(step)), which is then multiplied by the parameter’s root mean square
(RMS). A learning rate of 0.01 gives the schedule proposed in the paper.
Disable both relative_step and scale_parameter to use an absolute learning rate
controlled entirely by an external scheduler.
Implementations§
§impl AdafactorConfig
impl AdafactorConfig
pub fn new() -> AdafactorConfig
pub fn new() -> AdafactorConfig
Create a new instance of the config.
§Arguments
§Optional Arguments
§grad_clipping
Optional gradient clipping applied before the Adafactor update.
- Defaults to
None
§Default Arguments
§epsilon_1
Positive constant added to squared gradients for numerical stability.
- Defaults to
1e-30
§epsilon_2
Positive lower bound on the parameter RMS when scaling the step size.
- Defaults to
1e-3
§clip_threshold
Positive upper bound on the RMS of the normalized update before learning rate scaling. This is separate from gradient clipping.
- Defaults to
1.0
§decay_rate
Negative exponent in the second moment decay schedule beta_2 = 1 - step^decay_rate.
- Defaults to
-0.8
§relative_step
Whether to cap the supplied learning rate by 1 / sqrt(step).
- Defaults to
true
§scale_parameter
Whether to multiply the step size by max(epsilon_2, RMS(parameter)).
- Defaults to
true
§weight_decay
Decoupled weight decay coefficient, multiplied by the supplied learning rate.
- Defaults to
0.0
§impl AdafactorConfig
impl AdafactorConfig
pub fn with_epsilon_1(self, epsilon_1: f32) -> AdafactorConfig
pub fn with_epsilon_1(self, epsilon_1: f32) -> AdafactorConfig
Sets the value for the field epsilon_1.
Positive constant added to squared gradients for numerical stability.
- Defaults to
1e-30
pub fn with_epsilon_2(self, epsilon_2: f32) -> AdafactorConfig
pub fn with_epsilon_2(self, epsilon_2: f32) -> AdafactorConfig
Sets the value for the field epsilon_2.
Positive lower bound on the parameter RMS when scaling the step size.
- Defaults to
1e-3
pub fn with_clip_threshold(self, clip_threshold: f32) -> AdafactorConfig
pub fn with_clip_threshold(self, clip_threshold: f32) -> AdafactorConfig
Sets the value for the field clip_threshold.
Positive upper bound on the RMS of the normalized update before learning rate scaling. This is separate from gradient clipping.
- Defaults to
1.0
pub fn with_decay_rate(self, decay_rate: f64) -> AdafactorConfig
pub fn with_decay_rate(self, decay_rate: f64) -> AdafactorConfig
Sets the value for the field decay_rate.
Negative exponent in the second moment decay schedule beta_2 = 1 - step^decay_rate.
- Defaults to
-0.8
pub fn with_relative_step(self, relative_step: bool) -> AdafactorConfig
pub fn with_relative_step(self, relative_step: bool) -> AdafactorConfig
Sets the value for the field relative_step.
Whether to cap the supplied learning rate by 1 / sqrt(step).
- Defaults to
true
pub fn with_scale_parameter(self, scale_parameter: bool) -> AdafactorConfig
pub fn with_scale_parameter(self, scale_parameter: bool) -> AdafactorConfig
Sets the value for the field scale_parameter.
Whether to multiply the step size by max(epsilon_2, RMS(parameter)).
- Defaults to
true
pub fn with_weight_decay(self, weight_decay: f32) -> AdafactorConfig
pub fn with_weight_decay(self, weight_decay: f32) -> AdafactorConfig
Sets the value for the field weight_decay.
Decoupled weight decay coefficient, multiplied by the supplied learning rate.
- Defaults to
0.0
pub fn with_grad_clipping(
self,
grad_clipping: Option<GradientClippingConfig>,
) -> AdafactorConfig
pub fn with_grad_clipping( self, grad_clipping: Option<GradientClippingConfig>, ) -> AdafactorConfig
Sets the value for the field grad_clipping.
Optional gradient clipping applied before the Adafactor update.
- Defaults to
None
§impl AdafactorConfig
impl AdafactorConfig
pub fn build(&self) -> Adafactor
pub fn build(&self) -> Adafactor
Build the per-parameter Adafactor optimizer.
Use Self::init to construct a whole-module optimizer with the configured gradient
clipping, or pass this optimizer to ModuleOptimizer::with_group.
§Panics
Panics if either epsilon or the clipping threshold is not positive and finite, the decay exponent is not negative and finite, or weight decay is not nonnegative and finite.
pub fn init(&self) -> ModuleOptimizer
pub fn init(&self) -> ModuleOptimizer
Initialize a whole-module Adafactor optimizer.
Trait Implementations§
§impl Clone for AdafactorConfig
impl Clone for AdafactorConfig
§fn clone(&self) -> AdafactorConfig
fn clone(&self) -> AdafactorConfig
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read more§impl Config for AdafactorConfig
impl Config for AdafactorConfig
§impl Debug for AdafactorConfig
impl Debug for AdafactorConfig
§impl<'de> Deserialize<'de> for AdafactorConfig
impl<'de> Deserialize<'de> for AdafactorConfig
§fn deserialize<D>(
deserializer: D,
) -> Result<AdafactorConfig, <D as Deserializer<'de>>::Error>where
D: Deserializer<'de>,
fn deserialize<D>(
deserializer: D,
) -> Result<AdafactorConfig, <D as Deserializer<'de>>::Error>where
D: Deserializer<'de>,
§impl Display for AdafactorConfig
impl Display for AdafactorConfig
§impl Serialize for AdafactorConfig
impl Serialize for AdafactorConfig
§fn serialize<S>(
&self,
serializer: S,
) -> Result<<S as Serializer>::Ok, <S as Serializer>::Error>where
S: Serializer,
fn serialize<S>(
&self,
serializer: S,
) -> Result<<S as Serializer>::Ok, <S as Serializer>::Error>where
S: Serializer,
Auto Trait Implementations§
impl Freeze for AdafactorConfig
impl RefUnwindSafe for AdafactorConfig
impl Send for AdafactorConfig
impl Sync for AdafactorConfig
impl Unpin for AdafactorConfig
impl UnsafeUnpin for AdafactorConfig
impl UnwindSafe for AdafactorConfig
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
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<T> DeserializeOwned for Twhere
T: for<'de> Deserialize<'de>,
§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
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>
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>
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§impl<T> Pointable for T
impl<T> Pointable for T
§impl<T> PolicyExt for Twhere
T: ?Sized,
impl<T> PolicyExt for Twhere
T: ?Sized,
impl<T> Read<Exclusive, BecauseExclusive> for Twhere
T: ?Sized,
§impl<T> ToCompactString for Twhere
T: Display,
impl<T> ToCompactString for Twhere
T: Display,
§fn try_to_compact_string(&self) -> Result<CompactString, ToCompactStringError>
fn try_to_compact_string(&self) -> Result<CompactString, ToCompactStringError>
ToCompactString::to_compact_string()] Read more§fn to_compact_string(&self) -> CompactString
fn to_compact_string(&self) -> CompactString
CompactString]. Read more