faiss python安装_faiss部署初体验
部署环境介绍
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部署初体验相关推荐
- faiss python安装_faiss 安装
faiss c++ 源码编译 0.写在前面 参考下述文章的编译安装步骤同时将自己遇到的错误进行梳理解决: https://juejin.im/post/5bed7cebe51d454e5b5f2c23 ...
- faiss python安装_faiss安装及使用
一.安装 方法一:通过anaconda安装 下载anaconda: 2. 执行默认安装,一路Enter键:bash 下载的anaconda.sh 3. 修改环境变量: 3.1 vim /etc/pr ...
- faiss python安装_faiss入门
Faiss入门篇假定Faiss已经被安装,若未安装可参考小编安装编译篇https://zhuanlan.zhihu.com/p/78689463.本篇小编基于Faiss的官方wiki实例展开,旨在让大 ...
- faiss python安装_Faiss安装
使用Swift打造动态库SDK和DemoAPP时所遇到的(Xcode7.3) 使用Swift开发SDK的优点是,生成的SDK对于Obj-C或是Swift调用都不需要自己去建桥接文件,因为Swift的S ...
- oracle数据库dblink创建语句_3场直播丨达梦DM8数据库安装部署初体验、新基建下的国产数据库应用和发展趋势、Oracle外部表创建与使用...
1. 循序渐进-达梦DM8数据库安装部署初体验-07/16 简介: 本讲座主要介绍达梦DM8数据库软件安装与数据库创建. 2019年5月,DM8发布. 基于新技术发展的思考和市场的需求,坚持实用性.通 ...
- 3场直播丨达梦DM8数据库安装部署初体验、新基建下的国产数据库应用和发展趋势、Oracle外部表创建与使用...
1. 循序渐进-达梦DM8数据库安装部署初体验-07/16 简介: 本讲座主要介绍达梦DM8数据库软件安装与数据库创建. 2019年5月,DM8发布. 基于新技术发展的思考和市场的需求,坚持实用性.通 ...
- 每日一课 | Python数据可视化—Matplotlib初体验
04. Matplotlib初体验 大家好,我是小C,上期给大家分享--Python数据可视化-如何做好启动准备(小白必读) 本期分享内容:Python数据可视化-Matplotlib初体验 本期小C ...
- helm安装_Helm部署和体验jenkins
运行在Kubernetes上的Jenkins 下图来自rancher官方博客,在kubernetes环境下,jenkins任务被交给各个pod执行,这些pod在需要时被创建,任务结束后被销毁,这样既能 ...
- faiss python安装_如何在ubuntu 18.04上安装faiss GPU
最近因为要做多路召回的相关研究需要使用faiss进行召回,很多同学困在了安装的流程上.所以想把如何安装流程做个小结. 最简单的方法就是通过Anaconda来进行安装,facebook官方会不定期的推送 ...
最新文章
- c语言输入姓名比较是否同性,C语言基础--选择题
- JobTracker节点后台线程之RetireJobs
- 典型的开发国内小项目没失败的经验分享
- java中如何将string 转化成long(亲测)
- 一时技痒 不用模拟第一印象的构造 通过三个观察得来的规律解决N^2个往返接力问题...
- 通俗易懂!navicate如何导入MySQL数据库的.sql文件?
- php查询oracle大量数据,Oracle 百万行数据查询优化
- MPEG(mpeg1,mpeg2,mpeg4) 与H264 QP值间 关系
- (优秀文章保存)Quartz优秀文章保存
- 心理学博士做了阿里巴巴首席技术官并且给马云赚了5000亿
- SSH连接原理及ssh-key
- Java自带的keytool命令
- App首次安装 - 授权网络访问的坑
- 基于 redis 的单点登录原理
- python小技巧之:同时安装py2和py3,如何在指定的版本下pip安装包
- 周志华《机器学习》习题1.2
- java 实现仿word2007字数统计功能
- Mybatis中大于号和小于号表示方式
- 学习gridsearchcv 参数以及输出+多scoring
- 减盐不减味,乌江榨菜掀起轻盐升级革命
热门文章
- 小程序 mathjs渲染公式_Enscape(渲染器)中文版分享
- 主产品、联产品、副产品、等级品
- 机器学习(五)——GBDT算法
- C# 调用RESTFul接口
- Win10删除(选择哪些图标显示在任务栏上)上已卸载的软件图标
- Windows编程与MFC # 4 单文档应用程序(1)
- 海南英语111——Part 11: Apologizing 道歉
- SpringBoot启动报错:org.springframework.beans.factory.UnsatisfiedDependencyException Error creating
- 游戏开发—英雄类属性
- RabbitMQ 之发布订阅模式