Faiss
 All Classes Namespaces Functions Variables Typedefs Enumerations Enumerator Friends
Public Member Functions | Public Attributes | List of all members
faiss::Index2Layer Struct Reference

#include <IndexIVFPQ.h>

Inheritance diagram for faiss::Index2Layer:
faiss::Index

Public Member Functions

 Index2Layer (Index *quantizer, size_t nlist, int M, MetricType metric=METRIC_L2)
 
void train (idx_t n, const float *x) override
 
void add (idx_t n, const float *x) override
 
void search (idx_t n, const float *x, idx_t k, float *distances, idx_t *labels) const override
 not implemented
 
void reconstruct_n (idx_t i0, idx_t ni, float *recons) const override
 
void reconstruct (idx_t key, float *recons) const override
 
void reset () override
 removes all elements from the database.
 
void transfer_to_IVFPQ (IndexIVFPQ &other) const
 transfer the flat codes to an IVFPQ index
 
- Public Member Functions inherited from faiss::Index
 Index (idx_t d=0, MetricType metric=METRIC_L2)
 
virtual void add_with_ids (idx_t n, const float *x, const long *xids)
 
virtual void range_search (idx_t n, const float *x, float radius, RangeSearchResult *result) const
 
void assign (idx_t n, const float *x, idx_t *labels, idx_t k=1)
 
virtual long remove_ids (const IDSelector &sel)
 
virtual void search_and_reconstruct (idx_t n, const float *x, idx_t k, float *distances, idx_t *labels, float *recons) const
 
void compute_residual (const float *x, float *residual, idx_t key) const
 
void display () const
 

Public Attributes

Level1Quantizer q1
 first level quantizer
 
ProductQuantizer pq
 second level quantizer is always a PQ
 
std::vector< uint8_t > codes
 Codes. Size ntotal * code_size.
 
size_t code_size_1
 size of the code for the first level (ceil(log8(q1.nlist)))
 
size_t code_size_2
 size of the code for the second level
 
size_t code_size
 code_size_1 + code_size_2
 
- Public Attributes inherited from faiss::Index
int d
 vector dimension
 
idx_t ntotal
 total nb of indexed vectors
 
bool verbose
 verbosity level
 
bool is_trained
 set if the Index does not require training, or if training is done already
 
MetricType metric_type
 type of metric this index uses for search
 

Additional Inherited Members

- Public Types inherited from faiss::Index
typedef long idx_t
 all indices are this type
 

Detailed Description

Same as an IndexIVFPQ without the inverted lists: codes are stored sequentially

The class is mainly inteded to store encoded vectors that can be accessed randomly, the search function is not implemented.

Definition at line 205 of file IndexIVFPQ.h.

Member Function Documentation

void faiss::Index2Layer::add ( idx_t  n,
const float *  x 
)
overridevirtual

Add n vectors of dimension d to the index.

Vectors are implicitly assigned labels ntotal .. ntotal + n - 1 This function slices the input vectors in chuncks smaller than blocksize_add and calls add_core.

Parameters
xinput matrix, size n * d

Implements faiss::Index.

Definition at line 1388 of file IndexIVFPQ.cpp.

void faiss::Index2Layer::reconstruct ( idx_t  key,
float *  recons 
) const
overridevirtual

Reconstruct a stored vector (or an approximation if lossy coding)

this function may not be defined for some indexes

Parameters
keyid of the vector to reconstruct
reconsreconstucted vector (size d)

Reimplemented from faiss::Index.

Definition at line 1488 of file IndexIVFPQ.cpp.

void faiss::Index2Layer::reconstruct_n ( idx_t  i0,
idx_t  ni,
float *  recons 
) const
overridevirtual

Reconstruct vectors i0 to i0 + ni - 1

this function may not be defined for some indexes

Parameters
reconsreconstucted vector (size ni * d)

Reimplemented from faiss::Index.

Definition at line 1446 of file IndexIVFPQ.cpp.

void faiss::Index2Layer::train ( idx_t  n,
const float *  x 
)
overridevirtual

Perform training on a representative set of vectors

Parameters
nnb of training vectors
xtraining vecors, size n * d

Reimplemented from faiss::Index.

Definition at line 1350 of file IndexIVFPQ.cpp.


The documentation for this struct was generated from the following files: