Struct faiss::PolysemousTraining
-
struct PolysemousTraining : public faiss::SimulatedAnnealingParameters
optimizes the order of indices in a ProductQuantizer
Public Types
-
enum Optimization_type_t
Values:
-
enumerator OT_None
-
enumerator OT_ReproduceDistances_affine
default
-
enumerator OT_Ranking_weighted_diff
same as _2, but use rank of y+ - rank of y-
-
enumerator OT_None
Public Functions
-
PolysemousTraining()
-
void optimize_pq_for_hamming(ProductQuantizer &pq, size_t n, const float *x) const
reorder the centroids so that the Hamming distance becomes a good approximation of the SDC distance (called by train)
-
void optimize_ranking(ProductQuantizer &pq, size_t n, const float *x) const
called by optimize_pq_for_hamming
-
void optimize_reproduce_distances(ProductQuantizer &pq) const
called by optimize_pq_for_hamming
-
size_t memory_usage_per_thread(const ProductQuantizer &pq) const
make sure we don’t blow up the memory
Public Members
-
Optimization_type_t optimization_type
-
int ntrain_permutation
use 1/4 of the training points for the optimization, with max. ntrain_permutation. If ntrain_permutation == 0: train on centroids
-
double dis_weight_factor
decay of exp that weights distance loss
-
size_t max_memory
refuse to train if it would require more than that amount of RAM
-
std::string log_pattern
-
double init_temperature = 0.7
-
double temperature_decay = 0.9997893011688015
-
int n_iter = 500000
-
int n_redo = 2
-
int seed = 123
-
int verbose = 0
-
bool only_bit_flips = false
-
bool init_random = false
-
enum Optimization_type_t