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

#include <IndexPQ.h>

Inheritance diagram for faiss::MultiIndexQuantizer:
faiss::Index

Public Member Functions

 MultiIndexQuantizer (int d, size_t M, size_t nbits)
 number of bit per subvector index More...
 
virtual void set_typename ()
 
virtual void train (idx_t n, const float *x)
 
virtual void search (idx_t n, const float *x, idx_t k, float *distances, idx_t *labels) const
 
virtual void add (idx_t n, const float *x)
 add and reset will crash at runtime
 
virtual void reset ()
 removes all elements from the database.
 
virtual void reconstruct (idx_t key, float *recons) const
 
- Public Member Functions inherited from faiss::Index
 Index (idx_t d=0, MetricType metric=METRIC_INNER_PRODUCT)
 
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 reconstruct_n (idx_t i0, idx_t ni, float *recons) const
 
void compute_residual (const float *x, float *residual, idx_t key) const
 
void display () const
 
virtual std::string get_typename () const
 

Public Attributes

ProductQuantizer pq
 
- Public Attributes inherited from faiss::Index
std::string index_typename
 
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

Quantizer where centroids are virtual: they are the Cartesian product of sub-centroids.

Definition at line 137 of file IndexPQ.h.

Constructor & Destructor Documentation

faiss::MultiIndexQuantizer::MultiIndexQuantizer ( int  d,
size_t  M,
size_t  nbits 
)

number of bit per subvector index

Parameters
ddimension of the input vectors
Mnumber of subquantizers

Definition at line 796 of file IndexPQ.cpp.

Member Function Documentation

void faiss::MultiIndexQuantizer::reconstruct ( idx_t  key,
float *  recons 
) const
virtual

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 848 of file IndexPQ.cpp.

void faiss::MultiIndexQuantizer::search ( idx_t  n,
const float *  x,
idx_t  k,
float *  distances,
idx_t labels 
) const
virtual

query n vectors of dimension d to the index.

return at most k vectors. If there are not enough results for a query, the result array is padded with -1s.

Parameters
xinput vectors to search, size n * d
labelsoutput labels of the NNs, size n*k
distancesoutput pairwise distances, size n*k

TODO: special version for k==1

Implements faiss::Index.

Definition at line 825 of file IndexPQ.cpp.

void faiss::MultiIndexQuantizer::train ( idx_t  n,
const float *  x 
)
virtual

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 814 of file IndexPQ.cpp.


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