安装faiss

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的操作,需要提前自行安装。

#安装cpu版本
#更新conda
conda update conda
#先安装mkl
conda install mkl
#安装faiss-cpu
conda install faiss-cpu -c pytorch
#测试安装是否成功
python -c "import faiss"
#安装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

# 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

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

测试faiss的python使用

#编译只有在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部分
todo

猜你喜欢

转载自blog.csdn.net/diaozhida/article/details/109465372