pub struct QuantConfig {
pub dtype: DType,
pub scheme: QScheme,
pub enable_fake_quant: bool,
pub observer_type: ObserverType,
pub backend: QuantBackend,
pub reduce_range: ReduceRange,
pub qint_min: Option<i32>,
pub qint_max: Option<i32>,
pub eps: f32,
pub averaging_constant: f32,
pub ch_axis: Option<usize>,
pub group_size: Option<usize>,
}Expand description
Quantization configuration
Fields§
§dtype: DType§scheme: QScheme§enable_fake_quant: bool§observer_type: ObserverType§backend: QuantBackend§reduce_range: ReduceRange§qint_min: Option<i32>§qint_max: Option<i32>§eps: f32§averaging_constant: f32§ch_axis: Option<usize>§group_size: Option<usize>Group size for group-wise quantization
Implementations§
Source§impl QuantConfig
impl QuantConfig
Sourcepub fn mixed_precision() -> Self
pub fn mixed_precision() -> Self
Create config for mixed precision
Sourcepub fn per_channel(ch_axis: usize) -> Self
pub fn per_channel(ch_axis: usize) -> Self
Create config for per-channel quantization
Sourcepub fn group_wise(ch_axis: usize, group_size: usize) -> Self
pub fn group_wise(ch_axis: usize, group_size: usize) -> Self
Create config for group-wise quantization
Sourcepub fn with_backend(self, backend: QuantBackend) -> Self
pub fn with_backend(self, backend: QuantBackend) -> Self
Create config with specific backend
Sourcepub fn with_observer(self, observer_type: ObserverType) -> Self
pub fn with_observer(self, observer_type: ObserverType) -> Self
Set observer type
Sourcepub fn with_scheme(self, scheme: QScheme) -> Self
pub fn with_scheme(self, scheme: QScheme) -> Self
Set quantization scheme
Sourcepub fn with_fake_quant(self, enable: bool) -> Self
pub fn with_fake_quant(self, enable: bool) -> Self
Enable/disable fake quantization
Sourcepub fn with_reduce_range(self, reduce_range: ReduceRange) -> Self
pub fn with_reduce_range(self, reduce_range: ReduceRange) -> Self
Set reduce range option
Sourcepub fn with_group_size(self, group_size: usize) -> Self
pub fn with_group_size(self, group_size: usize) -> Self
Set group size for group-wise quantization
Sourcepub fn get_qint_range(&self) -> (i32, i32)
pub fn get_qint_range(&self) -> (i32, i32)
Get effective quantization range considering scheme and reduce_range
Sourcepub fn validate(&self) -> TorshResult<()>
pub fn validate(&self) -> TorshResult<()>
Validate configuration
Trait Implementations§
Source§impl Clone for QuantConfig
impl Clone for QuantConfig
Source§fn clone(&self) -> QuantConfig
fn clone(&self) -> QuantConfig
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 QuantConfig
impl Debug for QuantConfig
Source§impl Default for QuantConfig
impl Default for QuantConfig
Source§impl<'de> Deserialize<'de> for QuantConfig
impl<'de> Deserialize<'de> for QuantConfig
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Deserialize this value from the given Serde deserializer. Read more
Auto Trait Implementations§
impl Freeze for QuantConfig
impl RefUnwindSafe for QuantConfig
impl Send for QuantConfig
impl Sync for QuantConfig
impl Unpin for QuantConfig
impl UnsafeUnpin for QuantConfig
impl UnwindSafe for QuantConfig
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> 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