pub struct QuantizedLinear {
pub group_size: i32,
pub bits: i32,
pub scales: Param<Array>,
pub biases: Param<Array>,
pub inner: Linear,
}
Expand description
Applies an affine transformation to the input using a quantized weight matrix.
It is the quantized equivalent of Linear
. For now its
parameters are frozen and will not be included in any gradient computation
but this will probably change in the future.
QuantizedLinear also provides several useful static to convert linear layers to QuantizedLinear layers.
Fields§
§group_size: i32
Quantization group size. Default to QuantizedLinear::DEFAULT_GROUP_SIZE
bits: i32
Bits per parameter. Default to QuantizedLinear::DEFAULT_BITS
scales: Param<Array>
Scales
biases: Param<Array>
Biases
inner: Linear
Inner linear layer
Implementations§
Source§impl QuantizedLinear
impl QuantizedLinear
Sourcepub const DEFAULT_GROUP_SIZE: i32 = 64i32
pub const DEFAULT_GROUP_SIZE: i32 = 64i32
Default group size
Sourcepub const DEFAULT_BITS: i32 = 4i32
pub const DEFAULT_BITS: i32 = 4i32
Default bits
Sourcepub fn try_from_linear(
linear: Linear,
group_size: impl Into<Option<i32>>,
bits: impl Into<Option<i32>>,
) -> Result<Self, Exception>
pub fn try_from_linear( linear: Linear, group_size: impl Into<Option<i32>>, bits: impl Into<Option<i32>>, ) -> Result<Self, Exception>
Convert a linear layer to a quantized linear layer.
§Params
linear
: The linear layer to convert.group_size
: The group size to use for the quantized weight. Default toQuantizedLinear::DEFAULT_GROUP_SIZE
bits
: The bit width to use for the quantized weight. Default toQuantizedLinear::DEFAULT_BITS
Trait Implementations§
Source§impl Buildable for QuantizedLinear
impl Buildable for QuantizedLinear
Source§type Builder = QuantizedLinearBuilder
type Builder = QuantizedLinearBuilder
The builder type for this buildable type
Source§impl Clone for QuantizedLinear
impl Clone for QuantizedLinear
Source§fn clone(&self) -> QuantizedLinear
fn clone(&self) -> QuantizedLinear
Returns a copy 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 QuantizedLinear
impl Debug for QuantizedLinear
Source§impl Module<&Array> for QuantizedLinear
impl Module<&Array> for QuantizedLinear
Source§fn training_mode(&mut self, mode: bool)
fn training_mode(&mut self, mode: bool)
Set whether the module is in training mode. Read more
Source§impl ModuleParameters for QuantizedLinear
impl ModuleParameters for QuantizedLinear
Source§fn freeze_parameters(&mut self, recursive: bool)
fn freeze_parameters(&mut self, recursive: bool)
Freeze all parameters in the module.
Source§fn unfreeze_parameters(&mut self, recursive: bool)
fn unfreeze_parameters(&mut self, recursive: bool)
Unfreeze all parameters in the module.
Source§fn parameters(&self) -> ModuleParamRef<'_>
fn parameters(&self) -> ModuleParamRef<'_>
Get references to the module parameters.
Source§fn parameters_mut(&mut self) -> ModuleParamMut<'_>
fn parameters_mut(&mut self) -> ModuleParamMut<'_>
Get mutable references to the module parameters.
Source§fn trainable_parameters(&self) -> ModuleParamRef<'_>
fn trainable_parameters(&self) -> ModuleParamRef<'_>
Get references to the trainable parameters. A parameter is trainable if it is NOT frozen.
Source§fn all_frozen(&self) -> Option<bool>
fn all_frozen(&self) -> Option<bool>
Check if all parameters in the module are frozen. Returns
None
if there are no parameters.Source§fn any_frozen(&self) -> Option<bool>
fn any_frozen(&self) -> Option<bool>
Check if any parameter in the module is frozen. Returns
None
if there are no parameters.Source§fn update(&mut self, parameters: ModuleParam)
fn update(&mut self, parameters: ModuleParam)
Update the module parameters.
Source§fn update_flattened(&mut self, flattened_parameters: FlattenedModuleParam)
fn update_flattened(&mut self, flattened_parameters: FlattenedModuleParam)
Update the module parameters from a flattened representation.
Auto Trait Implementations§
impl Freeze for QuantizedLinear
impl RefUnwindSafe for QuantizedLinear
impl Send for QuantizedLinear
impl !Sync for QuantizedLinear
impl Unpin for QuantizedLinear
impl UnwindSafe for QuantizedLinear
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 moreSource§impl<T> IntoOption<T> for T
impl<T> IntoOption<T> for T
Source§fn into_option(self) -> Option<T>
fn into_option(self) -> Option<T>
Convert into an
Option
.Source§impl<T> IntoStrideBy for T
impl<T> IntoStrideBy for T
Source§impl<T> ModuleParametersExt for Twhere
T: ModuleParameters,
impl<T> ModuleParametersExt for Twhere
T: ModuleParameters,
Source§impl<T> Parameter for Twhere
T: ModuleParameters,
impl<T> Parameter for Twhere
T: ModuleParameters,
Source§fn is_frozen(&self) -> Option<bool>
fn is_frozen(&self) -> Option<bool>
Check if the parameter is frozen. Returns
None
if the parameter is a module that has no
parameters.Source§fn as_nested_value(&self) -> NestedValue<Rc<str>, &Array>
fn as_nested_value(&self) -> NestedValue<Rc<str>, &Array>
Get the parameter as a nested value.
Source§fn as_nested_value_mut(&mut self) -> NestedValue<Rc<str>, &mut Array>
fn as_nested_value_mut(&mut self) -> NestedValue<Rc<str>, &mut Array>
Get the parameter as a mutable nested value.
Source§fn as_trainable_nested_value(&self) -> Option<NestedValue<Rc<str>, &Array>>
fn as_trainable_nested_value(&self) -> Option<NestedValue<Rc<str>, &Array>>
Get the parameter as a nested value if it is trainable.
Source§impl<T> Updatable for Twhere
T: ModuleParameters,
impl<T> Updatable for Twhere
T: ModuleParameters,
Source§fn updatable_states(&self) -> impl IntoIterator<Item = &Array>
fn updatable_states(&self) -> impl IntoIterator<Item = &Array>
Returns a list of references to the updatable states. Read more
Source§fn updatable_states_mut(&mut self) -> impl IntoIterator<Item = &mut Array>
fn updatable_states_mut(&mut self) -> impl IntoIterator<Item = &mut Array>
Returns a list of mutable references to the updatable states. Read more