赞
踩
使用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。文件中的部分参数需要手动修改。
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
- #安装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'))
待完成。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。