使用示例
下方使用示例以使用sift-128-euclidean.hdf5数据集,线程数80为例。
- 获取数据集。
1wget http://ann-benchmarks.com/sift-128-euclidean.hdf5 --no-check-certificate
- 获取测试程序。获取链接。分支为v1.2.0,假设程序运行的目录为“/path/to/kbest_test/demo”,完整的目录结构应如下所示:
1 2 3 4 5 6 7 8 9 10
├── ann_dataset // 处理数据集 ├── indices // 存放构建好的图索引,运行时(对应数据集配置文件"save_types"为save_graph)会自动创建 └── sift-128-euclidean_TSDG_R_32_L_300.ksn // 构建好的图索引,运行时(对应数据集配置文件"save_types"为save_graph)自动生成 ├── searcher_indices // 存放构建好的检索器,运行时(对应数据集配置文件"save_types"为save_searcher)会自动创建 └── sift-128-euclidean_TSDG_R_32_L_300.ksn // 构建好的检索器,运行时(对应数据集配置文件"save_types"为save_searcher)自动生成 ├── datasets // 存放数据集 └── sift-128-euclidean.hdf5 ├── main.py // 包含运行函数的文件 └── sift_99.json // 对应数据集配置文件 └── run.sh // 运行示例脚本
运行步骤如下:
- 假设程序运行的目录为“/path/to/kbest_test/demo”,存放数据集至当前路径下的datasets文件夹。
- 安装相关依赖。
1 2
pip install scikit-learn h5py psutil numpy==1.24.2 yum install numactl numactl-devel
- 运行main.py。
1python main.py 80 -1 sift_99.json
测试指令参数与解释如下所示。
python main.py <threads> <batch_size> <json_name>
- “threads”表示实际运行时的线程数。
- “batch_size”表示batch查询模式下一次查询的query数量,设置为“-1”时表示一次查询数据集中所有的查询query。
- “json_name”表示测试数据集对应的配置文件名称。
执行结果如下。

父主题: Python