pub struct Codebook {
pub config: CodebookConfig,
pub centroids: Vec<f32>,
pub id: String,
pub stats: CodebookStats,
}Expand description
A codebook containing centroids for vector quantization
Fields§
§config: CodebookConfigConfiguration
centroids: Vec<f32>Centroid vectors [num_centroids × centroid_dim]
id: StringCodebook identifier
stats: CodebookStatsTraining statistics
Implementations§
Source§impl Codebook
impl Codebook
Sourcepub fn new(config: CodebookConfig, id: impl Into<String>) -> Self
pub fn new(config: CodebookConfig, id: impl Into<String>) -> Self
Create a new codebook with random centroids
Sourcepub fn from_centroids(
config: CodebookConfig,
centroids: Vec<f32>,
id: impl Into<String>,
) -> Result<Self>
pub fn from_centroids( config: CodebookConfig, centroids: Vec<f32>, id: impl Into<String>, ) -> Result<Self>
Create from existing centroids
Sourcepub fn find_nearest(&self, vector: &[f32]) -> Result<(usize, f32)>
pub fn find_nearest(&self, vector: &[f32]) -> Result<(usize, f32)>
Find nearest centroid for a vector
Sourcepub fn find_k_nearest(
&self,
vector: &[f32],
k: usize,
) -> Result<Vec<(usize, f32)>>
pub fn find_k_nearest( &self, vector: &[f32], k: usize, ) -> Result<Vec<(usize, f32)>>
Find K nearest centroids
Sourcepub fn get_centroid(&self, index: usize) -> Option<&[f32]>
pub fn get_centroid(&self, index: usize) -> Option<&[f32]>
Get centroid by index
Sourcepub fn encode_batch(
&self,
vectors: &[f32],
vector_dim: usize,
) -> Result<Vec<u16>>
pub fn encode_batch( &self, vectors: &[f32], vector_dim: usize, ) -> Result<Vec<u16>>
Encode a batch of vectors to indices
Sourcepub fn decode_batch(&self, indices: &[u16]) -> Vec<f32>
pub fn decode_batch(&self, indices: &[u16]) -> Vec<f32>
Decode indices to vectors
Sourcepub fn from_bytes(bytes: &[u8]) -> Result<Self>
pub fn from_bytes(bytes: &[u8]) -> Result<Self>
Deserialize from bytes
Trait Implementations§
Source§impl<'de> Deserialize<'de> for Codebook
impl<'de> Deserialize<'de> for Codebook
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 Codebook
impl RefUnwindSafe for Codebook
impl Send for Codebook
impl Sync for Codebook
impl Unpin for Codebook
impl UnsafeUnpin for Codebook
impl UnwindSafe for Codebook
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