Struct faiss::ITQTransform
-
struct ITQTransform : public faiss::VectorTransform
The full ITQ transform, including normalizations and PCA transformation
Public Functions
-
explicit ITQTransform(int d_in = 0, int d_out = 0, bool do_pca = false)
-
virtual void train(idx_t n, const float *x) override
Perform training on a representative set of vectors. Does nothing by default.
- Parameters:
n – nb of training vectors
x – training vecors, size n * d
-
virtual void apply_noalloc(idx_t n, const float *x, float *xt) const override
apply the transformation and return the result in a provided matrix
- Parameters:
n – number of vectors to transform
x – input vectors, size n * d_in
xt – output vectors, size n * d_out
-
virtual void check_identical(const VectorTransform &other) const override
-
float *apply(idx_t n, const float *x) const
apply the transformation and return the result in an allocated pointer
- Parameters:
n – number of vectors to transform
x – input vectors, size n * d_in
- Returns:
output vectors, size n * d_out
-
virtual void reverse_transform(idx_t n, const float *xt, float *x) const
reverse transformation. May not be implemented or may return approximate result
Public Members
-
std::vector<float> mean
-
bool do_pca
-
ITQMatrix itq
-
int max_train_per_dim
max training points per dimension
-
LinearTransform pca_then_itq
-
int d_in
-
int d_out
! input dimension
-
bool is_trained
set if the VectorTransform does not require training, or if training is done already
-
explicit ITQTransform(int d_in = 0, int d_out = 0, bool do_pca = false)