鲲鹏社区首页
中文
注册
我要评分
文档获取效率
文档正确性
内容完整性
文档易理解
在线提单
论坛求助

使用示例

下方使用示例以使用sift-128-euclidean.hdf5数据集,线程数80为例,数据集可通过以下方式获取:

1
wget http://ann-benchmarks.com/sift-128-euclidean.hdf5 --no-check-certificate

获取测试程序,假设程序运行的目录为“/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                                                // 运行示例脚本

运行步骤如下:

  1. 假设程序运行的目录为“/path/to/kbest_test/demo”,存放数据集至当前路径下的datasets文件夹。
  2. 安装相关依赖。
    1
    2
    pip install scikit-learn h5py psutil numpy==1.24.2
    yum install numactl numactl-devel
    
  3. 运行main.py。
    1
    python main.py 80 -1 sift_99.json
    

    测试指令参数与解释如下所示。

    python main.py <threads> <batch_size> <json_name>
    • “threads”表示实际运行时的线程数。
    • “batch_size”表示batch查询模式下一次查询的query数量,设置为“-1”时表示一次查询数据集中所有的查询query。
    • “json_name”表示测试数据集对应的配置文件名称。

    执行结果如下。