#最近邻 #数据点 #ann搜索 #稀疏密集 #向量集

ann_dataset

一个轻量级的近似最近邻搜索数据集管理研究库

4个版本

0.1.3 2024年6月5日
0.1.2 2024年4月22日
0.1.1 2024年4月18日
0.1.0 2024年4月18日

634算法 中排名

Download history 19/week @ 2024-04-25 1/week @ 2024-05-16 2/week @ 2024-05-23 81/week @ 2024-05-30 52/week @ 2024-06-06 6/week @ 2024-06-13 38/week @ 2024-07-04 8/week @ 2024-07-11

每月269次下载

MIT许可证

49KB
992

一个轻量级的近似最近邻搜索数据集管理研究库。

它提供了以下功能

  • 存储密集、稀疏和密集-稀疏向量集;
  • 根据不同的度量存储具有地面真实值(即精确最近邻)的查询集;
  • 基本功能,如给定检索集计算召回率;
  • 序列化到HDF5文件格式和从中反序列化。

更多详情请访问 crates.io

示例用法

读取ANN数据集很简单。下面的代码片段提供了一个简明的示例。

use ann_dataset::{AnnDataset, Hdf5File, InMemoryAnnDataset, Metric, 
                  PointSet, QuerySet, GroundTruth};

// Load the dataset.
let dataset = InMemoryAnnDataset::<f32>::read(path_to_hdf5)
    .expect("Failed to read the dataset.");

// Get a reference to the data points.
let data_points: &PointSet<_> = dataset.get_data_points();

// Get the test query set.
let test: &QuerySet<_> = dataset.get_test_query_set()
    .expect("Failed to load test query set.");
let test_queries: &PointSet<_> = test.get_points();
let gt: &GroundTruth = test.get_ground_truth(&Metric::InnerProduct)
    .expect("Failed to load ground truth for InnerProduct search.");

// Compute recall, assuming `retrieved_set` is &[Vec<usize>],
// where the `i`-th entry is a list of ids of retrieved points
// for the `i`-th query.
let recall = gt.mean_recall(retrieved_set);

依赖项

~8MB
~164K SLoC