一、安装

方法一:通过anaconda安装

下载anaconda:

2. 执行默认安装,一路Enter键:bash 下载的anaconda.sh

3. 修改环境变量:

3.1  vim /etc/profile

3.2  添加 export PATH="$HOME/anaconda2/bin:$PATH"  (假设你的anaconda为anaconda2,在$HOME路径下)

3.3  启用 source /etc/profile

4. 可通过 conda list检查anaconda是否能正常使用

下载faiss:

1. 下载faiss安装包,根据需求下载所需版本

2. 将下载的faiss安装包放至anaconda/pkgs/ 下

3. faiss安装:conda install 相应的faiss包,直接安装

4. 安装完成后,运行python,import faiss可以正常使用

方法二:自行将faiss的C++转为py文件

下载faiss:

1. 下载所需faiss包,并解压

安装numpy:

1. yum search numpy查找可安装的numpy版本

2. yum install 所需版本的numpy  (系统默认安装的Python为2.7,所以需选择Python2对应的numpy)

1. 下载swig安装包,并解压(若faiss为引擎提供的1.5.2,swig需下载3.0.12版本)

2. swig安装:

2.1  ./configure   (如对安装目录有要求,可通过./configure --prefix=your安装路径 // 指定安装目录)

2.2  make // 编译

2.3  make install // 安装

安装OpenBLAS:(faiss依赖的数学库)

2. cd 解压后的OpenBLAS文件

2.1 编译 make

2.2 安装 make install(如对安装路径有要求,可通过make PREFIX=your安装路径 install进行安装)

3. 修改环境变量:

3.1  vim /etc/profile

3.2  添加:

export OpenBLAS_PATH=/opt/OpenBLAS/lib/

export LIBRARY_PATH=$OpenBLAS_PATH:$LIBRARY_PATH   (g++进行.o文件生成时,需要openblas相应的库文件)

3.3 启用:source /etc/profile

编译.so 及py文件:

1. 进入faiss文件夹,执行make命令,编译生成相应的.so文件

2. 修改环境变量:

2.1 vim /etc/profile

2.2 添加:export LD_LIBRARY_PATH=$OpenBLAS_PATH:$LD_LIBRARY_PATH

2.3 启用:source /etc/profile

3. 执行make py,将faiss转为py文件(在faiss/python 里会生成 build文件夹、faiss文件夹、_swigfaiss.so文件)

====》执行到这一步,在faiss文件夹下的Python下,faiss已可正常使用 (此目录之外执行Python,faiss还是不能正常import)

如果想在任意目录下执行Python后都可以使用faiss,需修改环境变量,将当前的faiss下的的库文件添加到公共库中,修改如下:

1. 将faiss/python 下的s所有文件内容,copy到/usr/lib的某个文件夹下,可新建一个faiss_lib(也可直接添加为当前python路径(faiss-1.5.2/python)路径,但该路径容易被修改,修改后faiss无法正常使用)

2. 修改环境变量:

vim /etc/profile

添加:

export FAISS_PATH=/usr/lib/faiss_lib

export PYTHONPATH=$FAISS_PATH:$PYTHONPATH

启用:source /etc/profile

====》执行到这一步,任意目录下执行Python,均可使用 faiss

注:有一个暴力的方法,把.so .o什么都放到lib 或者 lib64 文件夹里,贼省事

以上安装过程感谢ysx同学,虽然你看不到。

另外说明一点, IndexIdMap是包含了一个Index成员, 而且又继承自Index。

另注

Logo

一站式 AI 云服务平台

更多推荐