因为要做毕设,所以就装了一下caffe。
我是用笔记本装的caffe。在安装过程中,我发现了很多问题,参考各类中文网站始终没有解决。现在安装成功了,自然要记录一下安装过程中到底有哪些坑,以免后来人再犯。(笔记本电脑装caffe是个大坑…)
先介绍一下硬件设备:
- 电脑是Lenovo Y50
- 处理器是Intel® Core™ i7-4710HQ CPU @ 2.50GHz × 8
- i7GTX860m的显卡
安装的软件为:
- OS: Ubuntu14.04.5
- NVIDIA 驱动 367.57
- CUDA8.0.44
- Cudnn5.1
- BLAS: MKL
- MATLAB 2014a
- Anaconda(python2.7版)
- OpenCV 2.4.13
下面我就来一一讲解如何安装上述软件。
操作系统Ubuntu14.04.5的安装
为什么要选择Ubuntu14.04?
这是由gcc编译器版本所决定的。
我们可以看到Ubuntu14.04.5的Linux内核为4.4.0,gcc编译器版本为4.8.4。由于我们要使用GPU版的caffe,我们需要安装CUDA,但是CUDA支持的gcc编译器版本必须在5.0以下,如果高于5.0,使用CUDA编译就会报错。而Ubuntu16.04的gcc版本是高于5.0的,如果不对Ubuntu16.04的gcc降版本的话,理论上Ubuntu16.04是不支持CUDA的。也就是说Ubuntu16.06是不支持GPU版的caffe的。作为初次使用caffe的人,没有必要瞎折腾改gcc版本,因为改gcc版本很有可能导致其他软件无法正常使用。所以,Ubuntu14.04是最适合我们使用的。
如何安装Ubuntu14.04.5?
在windows操作系统下,划分出一块空磁盘区
- 进入文件管理系统,右键我的电脑–>管理
- 进入磁盘管理选项
- 在有空余空间的磁盘中,划分出一块磁盘区。我划了300多G空间。
制作启动盘
- 在官网上下载对应镜像文件
- 安装刻录软件UltraISO
- 准备一个U盘,并将其格式化
- 运行UltraISO,加载Ubuntu镜像,点击 –>写入硬盘。
U盘安装Ubuntu
- 开机时按F12进入U盘启动模式
- 使用键盘方向键选择Install Ubuntu选项
挂载分区
我在安装Ubuntu的时候,主要挂载了4个区域。- /boot 500M
- swap 8G
- / 100G
- /home200G
如果你有很大的磁盘空间,把多的空间给根目录或者用户主目录就可以了。
安装注意事项
- 因为我是用笔记本电脑装的双系统,所以在分区的时候选择的都是primary partition(主分区)
- 安装过程中最好不要联网,容易死机。(亲测死机过一次)
- 安装的过程中,有一个选项问装不装3-rd party的一些程序,最好勾选并安装。
- 最好设置一个密码,因为在装NVIDIA驱动的时候,有一个BUG。如果不设密码,有可能出现一个身份认证的一个bug,这个bug会导致循环登录。
安装NVIDIA驱动
这一步是最恶心的。
因为NVIDIA在Linux上的驱动做的真的是太烂了。我重装无数次系统,就是因为这个NVIDIA驱动搞不定。可能是因为我在笔记本电脑上装驱动吧?我不知到在台式机上会不会有这些毛病,但从网上的帖子来看,问题应该是不少的。废话不说了,下面来看看我安装的过程中出现的问题和如何安装的吧。
- 安装过程
这个时候我们应该有一个刚刚安装好的Ubuntu14.04.5的操作系统。
- 首先,点击system setting,进入下图所示的菜单。
- 点击software & updates
把Download from改成Main server,然后点击close。
这个时候,系统会问你要不要reload,点击reload等待加载完毕即可。 - 再次进入system setting,点击Details
因为我已经安装好了,这个时候Graphics看到的是GeForce GTX 860M/PCIe/SSE2
如果你没有安装NVIDIA驱动,这个时候看到的应该是独显的信息。
当然,这个时候你的右下角按钮显示的也不是System Up-To-Date。点击更新按钮,更新一下系统文件。然后重启。 - 上一步的重启完成之后,点击system setting – >software & updates – > addtional drivers 。然后点击Using NVIDIA binary driver -version 367.57,再点击右下角Apply Changes。
之后就是等待,等安装完成后重启电脑。如果安装正常,就可以在System Detail中看到如下界面了(Graphics 变成了)。
运行nvidia-smi可以看到更详细的信息。
到此,NVIDIA驱动安装完毕。 - 遇到的问题
- 如果不更新软件源,就找不到NVIDIA驱动
- 如果不更新系统,就无法成功安装NVIDIA驱动。会遇到黑屏问题。输入密码的登录界面黑屏,只能切换到其他字符界面terminal进行操作,卸载驱动后又可以正常进入图形界面。注意:有的blog的博主写,不能更新系统软件,如果更新了就会安装失败。在这里我跟他的情况恰恰相反。
- 只有即更新了系统,又更新了软件源,才能正确的安装。
- 使用run文件安装,也会出现黑屏问题,甚至出现了循环登录
这里我参考了blog,先把nouveau加入黑名单,关掉图形界面在字符界面安装,然而在笔记本电脑上并不能安装成功。感兴趣的读者可以试一试,到底能否安装成功?链接如下:
ubuntu14.04+cuda8.0(GTX1080)+caffe安装
- 首先,点击system setting,进入下图所示的菜单。
- 安装过程
安装CUDA8.0
成功安装NVIDIA驱动之后,剩下的安装就很简单了。
在官网上下载CUDA,我下的是cuda_8.0.44_linux.run文件,1.5G。cuda官网地址
用terminal进入CUDA所在文件夹,然后执行sudo chmod a+rx <cuda文件名>
更改权限。然后sudo sh <cuda文件名>
运行run文件。Do you accept the previously read EULA? accept/decline/quit: accept //键盘输入accept表示接受协议 Install NVIDIA Accelerated Graphics Driver for Linux-x86_64 361.62? (y)es/(n)o/(q)uit: n //n表示不安装cuda里的NVIDIA驱动,因为我们已经自己安装过了。 Install the CUDA 8.0 Toolkit? (y)es/(n)o/(q)uit: y //下面三个问题都输入y,表示安装对应模块 Enter Toolkit Location [ default is /usr/local/cuda-8.0 ]: Do you want to install a symbolic link at /usr/local/cuda? (y)es/(n)o/(q)uit: y Install the CUDA 8.0 Samples? (y)es/(n)o/(q)uit: y Enter CUDA Samples Location [ default is /home/zhou ]: Installing the CUDA Toolkit in /usr/local/cuda-8.0 …
安装之后会显示如下信息:
Installing the CUDA Toolkit in /usr/local/cuda-8.0 ... Missing recommended library: libGLU.so Missing recommended library: libX11.so Missing recommended library: libXi.so Missing recommended library: libXmu.so Installing the CUDA Samples in /home/anranzhou ... Copying samples to /home/anranzhou/NVIDIA_CUDA-8.0_Samples now... Finished copying samples. =========== = Summary = =========== Driver: Not Selected Toolkit: Installed in /usr/local/cuda-8.0 Samples: Installed in /home/anranzhou, but missing recommended libraries Please make sure that - PATH includes /usr/local/cuda-8.0/bin - LD_LIBRARY_PATH includes /usr/local/cuda-8.0/lib64, or, add /usr/local/cuda-8.0/lib64 to /etc/ld.so.conf and run ldconfig as root To uninstall the CUDA Toolkit, run the uninstall script in /usr/local/cuda-8.0/bin Please see CUDA_Installation_Guide_Linux.pdf in /usr/local/cuda-8.0/doc/pdf for detailed information on setting up CUDA. ***WARNING: Incomplete installation! This installation did not install the CUDA Driver. A driver of version at least 361.00 is required for CUDA 8.0 functionality to work. To install the driver using this installer, run the following command, replacing <CudaInstaller> with the name of this run file: sudo <CudaInstaller>.run -silent -driver Logfile is /tmp/cuda_install_3347.log
上述信息表明:
缺少一些库文件
我们可以通过执行一下命令来安装:sudo apt-get install freeglut3-dev build-essential libx11-dev libxmu-dev libxi-dev
还有一些依赖库,比如
libgl1-mesa-glx libglu1-mesa libglu1-mesa-dev
系统已经安装了最新的版本,我们就不需要再去安装了,如果你发现自己的Ubuntu里面没有,那就装一下。CUDA的路径需要添加到系统路径
export PATH=/usr/local/cuda-8.0/bin:$PATH export LD_LIBRARY_PATH=/usr/local/cuda-8.0/lib64:$LD_LIBRARY_PATH //然后修改文件中环境变量设置 sudo vi /etc/profile //输入上面export的两句,保存,退出。 sudo ldconfig //环境变量立即生效
我们来验证一下,NVIDIA驱动和CUDA是否已经安装成功
测试cuda的samples
cd 到NVIDIA_CUDA-8.0_Samples,然后make
make 前:
make 后: 多了一个bin文件,里面有可运行的程序
测试eigenvalue:
测试simpleAssert:
最后看看deviceQuery,执行这个命令可以输出当前系统信息,最后一行输出pass代表成功。
说明CUDA的确安装成功了!
安装cudnn
我使用的版本是Cudnn v5.1,是从官网下载的cudnn-8.0-linux-x64-v5.1.tgz。cudnn官网地址
安装Cudnn比较简单,解压文件,然后将文件copy到指定目录下,最后给文件添加读权限即可。tar -zxvf cudnn-8.0-linux-x64-v5.1.tgz //解压Cudnn压缩文件,得到文件夹cuda
我们可以看看cuda目录下面有什么
接下来把include目录下面的cudnn.h移动到/usr/local/cuda/include/目录下
把lib64目录下的文件移动到/usr/local/cuda/lib64/目录下sudo cp cuda/include/cudnn.h /usr/local/cuda/include/ sudo cp cuda/lib64/libcudnn* /usr/local/cuda/lib64/
再更改cudnn文件的权限,让所有用户都可读
sudo chmod a+r /usr/local/cuda/include/cudnn.h sudo chmod a+r /usr/local/cuda/lib64/libcudnn*
这样就安装好了cudnn,当我们需要使用cudnn时,只需要在caffe的makefile文件中uncomment cudnn的部分就行了。
BLAS线性代数基础库–MKL的安装
我们知道,caffe常用的三种线性代数库,分别为:ATLAS(caffe默认的),MKL(intel开发的)和OpenBlas。
我们这里安装Intel的MKL。MKL官网链接注册一个账号,可以申请免费使用MKL。
我们这里下载的MKL为,l_mkl_2017.0.098.tgz。打开终端,解压文件后进入目录l_mkl_2017.0.098,然后切换到root权限,运行install_GUI.sh。之后如下图所示:
accept and next
然后输入你申请的serial number,激活MKL
然后进入下图所示页面,同意加入计划,毕竟别人开发的产品免费给你用了,就当是回馈Intel社区了。
然后next,install。进入安装进度条页面,安装完成,finish!
之后跳出来一个网页,上面介绍了MKL的一些详细信息//安装完成后进行相关文件链接 sudo gedit /etc/ld.so.conf.d/intel_mkl.conf //在打开的文件中添加库文件 /opt/intel/lib/intel64 /opt/intel/mkl/lib/intel64 //添加完成后编译生效 sudo ldconfig
至此,MKL的安装全部结束。
Anaconda(python2.7版)的安装
caffe有python接口。
这里我安装的是anaconda(python 2.7版),因为很多包anaconda已经自带了,不需要额外去安装。所以比Ubuntu系统自带的python2.7要好用一点。
anaconda 官网
我下载下来的是Anaconda2-4.3.0-Linux-x86_64.sh。进入终端,运行改文件进入安装。
接下来按照提示安装即可。
最后,安装软件提示你要不要把Anaconda的路径写到文件~/.bashrc中,此时默认是no,我们输入yes敲入回车即可。
如果没有将路径写.bashrc,那么执行一下语句:sudo gedit ~/.bashrc //打开文件.bashrc //把以下两句命令写入.bashrc ,然后保存退出 gedit export PATH="/home/anranzhou/anaconda2/bin:$PATH" export LD_LIBRARY_PATH="/home/anranzhou/anaconda2/lib:$LD_LIBRARY_PATH"
这样我们就安装好了Anaconda了。在命令行输入
ipython
可以看到当前python版本。MATLAB2014a的安装
先在网上下载MATLAB2014a的安装文件,这里推荐下载压缩文件而不是iso文件。因为iso文件在copy的时候很容易损坏,一旦损坏就前功尽弃了。百度云盘链接 提取码:nvb6- 下载完成后我们解压文件到当前目录。
- 将iso文件挂载到Linux,进行安装,安装路径:/usr/local/MATLAB/R2014a
sudo mkdir /media/matlab mount -o loop [path][filename].iso /media/matlab cd /media/matlab sudo ./install
接下来就进入了图形安装界面:
- 不使用Internet安装
- 序列号填:12345-67890-09876-54321
- 默认路径:/usr/local/MATLAB/R2014a
- 勾选从默认启动路径创建符号链接(实现在任意位置运行matlab启动程序)
- 点击Install,然后进入安装进度条页面
- 进度条滚动完后,进入激活界面。选择离线激活模式,选择crack文件夹下的license_405329_R2014a.lic文件进行激活。
- 破解。将crack文件夹下的libmwservices.so 复制到/usr/local/MATLAB/R2014A/bin/glnxa64
cd ~/matlab2014/Crack/Linux/ //进入放有破解文件的目录下 sudo cp libmwservices.so /usr/local/MATLAB/R2014a/bin/glnxa64/
至此,MATLAB就以安装完毕了。
我们可以打开终端,输入sudo matlab
在任意位置启动MATLAB。- 下载完成后我们解压文件到当前目录。
OpenCV 2.4.13的安装
首先打开终端,在安装opencv前要先安装一些packages
sudo apt-get install build-essential //compiler sudo apt-get install cmake git libgtk2.0-dev pkg-config libavcodec-dev libavformat-dev libswscale-dev //required sudo apt-get install python-dev python-numpy libtbb2 libtbb-dev libjpeg-dev libpng-dev libtiff-dev libjasper-dev libdc1394-22-dev //optional
在OpenCV官网下载安装包,这里我下载的版本是2.4.13
- 解压文件到~/opencv目录下
- 在~/opencv目录下新建目录 release,cd到release目录下。
- 执行
cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local ..
- cmake完成后,执行命令
make -j16
。 - make完成后,执行命令
sudo make install
如果上述步骤全部成功执行,则OpenCV安装成功。
下面我们来测试一下OpenCV的功能。
首先回到放有OpenCV源码的目录,我的是~/opencv/
- 执行命令
cd samples/c/
进入测试目录下 然后执行
./build_all.sh
,编译当前目录下,所有的samples最后执行
./facedetect --cascade="/usr/local/share/OpenCV/haarcascades/haarcascade_frontalface_alt.xml" --scale=1.5 lena.jpg
如果成功显示图像,则说明OpenCV2.4.13安装成功。
- 执行命令
到此所有caffe需要的软件我们都已安装完毕。