pub struct TernaryConfig {
pub accumulation_steps: usize,
pub ternary_threshold: f32,
pub scale_learning_rate: f32,
pub use_stochastic_rounding: bool,
}Expand description
Configuration for ternary gradient accumulation.
§Example
use vsa_optim_rs::TernaryConfig;
let config = TernaryConfig::default()
.with_accumulation_steps(8)
.with_stochastic_rounding(true);Fields§
§accumulation_steps: usizeNumber of gradient accumulation steps before optimizer update.
ternary_threshold: f32Threshold for ternary quantization (relative to mean abs).
scale_learning_rate: f32Learning rate for scale parameters.
use_stochastic_rounding: boolWhether to use stochastic rounding (unbiased) or deterministic.
Implementations§
Source§impl TernaryConfig
impl TernaryConfig
Sourcepub const fn with_accumulation_steps(self, steps: usize) -> TernaryConfig
pub const fn with_accumulation_steps(self, steps: usize) -> TernaryConfig
Set the number of accumulation steps.
Sourcepub const fn with_stochastic_rounding(self, stochastic: bool) -> TernaryConfig
pub const fn with_stochastic_rounding(self, stochastic: bool) -> TernaryConfig
Set whether to use stochastic rounding.
Sourcepub const fn with_threshold(self, threshold: f32) -> TernaryConfig
pub const fn with_threshold(self, threshold: f32) -> TernaryConfig
Set the ternary threshold.
Trait Implementations§
Source§impl Clone for TernaryConfig
impl Clone for TernaryConfig
Source§fn clone(&self) -> TernaryConfig
fn clone(&self) -> TernaryConfig
Returns a duplicate of the value. Read more
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreSource§impl Debug for TernaryConfig
impl Debug for TernaryConfig
Source§impl Default for TernaryConfig
impl Default for TernaryConfig
Source§fn default() -> TernaryConfig
fn default() -> TernaryConfig
Returns the “default value” for a type. Read more
Source§impl<'de> Deserialize<'de> for TernaryConfig
impl<'de> Deserialize<'de> for TernaryConfig
Source§fn deserialize<__D>(
__deserializer: __D,
) -> Result<TernaryConfig, <__D as Deserializer<'de>>::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(
__deserializer: __D,
) -> Result<TernaryConfig, <__D as Deserializer<'de>>::Error>where
__D: Deserializer<'de>,
Deserialize this value from the given Serde deserializer. Read more
Source§impl Serialize for TernaryConfig
impl Serialize for TernaryConfig
Source§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,
Serialize this value into the given Serde serializer. Read more
Auto Trait Implementations§
impl Freeze for TernaryConfig
impl RefUnwindSafe for TernaryConfig
impl Send for TernaryConfig
impl Sync for TernaryConfig
impl Unpin for TernaryConfig
impl UnwindSafe for TernaryConfig
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> 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