faiss安装教程

本文详细介绍了深度学习库Faiss的安装过程,包括使用Anaconda快速安装和编译安装的步骤。对于编译安装,文章分别讲解了编译C++文件、Python界面以及GPU部分的编译方法。注意,CUDA需要预先单独安装。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

faiss安装

使用Anaconda安装

使用Anaconda安装使用faiss是最方便快速的方式,facebook会及时推出faiss的新版本conda安装包,在conda安装时会自行安装所需的libgcc, mkl, numpy模块。
faiss的cpu版本目前仅支持Linux和MacOS操作系统,gpu版本提供可在Linux操作系统下用CUDA8.0/CUDA9.0/CUDA9.1编译的版本。
注意,上面语句中的cuda90并不会执行安装CUDA的操作,需要提前自行安装。

In [ ]:

#安装cpu版本
#更新conda
conda update conda
#先安装mkl
conda install mkl
#安装faiss-cpu
conda install faiss-cpu -c pytorch
#测试安装是否成功
python -c "import faiss"

In [ ]:

#安装gpu版本
#确保已经安装了CUDA,否则会自动安装cup版本。
conda install faiss-gpu -c pytorch # 默认 For CUDA8.0
conda install faiss-gpu cuda90 -c pytorch # For CUDA9.0
conda install faiss-gpu cuda91 -c pytorch # For CUDA9.1

注意,上面语句中的cuda90/91并不会执行安装CUDA的操作,需要提前自行安装。

编译安装

编译安装需要3个步骤:
1.编译C++文件;
2.编译Python界面;
3.编译GPU部分。
步骤1是必要的,步骤2和3相互独立,不存在相互依赖。
faiss通过一个Makefile文件编译,系统相关的配置文件包含在makefile.inc这个文件中,在下载的faiss安装文件中的example_makefiles文件夹下有实例文件,选择适合的操作系统,将其复制到faiss根目录下,并重命名为makefile.inc。文件中的部分参数需要手动修改。

第一步:编译C++ faiss

BLAS/Lapack

In [ ]:

# ubuntu 16
sudo apt-get install libopenblas-dev python-numpy python-dev
# ubuntu 14
sudo apt-get install libopenblas-dev liblapack3 python-numpy python-dev

# 执行配置文件
./configure
#检查BLAS
make misc/test_blas
./misc/test_blas

建造faiss

In [ ]:

make
make install

第二步 编译Python界面

In [ ]:

#安装swig
sudo apt-get install swig  # ubuntu 16
make py
# 默认使用系统python2.7,如果想使用其他版本的python,需要在makefile.inc文件中修改PYTHONCFLAGS值为python安装路径。

测试faiss的python使用

In [ ]:

#编译只有在faiss/python文件夹下应该包含如下三个文件
#faiss.py
#swigfaiss.py  / swigfaiss_gpu.py
#_swigfaiss.so / _swigfaiss_gpu.so

#编译不报错并不意味着faiss可以正常使用,
python -c "import faiss"
#如果不能import,可能是faiss的路径没配置正确,可以在使用时添加代码
import sys
sys.path.append(faiss_path) # 如 ‘/home/faiss/python/’
#可能是有一些symbols丢失了,使用下面的命令查看
cd python
ldd -r _swigfaiss.so
# 有时候只有在使用BLAS库的时候报错,使用下面的命令测试
python -c "import faiss, numpy"
faiss.Kmeans(10, 20).train(numpy.random.rand(1000, 10).astype('float32'))

第三步 编译GPU部分

待完成。

 

原文:https://github.com/liqima/faiss_note/blob/master/1.Install%20faiss%E5%AE%89%E8%A3%85.ipynb

如果需要交流,欢迎关注留言,我会及时回复。

### FAISS 安装教程与快速入门 FAISS 是一个用于高效相似度搜索和聚类的库,广泛应用于大规模数据集上的向量检索场景。以下是关于 FAISS安装方法以及快速入门的内容。 #### 一、FAISS 支持的操作系统 FAISS 能够运行于多种主流操作系统上,包括 Linux、macOS 和 Windows。这使得开发者可以在不同平台上轻松部署其功能[^3]。 #### 二、通过 Pip 工具安装 FAISS 为了简化安装流程,FAISS 提供了基于 Python 的 pip 包管理工具的支持。这是最为推荐的方式之一,因为它能够自动解决依赖关系并完成环境配置。具体命令如下所示: ```bash pip install faiss-cpu ``` 如果目标设备具备 NVIDIA GPU 并希望利用 CUDA 加速,则可以改用以下命令来安装带有 GPU 支持的版本: ```bash pip install faiss-gpu ``` 需要注意的是,在执行上述命令之前,请确认已正确设置好对应的开发环境,尤其是当涉及 GPU 版本时需预先满足特定硬件条件及驱动程序需求[^2]。 #### 三、从源码编译安装 FAISS (可选) 除了使用 pip 进行便捷式安装外,用户还可以选择下载 FAISS 源代码自行编译。这种方式适合那些需要定制化修改或者针对特殊平台优化的情况。不过此部分内容较为复杂,通常仅适用于高级使用者或有特别需求的情形下采用。 #### 四、FAISS 快速入门实例 下面给出一段简单的例子展示如何创建一个基本的索引结构,并实现最近邻查找操作: ```python import numpy as np import faiss # 设定维度大小 d=64 d = 64 nb = 100 # 数据集中样本数量 np.random.seed(1234) # 设置随机种子以便结果重现 data = np.random.random((nb, d)).astype('float32') # 构造测试数据集合 # 创建 L2 距离度量下的平面索引(index type),无需训练阶段 index = faiss.IndexFlatL2(d) print(f"Is trained: {index.is_trained}") # 验证当前状态是否已完成初始化准备 # 将生成的数据加入到索引当中去 index.add(data) k = 4 # 查询返回前四个最接近的结果数目 query_vector = data[:5] # 使用前五个作为查询向量 distances, indices = index.search(query_vector, k) print(distances) # 输出对应的距离值数组 print(indices) # 打印匹配项的位置编号列表 ``` 以上脚本展示了怎样定义一个基础类型的索引来存储高维空间中的点位信息,并演示了一个典型的 KNN(K Nearest Neighbor)算法应用场景[^5]。 ---
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值