Ubuntu16.04安装Caffe最全最详细教程(CPU)
转载请附上本文链接:https://www.cnblogs.com/acgoto/p/11570188.html
一、前言
为了安装caffe,本人已经在centos7.x上试错了1次,目前弃疗~;在Ubuntu18.04上试错了3次,目前也弃疗~不是我懒,说实话,bug是真tm多,问问度娘,自己体会体会~我一向喜欢安装最新版本的软件,但是关于最新版本软件的文章少之又少,也因此受尽各种折磨.......即使有,我想要解决的bug不一定是别人出现的bug......,然后就会用各种各样的办法搜遍天涯海角,陷入无法自拔的困境......对此,为了节省不必要的安装时间,最终我还是选择了Ubuntu16.04,痛改前非,决定重新做人!
长文预警⚠:本文篇幅较长,望耐心看完!!!安装过程中尽量用正确的方式下载各种依赖,若有错误记录将会一一列出详细解决方案!请务必和我一样重新从安装Ubuntu16.04开始(除非你自己拥有一台服务器并且是Ubuntu16.04版本,OK!鼠标滚轮往下滑,直接跳到大标题五开始进行阅读操作!),然后就耐心地跟着我一路开挂人生吧!好了,废话不说,进入正题!若文中有术语或技术等描述错误,欢迎在评论区中指出我的错误,非常感谢!
强烈建议:安装虚拟机vm15版本的,目的是适配win10系统版本。若安装vm14版本,则连接本机的摄像头时可能出现“卡死”现象!
想要卸载原来的Ubuntu xx版本,请阅读大标题二,下面给出卸载方法,so easy!
二、卸载VMware虚拟机上任何XX操作系统
首先,将挂起或正在运行的客户机关机,然后点击虚拟机--->管理--->从磁盘中删除,将会删除之前安装XX操作系统的整个文件目录!镜像文件不会被删除的,放心跟着操作就完事了~
三、安装虚拟机和Ubuntu16.04
虚拟机14版本和乌班图下载链接: https://pan.baidu.com/s/1ErZNhZR9J2FJ-XVRVKScBw 提取码: 96f0
虚拟机15版本下载链接:https://pan.baidu.com/s/1XvKG29FH7Asggri8ssJjsw 提取码: 56us
关于如何安装虚拟机14 Pro?(建议安装vm15)这里演示一下安装过程和提供所需的许可证密钥。各种版本的安装都大同小异~
接下来的教程基本是图片,必要时我会用文字来描述,多谢合作~
vm14许可证密钥:AA510-2DF1Q-H882Q-XFPQE-Q30A0
vm15许可证密钥:YZ380-0WG50-M891Z-9DNQ9-MPA90
到这里虚拟机已安装完成!
关于如何在虚拟机安装Ubuntu16.04?相信人手一个VMware® Workstation 12(或者14) Pro和一个ubuntu16.04镜像,本人电脑安装的虚拟机是14版本的,由于所有已经配置成功就不想重装了,刚好舍友还没装,就帮他装一下,顺便记录这整个安装过程!
上面操作完之后可能由于有些电脑没有开启"虚拟化",如果点击开启此虚拟机后没有弹窗报错的话,那就说明你的电脑已开启虚拟化功能,具体查看方式:任务栏右键--->任务管理器--->性能--->虚拟化。否则将会弹窗提示你进BIOS开启支持一下虚拟化功能,具体百度按照该提示来操作吧,非常简单,这里就不贴图了~
点击"现在重启",按Enter键稍等1、2分钟,显示登录界面,输入密码,显示如下,即安装成功!
注意:不要升级Ubuntu,也没必要,能用就行了!!!
有一个强迫症设置:当挂起客户机并关掉虚拟机后,虚拟机的托盘图标怎么不会消失?问题不大,只需简单的设置:点击编辑--->首选项--->下拉菜单选项:选择当虚拟机开机时,然后点确定,关闭虚拟机后,托盘图标就没了!
另外还有一个非常重要的网络设置:推荐使用NAT模式:用于共享主机IP地址,具体原因自己百度吧~这里只是一个使用教程......如何设置呢?首先挂起当前客户机,然后关机,或者直接关机,然后点编辑虚拟机位置,点击网络适配器,选择NAT模式,点确定,再重新开启此虚拟机即可!这样每次开启或继续运行Ubuntu系统应该会默认与主机共享网络,若没有网络,点击右上角打开链接网络即可。
四、安装VMware Tools,设置窗口自适应、实现与主机复制黏贴功能
首先设置root密码,右键桌面打开终端,输入: sudo passwd root ,设置完成之后输入: su root (切换到root角色),输入密码: root 即可登录成功,当要退出root角色时,只需键入 exit 命令即可退出。
以下都是在root角色下操作,反正是作为个人练习的,没必要每次都sudo...但是到公司上班就很少有这高级权限了,所以好好瞧瞧root有多高级的功能......快乐就vans!删库跑路( rm -rf /* )不要来找我!!!
有些人可能点击安装VMware Tools(T)...之后,出现如下提示,当点击是(Y)之后,打开文件发现里面没啥东西???别慌,我们只需做简单的几步设置即可安装VMware Tools工具:先关闭客户机,然后点击编辑虚拟机位置,选择使用物理驱动器,点确定,开启客户机,再重新来操作一遍即可。
双击进入VMware Tools,右键点击复制文件到桌面,桌面右键打开终端,依次键入命令: ls ---> cd 桌面/ ---> tar -zxvf xxx.gz文件 。这里有一个小技巧:输入文件开头1个或多个字符,按TAB键后将会自动补全文件名,然后按Enter回车即可解压xxx.gz文件。接下来,进入解压目录,键入命令: ./vmware-install.pl ,回车时若有提示[no]则输入 yes ,其他一路直接回车即可。最后输入命令: reboot 重启乌班图,然后设置一下自适应就可以实现窗口自适应、与主机黏贴复制功能了!
五、安装深度学习框架caffe
1、由于本人电脑不支持GPU,故选择CPU安装caffe。具体查看方式:键入命令: lspci | grep -i nvidia ,若按回车之后没有显示任何内容,则证明你的电脑不支持GPU。如果支持,最好就用GPU方式安装吧,自行百度去==!安装caffe之前,不,准确来讲,只要安装好Ubuntu系统之后就得更换一下国内下载源,一般推荐是阿里源,不然当你下载各种依赖时,简直是慢得要命QAQ......下面看操作:注意以下操作都是在root最高权限角色下操作⚠!这样就避免了每次输入命令都要多敲几个字符sudo,还有登录密码.......(重要的建议:不仅仅如此!由于root角色可修改一切文件,而默认创建的用户角色可能没有操作其他用户组中文件的权限,为了简单方便,建议都在root角色下执行把~)(不要学本人,这样习惯不好)
1.1 备份原来的下载源文件:
cp /etc/apt/sources.list /etc/apt/sources_init.list
1.2 使用gedit命令(或vim)打开文档,将下面的阿里源内容覆盖掉原文档中的内容,按ctrl + S保存并关掉文件。
gedit /etc/apt/sources.list 或者 vim /etc/apt/sources.list
1 deb http://mirrors.aliyun.com/ubuntu/ xenial main 2 deb-src http://mirrors.aliyun.com/ubuntu/ xenial main 3 deb http://mirrors.aliyun.com/ubuntu/ xenial-updates main 4 deb-src http://mirrors.aliyun.com/ubuntu/ xenial-updates main 5 deb http://mirrors.aliyun.com/ubuntu/ xenial universe 6 deb-src http://mirrors.aliyun.com/ubuntu/ xenial universe 7 deb http://mirrors.aliyun.com/ubuntu/ xenial-updates universe 8 deb-src http://mirrors.aliyun.com/ubuntu/ xenial-updates universe 9 deb http://mirrors.aliyun.com/ubuntu/ xenial-security main 10 deb-src http://mirrors.aliyun.com/ubuntu/ xenial-security main 11 deb http://mirrors.aliyun.com/ubuntu/ xenial-security universe 12 deb-src http://mirrors.aliyun.com/ubuntu/ xenial-security universe
1.3 然后更新工具源,输入命令: apt-get update ,你将会看到下载得飞快.......b( ̄▽ ̄)d
1.4 更新工具软件:输入命令: apt-get upgrade ,大概2分多钟就更新下载完......
执行完此条命令之后会出现如下图某些包无法下载,根据提示执行命令: apt-get update --fix-missing ,然后重新执行一下上条命令: apt-get upgrade 。大概要等待4、5分钟,更新完之后如下第2张图。
1.5 逐条执行以下命令来安装一些依赖包:
1 apt-get install libprotobuf-dev 2 apt-get install libleveldb-dev 3 apt-get install libsnappy-dev 4 apt-get install libopencv-dev 5 apt-get install libhdf5-serial-dev 6 apt-get install protobuf-compiler 7 apt-get install libgflags-dev 8 apt-get install libgoogle-glog-dev 9 apt-get install liblmdb-dev 10 apt-get install libatlas-base-dev
1.6 安装完上面依赖之后(一般按照我这样操作下来是不会报错的,因为本人包括此次已经第三次安装了,都ok的,放心跟着操作就行了),用git clone指令拉取远程仓库GitHub上的caffe项目,首先安装git包,其次再拉取。拉取耗时稍微有点长(大概5、6分钟),拉取完之后键入ls命令查看当前目录,可以看到caffe文件目录,OK,200!
apt-get install git 、 git clone git://github.com/BVLC/caffe.git
1.7 cd 进入caffe目录,执行命令: cp Makefile.config.example Makefile.config 来备份Makefile.config.example文件,ls查看可以发现多了一个新文件Makefile.config。接下来,修改新文件Makefile.config中的配置,键入命令: gedit Makefile.config 或者 vim Makefile.config ,去掉CPU_ONLY前面的#号注释,使得CPU_ONLY := 1
配置引用文件路径(主要是HDF5的路径问题),找到INCLUDE_DIRS和LIBRARY_DIRS,分别在其后面(空一空格)新增内容 /usr/include/hdf5/serial 和 /usr/lib/x86_64-linux-gnu/hdf5/serial ,然后按ctrl + S 保存并关掉该文件。
1 # Whatever else you find you need goes here.
2 INCLUDE_DIRS := $(PYTHON_INCLUDE) /usr/local/include /usr/include/hdf5/serial
3 LIBRARY_DIRS := $(PYTHON_LIB) /usr/local/lib /usr/lib /usr/lib/x86_64-linux-gnu/hdf5/serial
1.8 依次执行命令进行编译: make all 、 make test 、 make runtest ,但是执行命令make all时出现如下错误?不要慌,解决方案是执行这条命令下载对应的依赖: apt-get install --no-install-recommends libboost-all-dev ,下载完之后记得再次执行 make all 命令,又是一个稍微漫长的等待过程......
继续执行 make test 命令,继续等待.....
经过漫长的等待,终于来到了编译的最后一步:跑测试。执行 make runtest 命令后,你将会看到很多绿色的RUN OK,没错,这波操作真让人感到舒服~ε=ε=ε=(~ ̄▽ ̄)~
当你看到PASSED 1162 tests则表示成功进行所有测试。注意:如果执行结果失败,则需要执行语句 make clean ,然后解决掉问题再重新编译。
六、编译python接口
1.1 caffe具有Python和C++接口,我们常用Python接口来编写代码,以下将展示如何编译Python接口。
1.2 Ubuntu16.04默认安装的是python2.7,没有pip指令包,所以需要先安装pip,根据提示键入命令: apt install python-pip ,安装完如下第2张图所示。
1.3 在caffe根目录下,有个python文件夹,文件夹里面有个requirements.txt文件,里面有需要的依赖库和版本信息,按照其安装即可。在安装前,需要先安装fortran编辑器(gfrotran),因为安装scipy库时需要它,执行命令: apt-get install gfortran 。前面可能已经下载并更新过了,所以这里的执行并不起作用~
cd 进入 python文件目录,这里先更新一下pip源,键入命令: pip install --upgrade pip
然后需要修改一下/usr/bin/pip文件,不然执行requirements.txt文件中下载python模块的命令时会出现错误,键入命令: gedit /usr/bin/pip 或者 vim /usr/bin/pip ,将文件中的 from pip import main 修改为 from pip._internal import main ,按ctrl + S 保存并关闭文件。接着执行命令: gedit requirements.txt 或者 vim requirements.txt 打开requirements.txt文件,将 python-dateutil>=1.4,<2 修改为 python-dateutil ,也就是去掉要求下载的版本号,然后按ctrl + S保存并关闭文件。继续执行命令(注意当前路径下必须有requirements.txt文件): for req in $(cat requirements.txt); do pip install $req; done 其会依次下载requirements.txt文件中的每一个python模块。于是,又进入了漫长的等待过程......其中黄色内容只是提示Python 2.7将于2020年1月1日到期,不是报错,别慌!python2也快走到头了,且行且珍惜吧!目前是2019年9月23日,够学习caffe基础了233~
足足花了40分钟,校园网真是给力......滚动鼠标滑轮查看是否有出现红色报错,我这里是没有的!接下来,键入命令: pip install -r requirements.txt 验证是否安装成功,若安装成功的,都会显示Requirement already satisfied,反之会继续进行安装python模块。
1.4 将caffe根目录下的python文件所在路径加入到全局环境变量,键入命令: gedit ~/.bashrc 或者 vim ~/.bashrc 打开bashrc文件,在文件的最后面添加一条语句 export PYTHONPATH=/home/你的登录名/caffe/python:$PYTHONPATH 。注意:这里将caffe安装在/home/sam/路径下,前面的内容可以使用 pwd 指令查看当前路径,copy替换即可!保存并关闭文件,键入命令: source ~/.bashrc 文件设置立即生效!
1.5 最后一步:编译python接口。这里需要先修改一下配置文件,键入命令: gedit Makefile.config 或者 vim Makefile.config ,找到文件中的PYTHON_INCLUDE,将 /usr/lib/python2.7/dist-packages/numpy/core/include 修改为 /usr/local/lib/python2.7/dist-packages/numpy/core/include ,即添加/local,保存并关闭文件。然后执行命令: make pycaffe ,输出为 PROTOC (python) src/caffe/proto/caffe.proto ,则表示编译python接口成功。
1.6 验证python接口,进入python环境,引入caffe模块,如果没有报错则安装成功!使用 dir() 函数查看当前模块的属性列表,从图中可看到caffe模块被导入。至此,caffe安装成功!完结撒花!最后要记住:因为整个过程都是在root角色下执行的,即所有安装文件或python模块等的用户组都是root,而Ubuntu系统默认创建的用户例如sam不是和root同一个用户组,这样sam用户就可能没有权限执行一些文件,又是在自己的电脑上练习,故每次登录就su切换到root角色下使用python接口编码吧!
大家慢慢食用~
如果你安装成功了,希望点一下右下角的推荐👍或者在评论区留言安装成功了,让我看看有多少人安装成功了,谢谢o(* ̄▽ ̄*)o!