小白安装faiss库指南(CPU版)
作者:互联网
小白安装faiss库指南(CPU版)
一、原由
本人在参加Datawhale组织的11月组队学习《推荐系统入门实践:新闻推荐预测》时,在多路召回任务时,需要导入一个叫faiss库,于是百度查询了各种方法,把pip和conda更新了个遍,还是导入成功,直到在群里问的时候才发现,faiss库压根就不支持windows平台,需要在linux下才能导入成功,于是本人抱着顺便学习linux的心态(因为之前看到公司招人要求有写要会linux,而且加上群里大佬说linux是深度学习首选),在从零开始的情况下,先下载好了虚拟机,然后下载了ubuntu(linux系统的一种),再在ubuntu中安装pycharm,anaconda。最后成功将faiss安装成功,在其中遇到了不少问题,希望通过这边文章给大家指引方向,顺便排雷。
二、faiss介绍
Faiss是Facebook AI团队开源的针对聚类和相似性搜索库,为稠密向量提供高效相似度搜索和聚类,支持十亿级别向量的搜索,是目前最为成熟的近似近邻搜索库。它包含多种搜索任意大小向量集(备注:向量集大小由RAM内存决定)的算法,以及用于算法评估和参数调整的支持代码。Faiss用C++编写,并提供与Numpy完美衔接的Python接口。除此以外,对一些核心算法提供了GPU实现。
通过Faiss文档介绍可以了解faiss的主要功能就是相似度搜索。如下图所示,以图片搜索为例,所谓相似度搜索,便是在给定的一堆图片中,寻找出我指定的目标最像的K张图片,也简称为KNN(K近邻)问题。
在推荐系统中,faiss库可以用于搜索用户和物品的相似度。
三、虚拟机安装
首先如果要安装liunx系统的话,最方便的方法应该就是安装虚拟机,虚拟机就是在你自身的windows基础上安装另一层操作系统,但是不好的地方就是会占用你自身windows的内存,而且虚拟机一般只拥有本机的一点内存,所以如果用虚拟机操作的话可能会很慢,很卡。还要另一种方法就是安装一个和windows并行的系统,这样每次开机前就会让你选择是windows或者是linux。我这次用的就是虚拟机安装linux,分配了2G的内存,非常卡,所以正在考虑采用第二种方法。
说到虚拟机安装,不得不想到的就是大名顶顶的虚拟机软件VMware workstations 。
就是这个,就算是没用过虚拟机,在学校的机房也不会陌生这个图标,VMware是一个收费的软件,但是网上的破解方法很多,随便找一个激活码就可以,但是本人在搜索时发现VMware有一个免费的版本供用户使用,其实也就是相当于 workstations 的阉割版,但是我发现功能其实也够我使用了,所以就下载了VMware workstations 16 player
https://www.vmware.com/cn/products/workstation-player/workstation-player-evaluation.html
长的就是上面这个压子,在VMware官网的下载->免费产品下载->Workstation Player就可以找到。
四、ubuntu
Ubuntu也没什么好说的,linux系统的老大哥了,直接百度搜ubuntu官网,就可以找到最新版的ubuntu下载,下载的最上面第一个就是
https://cn.ubuntu.com/download
下载好ubuntu后得到一个ios镜像文件
然后打开VMware workstations 16 player中选择创建新虚拟机,把你下载好的ubuntu加载到安装程序光盘映像文件内,如图中标红所示。接下来虚拟机就会自动识别你的ubuntu类型,然后有一个自动安装的选项,我就勾选上了,设置好密码和用户名,就可以静静的等他安装好(如果你勾选了自动安装的选项,你进ubuntu里面他虽然显示了桌面但是一直在转圈,我一开始以为是死机了,其实就是有点慢,过一会就会出来自动安装的界面,自动安装也很慢,可能是分配的内存不够,我是睡觉前安装的,第二天早上去就安装好了)
安装好之后你都linux应该是英文的(中文的最好,可以省略这一步),这个时候点最右上角的倒三角->设置->管理已安装的语言->添加或删除语言,再往下拉到chinese(simply)是简体中文,chinese(tradtional)是繁体中文,选择一个然后慢慢下载吧,我是下载了一个中文,然后就可以享受你的第一个中文版linux系统啦。
五、Anaconda和pycharm安装
Anaconda和pycharm也不用多说,python编程入门首选之一,提供了良好的界面化和集成环境,不了解的可以上网搜一下,反正无脑用就完了。
首先还是从官网上下载,这里要从ubuntu里面下载哈,你别在主系统windows下载了,下载的时候注意一定要下linux版本的
下面是anaconda的下载地址,往下翻到最下面
https://www.anaconda.com/products/individual
这里是pycharm的下载地址,还是要选linux版本的,而且要下右边的community(免费版),左边的专业版是要收费的,当然你要是不嫌麻烦也可以网上搜一下破解攻略。
https://www.jetbrains.com/pycharm/download/#section=linux
具体的安装方法可以自己百度一下,反正我是无脑点继续的。
接下来一点就是ubuntu和windows安装的不同,windows是直接双击下载好的文件就可以安装,linux/ubuntu则需要通过命令行安装,这对于刚上手linux的同学可能有点不习惯,但是你身为程序员,那必然是要和命令行打交道的,所以提前学一点也没啥。
首先找到你下载的pycharm文件,通常默认的都是在主文件夹(linux只有一个主文件夹,跟windows分区又不一样)->下载/download里面,先把下载好的压缩包解压好,然后在解压好的pycharm中找到bin文件,然后右键->在终端打开
你就打开一个类似于windows命令行(cmd)的形式,这个就是linux的交互的灵魂。(当然你可以从桌面开始直接cd到你要打开的文件,这个对新手确实不是很友好)然后在命令行中输入
sh pycharm.sh
Anaconda也是一样的思想,先下载好,然后用命令行打开,安装,具体我就不截图说明了,大家可以看这篇博客,可以说是写的非常仔细了
https://blog.csdn.net/qq_15192373/article/details/81091098
最后一步就是给pycharm搭载anaconda的环境,如果这里不手动设置的话,pycharm搭载的应该应该是linux自带的python环境,在新建pycharm项目的时候
把下面红框这里的选择为
Downloads/enter/bin/python
前面是你自己的地址,因为大家都不一样我就省略掉了,这样就搭载上了anaconda的环境,有很多默认的包已经给你安装好了,后面要加包直接conda install就行了,interpreter和conda executable都选上。虽然我也不知道这样到底对不对,反正是可行的,我自己也不清楚这两个有什么区别,interpreter是解释器,中间那个我也不知道到底是啥意思,最下面是默认所有项目,希望如果有大神看到这里可以在评论区解答一下我的疑惑)
如果你已经进去了,也可以在pycharm界面选择->file->settings->projiect->python interpreter然后右上角那里有一个小齿轮,点一下,再点击add就可以自己添加指定环境了,一样打开的是上面的界面。
六、安装faiss
万里长征总算走到了最后一步,装一个库废这么多功夫真不容易,只希望最后真的能给我带来收获。
首先找到pycharm最下面的Terminal(终端),这里我们就可以用conda install安装我们的库了,但需要注意的是,如果我们要安装faiss的话,要先添加清华源,豆瓣源等国内镜像,否则会连接时间过长报错,除非你可以科学上网,那就当我没说。
首先我们需要为conda添加下面两个清华源分支:
conda config --add channels [https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/](https://link.jianshu.com/?t=https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/)
conda config --add channels [https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/conda-forge/](https://link.jianshu.com/?t=https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/conda-forge/)
conda config --set show_channel_urls yes
一行一行输入就行,再使用下面这个命令就可以愉快的安装faisscpu版本啦
conda install faiss-cpu -c pytorch
如果还不行就把-c去掉试试。然后等待安装完毕就可以
安装好以后再import faiss,不报错就说明faiss已经安装成功了
faiss安装有不清楚的地方可以参考这篇博客
https://my.oschina.net/u/4511602/blog/3275429
七、总结
总的来说还是很顺利的,从最开始准备安装到安装成功,也就花了一晚上+一早上时间,我是纯虚拟机,linux小白,过程纯自己百度,如果有不对的地方,还请各位大神多多指教,也希望这篇文章能给在linux安装faiss的你一些指引。
最后这个虚拟机实在是太卡了,可能跑不了程序,所以我可能还是会采取双系统的形式,然后安装GPU形式的faiss,这样跑起程序来也能更快一点,这次就相当于是给linux入了一个门吧,如果成功了后期也会开一篇GPU和双系统形式的搭载文章。
标签:虚拟机,ubuntu,小白,linux,安装,CPU,下载,faiss 来源: https://blog.csdn.net/qq_42318647/article/details/110391899