Faiss 安装与配置(最新)

Faiss 简介

Faiss 是一个用于高效相似性搜索和密集向量聚类的库。它包含在任意大小的向量组中搜索的算法,直到可能不适合 RAM 的向量组。它还包含用于评估和参数调整的支持代码。

Faiss 是用 C++ 编写的,带有完整的 Python 包装器(版本 2.0+ 和 3.0+)。一些最有用的算法是在 GPU 上实现的。它由Facebook AI Research开发。

相关链接:

  • 1: faiss官方文档
  • 2: github地址

开始

1. 安装faiss

推荐使用Anaconda安装,如果你的电脑上还未安装与配置Anaconda环境,请先安装Anaconda。

cpu版本:

conda install -c pytorch faiss-cpu

gpu版本

conda install -c pytorch faiss-gpu
2. 安装pytorch

cpu版本:

conda install pytorch torchvision torchaudio cpuonly -c pytorc

gpu版本的pytorch安装需要根据本机或者服务器的操作系统cuda版本进行选择,具体选择可参考官网链接,以下以linux操作系统cuda10.1版本为例:

conda install pytorch==1.7.1 torchvision==0.8.2 torchaudio==0.7.2 cudatoolkit=10.1 -c pytorch

3. 安装Jupyter-Lab(自选)

为方便后续的代码调试,我推荐你安装jupyter-lab,如果你还不会在服务器上配置jupyter-lab,可以点击这里查看配置教程。

以下任选一种安装即可:

conda安装:

conda install -c conda-forge jupyterlab

pip安装

pip install jupyterlab

测试

参照官方示例,运行以下代码:

import numpy as np
d = 64                           # dimension
nb = 100000                      # database size
nq = 10000                       # nb of queries
np.random.seed(1234)             # make reproducible
xb = np.random.random((nb, d)).astype('float32')
xb[:, 0] += np.arange(nb) / 1000.
xq = np.random.random((nq, d)).astype('float32')
xq[:, 0] += np.arange(nq) / 1000.import faiss                   # make faiss available
index = faiss.IndexFlatL2(d)   # build the index
print(index.is_trained)
index.add(xb)                  # add vectors to the index
print(index.ntotal)k = 4                          # we want to see 4 nearest neighbors
D, I = index.search(xb[:5], k) # sanity check
print(I)
print(D)
D, I = index.search(xq, k)     # actual search
print(I[:5])                   # neighbors of the 5 first queries
print(I[-5:])                  # neighbors of the 5 last queries

若出现以下结果,恭喜你,faiss的基本安装已经完成!

[[  0 393 363  78][  1 555 277 364][  2 304 101  13][  3 173  18 182][  4 288 370 531]]
[[0.        7.1751738 7.20763   7.2511625][0.        6.3235645 6.684581  6.799946 ][0.        5.7964087 6.391736  7.2815123][0.        7.2779055 7.527987  7.6628466][0.        6.7638035 7.2951202 7.3688145]]
[[ 381  207  210  477][ 526  911  142   72][ 838  527 1290  425][ 196  184  164  359][ 526  377  120  425]]
[[ 9900 10500  9309  9831][11055 10895 10812 11321][11353 11103 10164  9787][10571 10664 10632  9638][ 9628  9554 10036  9582]]


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部