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部分

待完成。

【faiss】安装(一)相关推荐

  1. Faiss安装之问题重重

    由于某种原因,我需要使用gpu版本的faiss(faiss-gpu),查阅一下资料,好像要先把cpu版本的安装包(faiss-cpu)卸载,于是乎,一顿操作猛如虎,几秒钟就卸载了faiss-cpu,但 ...

  2. 记一次faiss安装

    失败情况1. pip3.6 install faiss ImportError: libopenblas.so.0: cannot open shared object file: No such f ...

  3. Faiss安装问题解决

    一.使用conda安装 安装conda(略) 安装faiss CPU版本:conda install -c pytorch faiss-cpu GPU版本:conda install faiss-gp ...

  4. python install pip 区别_python conda、pip区别,python 下 faiss 安装

    在安装一些python的安装包时,我们会使用conda install ~或者pip install ~ 网上说conda是安装到云端,而pip是安装到本地,那二者究竟有什么区别,可以参考下这个点击打 ...

  5. Ubuntu下安装Python开发的Facebook Faiss相似性搜索工具

    Facebook 的相似性搜索工具 Faiss支持GPU下矢量表示检索,有较强的检索性能,可用于有效的相似性搜索(similarity search)和稠密矢量聚类(clustering of den ...

  6. 记录python3.6安装faiss包

    注:这是我个人的工作的问题笔记,还是希望可以帮助到路过的网友. windows环境下无法安装faiss包,所以我是在linux系统下,docker的镜像容器的centos7系统,python3.6的环 ...

  7. (一)Graphvite源码编译安装——faiss 源码安装

    本文只介绍graphvite依赖库faiss 的安装,graphvite的详细安装过程请参考(二)Graphvite 安装过程整理 ---------------------------分割线---- ...

  8. python如何安装faiss

    python如何安装faiss 声明faiss暂时不支持winsows,支持mac,linux 本人在参加Datawhale组织的11月组队学习<推荐系统入门实践:新闻推荐预测>时,在多路 ...

  9. faiss python安装_faiss安装及使用

    一.安装 方法一:通过anaconda安装 下载anaconda: 2. 执行默认安装,一路Enter键:bash 下载的anaconda.sh 3. 修改环境变量: 3.1  vim /etc/pr ...

最新文章

  1. 干货:NIST评测(SRE19)获胜团队声纹识别技术分析 | CSDN博文精选
  2. 「高并发秒杀」linux安装软件有哪几种方式
  3. 【转帖】Windows下PostgreSQL安装图解
  4. Java基础:JDK、JRE、JVM的区别与联系
  5. # 根据三边求角度_小升初数学必学的10种图形求面积法,你家娃都会了吗?
  6. oracle 临时文件 大文件,Oracle中临时文件File#和Db_files关系
  7. 【图文详解】,cisco,***配置
  8. 10年老分析师最终抛弃Excel,它不是最好的数据分析工具
  9. 存储过程、游标和触发器
  10. 条款28:避免返回handles指向对象内部的成分(Avoid returning handles to objects internals)...
  11. android-handler、looper、messageQueue、message
  12. CPDA认证|数据分析师如何撰写数据报告?
  13. java哪些地方用到了工厂模式_【java】实际开发中哪些场景需要用到工厂模式?...
  14. SpringBoot打通微信公众号模板消息通知
  15. 自然语言16_Chunking with NLTK
  16. iptables --algo 字符串匹配算法 bm kmp
  17. IT服务工作——好事成双
  18. win10的c语言程序闪退,win10内置应用出现闪退怎么回事? win10打开应用总闪退的解决方法...
  19. 华为python自动化测试框架_10个自动化测试框架,测试工程师用起来
  20. aurora(极光) vpn查看代理ip和端口

热门文章

  1. OMAP3630 I2C device驱动
  2. Oracle踩坑之路--ORA-01861:文字与格式字符串不符
  3. python3笔记5--循环语句
  4. Echarts 图表不能渲染问题整理
  5. 基于STM32C8T6的智能蓝牙小车(毕业设计)
  6. 通过css实现单选按钮效果
  7. bugku-post
  8. Word及Excel文档的Python脚本处理
  9. HTTP基本使用方法
  10. Object类的常用方法