欢迎您访问 最编程 本站为您分享编程语言代码,编程技术文章!
您现在的位置是: 首页

安装和使用 faiss

最编程 2024-06-07 12:12:40
...

一、安装

方法一:通过anaconda安装

 下载anaconda:

1. 下载anaconda (仅供参考:https://mirrors.tuna.tsinghua.edu.cn/anaconda/archive/

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)

安装swig:(swig为c/c++和python的“粘合剂” 可参考:https://blog.****.net/soaringlee_fighting/article/details/61925620

 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依赖的数学库)

1. 下载OpenBLAS包,并解压(https://github.com/xianyi/OpenBLAS 选择合适的版本)

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同学,虽然你看不到。

简单的具体使用的话可以看这位大佬的分享 faiss 学习笔记(二) | index 学习 - 简书

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

另注