部署环境介绍

python2.7.13

Anaconda2

Faiss开源代码包

C++编译环境

安装步骤介绍

Anaconda2安装

Anaconda2安装openblas,并软链接到/usr/lin64

c++编译环境配置

python开发环境配置

1. Anaconda2安装

#下载Anaconda2安装脚本

#修改执行权限

chmod 777 Anaconda2-4.3.0-Linux-x86_64.sh

#执行完以上两步,得到可执行文件Anaconda2-4.3.0-Linux-x86_64.sh

# 执行安装

bash Anaconda2-4.3.0-Linux-x86_64.sh

#一路enter和yes,当问到是否添加conda到系统环境变量选择yes

#环境变量添加后的效果可在.bashrc文件中看到

vim $HOME/.bashrc

#环境变量生效

source $HOME/.bashrc

#输入python --version可以看到Anaconda出现在python版本号后

2. openblas安装

#openblas安装【执行一次成功就行啦,重复执行会频繁更新n多包,副作用尚不明确】

conda install openblas

#创建软链接到/usr/lin64

ln -s $HOME/anaconda2/lib/libopenblas.so.0 /usr/lib64/libopenblas.so.0

3. 下载安装Faiss和gcc

笔者选用的是2017年3月版的Faiss源码,版本信息如下

#解压改名后进入Faiss文件夹进行安装

unzip Faiss-678750113efabc5d170dfe9e1154cda50b0c35c2.zip

mv Faiss-678750113efabc5d170dfe9e1154cda50b0c35c2 Faiss

cd Faiss

#配置编译环境

cp example_makefiles/makefile.inc.Linux ./makefile.inc

#编译BLAS测试案例

make tests/test_blas

悲剧了吧,别着急,C++编译环境没安装

#安装C++编译环境

yum -y install gcc+ gcc-c++

#再次编译测试BLAS测试案例

make tests/test_blas

又悲剧了吧,为什么呢?分析原因是因为编译时需要gcc-gfortran进行一系列操作,而我们并没有安装

#安装gcc-gfortran

yum install make gcc gcc-gfortran

#再来测试一下BLAS测试案例编译

make tests/test_blas

#这次终于成功啦,我们运行一下

./tests/test_blas

Note:此处提示error,不过不要紧,这是因为代码中数据类型使用引起的,后续开发中自己规避一下

4. C++开发环境配置

#编译安装(Faiss目录内)

make

#运行简单测试案例

./tests/demo_ivfpq_indexing

#运行复杂测试案例

# 下载数据集

wget ftp://ftp.irisa.fr/local/texmex/corpus/sift.tar.gz tar -xzvf sift.tar.gz

# 转移数据集

mv sift sift1M

# 编译、运行

make tests/demo_sift1M

./tests/demo_sift1M

底层代码已经编译成功了

5. python开发环境配置

#修改配置文件

vim makefile.inc

#找到PYTHONCFLAGS,注释原有部分,修改为

PYTHONCFLAGS=-I$HOME/anaconda2/include/python2.7/ -I$HOME/anaconda2/lib/python2.7/site-packages/numpy/core/include/【笔者此处写为了绝对路径】

# 编译.

make py

# 检验 python-faiss

python -c "import faiss"

ldd -r _swigfaiss.so

# 简单测试

python -c "import faiss, numpy

faiss.Kmeans(10, 20).train(numpy.random.rand(1000, 10).astype('float32'))"

# 复杂测试

export PYTHONPATH=.

mkdir tmp

python python/demo_auto_tune.py

执行完以上操作,会在tmp文件中生成一张图片,如下图所示。【执行过程请耐心等待】

若出现例如alloc错误提示很可能是因为机器内存过小引起的!!!

开启你的Faiss之旅吧!

Reference:

faiss python安装_faiss部署初体验相关推荐

  1. faiss python安装_faiss 安装

    faiss c++ 源码编译 0.写在前面 参考下述文章的编译安装步骤同时将自己遇到的错误进行梳理解决: https://juejin.im/post/5bed7cebe51d454e5b5f2c23 ...

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

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

  3. faiss python安装_faiss入门

    Faiss入门篇假定Faiss已经被安装,若未安装可参考小编安装编译篇https://zhuanlan.zhihu.com/p/78689463.本篇小编基于Faiss的官方wiki实例展开,旨在让大 ...

  4. faiss python安装_Faiss安装

    使用Swift打造动态库SDK和DemoAPP时所遇到的(Xcode7.3) 使用Swift开发SDK的优点是,生成的SDK对于Obj-C或是Swift调用都不需要自己去建桥接文件,因为Swift的S ...

  5. oracle数据库dblink创建语句_3场直播丨达梦DM8数据库安装部署初体验、新基建下的国产数据库应用和发展趋势、Oracle外部表创建与使用...

    1. 循序渐进-达梦DM8数据库安装部署初体验-07/16 简介: 本讲座主要介绍达梦DM8数据库软件安装与数据库创建. 2019年5月,DM8发布. 基于新技术发展的思考和市场的需求,坚持实用性.通 ...

  6. 3场直播丨达梦DM8数据库安装部署初体验、新基建下的国产数据库应用和发展趋势、Oracle外部表创建与使用...

    1. 循序渐进-达梦DM8数据库安装部署初体验-07/16 简介: 本讲座主要介绍达梦DM8数据库软件安装与数据库创建. 2019年5月,DM8发布. 基于新技术发展的思考和市场的需求,坚持实用性.通 ...

  7. 每日一课 | Python数据可视化—Matplotlib初体验

    04. Matplotlib初体验 大家好,我是小C,上期给大家分享--Python数据可视化-如何做好启动准备(小白必读) 本期分享内容:Python数据可视化-Matplotlib初体验 本期小C ...

  8. helm安装_Helm部署和体验jenkins

    运行在Kubernetes上的Jenkins 下图来自rancher官方博客,在kubernetes环境下,jenkins任务被交给各个pod执行,这些pod在需要时被创建,任务结束后被销毁,这样既能 ...

  9. faiss python安装_如何在ubuntu 18.04上安装faiss GPU

    最近因为要做多路召回的相关研究需要使用faiss进行召回,很多同学困在了安装的流程上.所以想把如何安装流程做个小结. 最简单的方法就是通过Anaconda来进行安装,facebook官方会不定期的推送 ...

最新文章

  1. c语言输入姓名比较是否同性,C语言基础--选择题
  2. JobTracker节点后台线程之RetireJobs
  3. 典型的开发国内小项目没失败的经验分享
  4. java中如何将string 转化成long(亲测)
  5. 一时技痒 不用模拟第一印象的构造 通过三个观察得来的规律解决N^2个往返接力问题...
  6. 通俗易懂!navicate如何导入MySQL数据库的.sql文件?
  7. php查询oracle大量数据,Oracle 百万行数据查询优化
  8. MPEG(mpeg1,mpeg2,mpeg4) 与H264 QP值间 关系
  9. (优秀文章保存)Quartz优秀文章保存
  10. 心理学博士做了阿里巴巴首席技术官并且给马云赚了5000亿
  11. SSH连接原理及ssh-key
  12. Java自带的keytool命令
  13. App首次安装 - 授权网络访问的坑
  14. 基于 redis 的单点登录原理
  15. python小技巧之:同时安装py2和py3,如何在指定的版本下pip安装包
  16. 周志华《机器学习》习题1.2
  17. java 实现仿word2007字数统计功能
  18. Mybatis中大于号和小于号表示方式
  19. 学习gridsearchcv 参数以及输出+多scoring
  20. 减盐不减味,乌江榨菜掀起轻盐升级革命

热门文章

  1. 小程序 mathjs渲染公式_Enscape(渲染器)中文版分享
  2. 主产品、联产品、副产品、等级品
  3. 机器学习(五)——GBDT算法
  4. C# 调用RESTFul接口
  5. Win10删除(选择哪些图标显示在任务栏上)上已卸载的软件图标
  6. Windows编程与MFC # 4 单文档应用程序(1)
  7. 海南英语111——Part 11: Apologizing 道歉
  8. SpringBoot启动报错:org.springframework.beans.factory.UnsatisfiedDependencyException Error creating
  9. 游戏开发—英雄类属性
  10. RabbitMQ 之发布订阅模式