结构体 faiss::NNDescent

struct NNDescent

公共类型

using storage_idx_t = int
using KNNGraph = std::vector<nndescent::Nhood>

公共函数

explicit NNDescent(const int d, const int K)
~NNDescent()
void build(DistanceComputer &qdis, const int n, bool verbose)
void search(DistanceComputer &qdis, const int topk, idx_t *indices, float *dists, VisitedTable &vt) const
void reset()
void init_graph(DistanceComputer &qdis)

随机初始化 KNN 图。

void nndescent(DistanceComputer &qdis, bool verbose)

执行 NNDescent 算法。

void join(DistanceComputer &qdis)

在每个节点上执行本地连接。

void update()

为每个节点采样新的邻居,以便稍后执行本地连接。

void generate_eval_set(DistanceComputer &qdis, std::vector<int> &c, std::vector<std::vector<int>> &v, int N)

采样少量点以评估构建的 KNNG 的质量。

float eval_recall(std::vector<int> &ctrl_points, std::vector<std::vector<int>> &acc_eval_set)

评估构建的 KNNG 的质量。

公共成员

bool has_built = false
int S = 10
int R = 100
int iter = 10
int search_L = 0
int random_seed = 2021
int K
int d
int L
int ntotal = 0
KNNGraph graph
std::vector<int> final_graph