#include <IndexIVFPQ.h>
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 | |
![]() | |
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 | |
![]() | |
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 | |
![]() | |
typedef long | idx_t |
all indices are this type | |
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.
|
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.
x | input matrix, size n * d |
Implements faiss::Index.
Definition at line 1388 of file IndexIVFPQ.cpp.
|
overridevirtual |
Reconstruct a stored vector (or an approximation if lossy coding)
this function may not be defined for some indexes
key | id of the vector to reconstruct |
recons | reconstucted vector (size d) |
Reimplemented from faiss::Index.
Definition at line 1488 of file IndexIVFPQ.cpp.
Reconstruct vectors i0 to i0 + ni - 1
this function may not be defined for some indexes
recons | reconstucted vector (size ni * d) |
Reimplemented from faiss::Index.
Definition at line 1446 of file IndexIVFPQ.cpp.
|
overridevirtual |
Perform training on a representative set of vectors
n | nb of training vectors |
x | training vecors, size n * d |
Reimplemented from faiss::Index.
Definition at line 1350 of file IndexIVFPQ.cpp.