Faiss

- Main Page
- Namespaces
- Classes
- Files

- Class List
- Class Index
- Class Hierarchy
- Class Members

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:

## 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
| override virtual

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
| ) |  |
| override virtual

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

Parameters

  n | nb of training vectors
  x | training 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:

- /data/users/matthijs/github_faiss/faiss/VectorTransform.h
- /data/users/matthijs/github_faiss/faiss/VectorTransform.cpp