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

#include <VectorTransform.h>

Inheritance diagram for faiss::OPQMatrix:
faiss::LinearTransform faiss::VectorTransform

Public Member Functions

 OPQMatrix (int d=0, int M=1, int d2=-1)
 if d2 != -1, output vectors of this dimension
 
virtual void train (Index::idx_t n, const float *x) override
 
virtual void reverse_transform (idx_t n, const float *xt, float *x) const override
 
- Public Member Functions inherited from faiss::LinearTransform
 LinearTransform (int d_in=0, int d_out=0, bool have_bias=false)
 both d_in > d_out and d_out < d_in are supported
 
virtual void apply_noalloc (idx_t n, const float *x, float *xt) const
 same as apply, but result is pre-allocated
 
void transform_transpose (idx_t n, const float *y, float *x) const
 
const float * maybe_subsample_train_set (Index::idx_t *n, const float *x)
 
- Public Member Functions inherited from faiss::VectorTransform
 VectorTransform (int d_in=0, int d_out=0)
 ! output dimension
 
float * apply (idx_t n, const float *x) const
 

Public Attributes

int M
 nb of subquantizers
 
int niter
 Number of outer training iterations.
 
int niter_pq
 Number of training iterations for the PQ.
 
int niter_pq_0
 
int max_points_per_d
 if there are too many training points, resample
 
bool verbose
 
- Public Attributes inherited from faiss::LinearTransform
bool have_bias
 
std::vector< float > A
 ! whether to use the bias term More...
 
std::vector< float > b
 bias vector, size d_out
 
size_t max_points_per_d
 
bool verbose
 
- Public Attributes inherited from faiss::VectorTransform
int d_in
 
int d_out
 ! input dimension
 
bool is_trained
 

Additional Inherited Members

- Public Types inherited from faiss::VectorTransform
typedef Index::idx_t idx_t
 

Detailed Description

Applies a rotation to align the dimensions with a PQ to minimize the reconstruction error. Can be used before an IndexPQ or an IndexIVFPQ. The method is the non-parametric version described in:

"Optimized Product Quantization for Approximate Nearest Neighbor Search" Tiezheng Ge, Kaiming He, Qifa Ke, Jian Sun, CVPR'13

Definition at line 188 of file VectorTransform.h.

Member Function Documentation

void OPQMatrix::reverse_transform ( idx_t  n,
const float *  xt,
float *  x 
) const
overridevirtual

reverse transformation. May not be implemented or may return approximate result

Reimplemented from faiss::VectorTransform.

Definition at line 630 of file VectorTransform.cpp.

void OPQMatrix::train ( Index::idx_t  n,
const float *  x 
)
overridevirtual

Perform training on a representative set of vectors. Does nothing by default.

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

Reimplemented from faiss::VectorTransform.

Definition at line 469 of file VectorTransform.cpp.

Member Data Documentation

int faiss::OPQMatrix::niter_pq_0

same, for the first outer iteration

Definition at line 193 of file VectorTransform.h.


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