pub struct OPQConfig {
pub num_subspaces: usize,
pub codebook_size: usize,
pub num_iterations: usize,
pub num_opq_iterations: usize,
pub metric: DistanceMetric,
}Expand description
Configuration for Optimized Product Quantization.
Fields§
§num_subspaces: usizeNumber of subspaces to split the (rotated) vector into.
codebook_size: usizeCodebook size per subspace (max 256 for u8 codes).
num_iterations: usizeNumber of k-means iterations for codebook training.
num_opq_iterations: usizeNumber of outer OPQ iterations (rotation + PQ alternation).
metric: DistanceMetricDistance metric used for codebook training and search.
Implementations§
Trait Implementations§
Source§impl<'de> Deserialize<'de> for OPQConfig
impl<'de> Deserialize<'de> for OPQConfig
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 OPQConfig
impl RefUnwindSafe for OPQConfig
impl Send for OPQConfig
impl Sync for OPQConfig
impl Unpin for OPQConfig
impl UnsafeUnpin for OPQConfig
impl UnwindSafe for OPQConfig
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