Ubuntu下安装Python开发的Facebook Faiss相似性搜索工具
Facebook 的相似性搜索工具 Faiss支持GPU下矢量表示检索,有较强的检索性能,可用于有效的相似性搜索(similarity search)和稠密矢量聚类(clustering of dense vectors)。Faiss 是围绕存储一个向量集的索引类型(index type)构建的,并且索引类型提供了一个利用 L2 和/或点积向量比较的函数,以使该函数能够在向量集中进行搜索。下面说明下在ubuntu下步数faiss,并使用python接口开发。
1.环境准备
1)python环境:
命令:
python -Vpython 3.6.6
2)CUDA版本:
命令:
cat /usr/local/cuda/version.txtCUDA Version 9.0.176
3)Conda安装
懒人部署,不想编译,直接conda install。本机没有安装Anaconda,去https://conda.io/miniconda.html 下载miniconda installer. Miniconda是一个Anaconda的轻量级替代,默认只包含了python和conda,但是可以通过pip和conda来安装所需要的包。Conda是一个开源的软件包管理系统和环境管理系统,用于安装多个版本的软件包及其依赖关系,并在它们之间轻松切换。
命令:
wget -c https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh bash Miniconda3-latest-Linux-x86_64.sh source /home/root/.bashrc conda -V显示conda 4.7.12
2.Faiss安装(GPU)
命令:# For CUDA9
conda install faiss-gpu cudatoolkit=9.0 -c pytorch参考:https://github.com/facebookresearch/faiss/blob/master/INSTALL.md#general-compilation-instructions
3.Python测试
参考:https://github.com/facebookresearch/faiss/wiki/Getting-started
如图:
4.python兼容
1)由于我本机原来有一个python解释器,现在又部署了Anaconda(也会安装一个python解释器)。
命令:
import sys sys.executablepython解释器路径:/usr/bin/python3.6
Anaconda中python解释器路径:/root/miniconda3/bin/python3.7
2)发现终端命令前多了(base),原来是conda activate base 自动执行,执行conda deactivate后就没有了。如果激活就执行anaconda下的python解释器,如果不激活就执行原解释器。
3)找到用户目录下的.bashrc文件,注释掉conda的配置,不让conda自启动。在安装的过程,可以选择不配置环境,我选择了配置环境,所以需要手动取消。
这样的话,每次进入终端后都要配置下Anaconda路径,才能使用conda,如下命令。
export PATH="/root/miniconda3/bin:$PATH" --当前会话有效 source .bashrc
配置PATH后,就可以使用Anaconda下的python解释器,然后就可用这个环境下安装的faiss库了。
总结下:Anaconda安装时选择了配置环境,导致原python解释器需要切换。手动在.bashrc文件中取消Anaconda环境配置。每次进入终端后,默认python解释器是/usr/bin下的python3.6。要使用faiss库,就先配置Anaconda路径启用Anaconda中的python解释器(/root/miniconda3/bin/下python3.7),然后就可以import faiss了。
5.Jupyter Notebook配置多个kernel
一般开发在jupyter下,默认是/usr/bin下的python解释器,要使用faiss,需要切换python kernel到Anaconda环境下。需要给Jupyter Notebook配置多个IPython Kernel。
1)系统进入Anaconda解释器环境下(配置PATH并source生效)
# 安装ipykernel,命令
python -m pip install ipykernel2)然后将Anaconda环境下的kernel安装到jupyter中
命令如下,name自己命名
python -m ipykernel install --name python3.73)验证
重启jupyter notebook.
后台启动jupyter命令:
nohup jupyter notebook --allow-root > /data/tmpexec/jupyter/jupyter.log 2>&1 &总结:为开发方便,保留原python解释器环境,对于新增Anaconda环境,采用兼容方式,在jupyter notebook中配置多个kernel来满足生产。
6.jupyter开发测试
参考https://github.com/facebookresearch/faiss/wiki/Getting-started
成功在python下开发faiss库。
总结
以上是生活随笔为你收集整理的Ubuntu下安装Python开发的Facebook Faiss相似性搜索工具的全部内容,希望文章能够帮你解决所遇到的问题。
- 上一篇: 图像语义分割模型DeepLab训练Cit
- 下一篇: Ubuntu安装程序出现“Sub-pro