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