Caffe已经是第三次安装配置了,为什么是第三次呢?因为我实在是低估了深度学习对于硬件的要求。第一次我在自己笔记本上配置的单核,CPU only ... 结果是,样例数据跑了4小时,这还怎么玩?第二次在台式机上,因为台式机比较low,I5处理器4核,没有NVIDIA的GPU。我把别人训练好的模型下载下来,然后自己测试,发现真的成功了,心里小激动~ 然而,当我自己训练模型时,我训练7天..... 关键是7天了还在跑.....
心想,我这个穷逼难道要自己掏钱买个服务器?那怎么可能。还好,老师人非常好,给我找了个服务器~ 现在终于是劳资大显身手的时候了。
整个配置过程很长啊,坑多,没有linux基础的就别来了,你会崩溃的。我参考了好几个帖子,基本上每个帖子都有或多或少的问题,文章结尾的时候,我会留下前辈们的文章地址,算是对他们的尊敬和对我帮助的感谢。好,下面切入正题!
电脑配置:
系统:Ubuntu16.04 GPU:NVIDIA Corporation GM107GL [Quadro K620] (提示:在linux下可以通过lspci | grep -i vga查看)Caffe 深度学习入门教程 http://www.linuxidc.com/Linux/2016-11/136774.htm
Ubuntu 16.04下Matlab2014a+Anaconda2+OpenCV3.1+Caffe安装 http://www.linuxidc.com/Linux/2016-07/132860.htm
Ubuntu 16.04系统下CUDA7.5配置Caffe教程 http://www.linuxidc.com/Linux/2016-07/132859.htm
Caffe在Ubuntu 14.04 64bit 下的安装 http://www.linuxidc.com/Linux/2015-07/120449.htm
深度学习框架Caffe在Ubuntu下编译安装 http://www.linuxidc.com/Linux/2016-07/133225.htm
Caffe + Ubuntu 14.04 64bit + CUDA 6.5 配置说明 http://www.linuxidc.com/Linux/2015-04/116444.htm
Ubuntu 16.04上安装Caffe http://www.linuxidc.com/Linux/2016-08/134585.htm
Caffe配置简明教程 ( Ubuntu 14.04 / CUDA 7.5 / cuDNN 5.1 / OpenCV 3.1 ) http://www.linuxidc.com/Linux/2016-09/135016.htm
Ubuntu 16.04上安装Caffe(CPU only) http://www.linuxidc.com/Linux/2016-09/135034.htm
安装过程
1.安装相关依赖项
1 sudo apt-get install libprotobuf-dev libleveldb-dev libsnappy-dev libopencv-dev libhdf5-serial-dev protobuf-compiler2 sudo apt-get install --no-install-recommends libboost-all-dev
3 sudo apt-get install libopenblas-dev liblapack-dev libatlas-base-dev
4 sudo apt-get install libgflags-dev libgoogle-glog-dev liblmdb-dev
2.安装NVIDIA驱动
(1)查询NVIDIA驱动
首先去官网http://www.nvidia.com/Download/index.aspx?lang=en-us查看适合自己显卡的驱动并下载:
驱动文件后缀名应当是以.run结尾的。我们要把这个文件移动到家目录下,原因是下面我们要切换到文字界面下,如果放到~/下载 下面,我们没有办法进入下载这个目录(没有中文输入法,且中文全部是乱码)


图1 输入显卡型号 图2 显卡驱动搜索结果
我的显卡型号是Quadro K620,系统是linux 64位,按照要求选择后点击search. 图2是搜索结果,点击下载就好了。
我下载后的驱动文件是:NVIDIA-Linux-x86_64-375.20.run
(2)安装驱动
在终端下输入:sudo gedit /etc/modprobe.d/blacklist.conf
输入密码后在最后一行加上blacklist nouveau. 这里是将Ubuntu自带的显卡驱动加入黑名单。
在终端输入:sudo update-initramfs -u
重启电脑~这里要尤其注意,安装显卡驱动要先切换到文字界面,(按Ctrl+Alt+F1~F6).所以,启动电脑后,先进入文字界面。
然后,输入命令sudo service lightdm stop
现在可以安装驱动了,先进入家目录cd ~,然后:sudo ./NVIDIA-Linux-x86_64-375.20.run,按照提示一步步来~
完成后,再次重启电脑。
安装完成之后输入以下指令进行验证:sudo nvidia-smi,若列出了GPU的信息列表则表示驱动安装成功。如下图:

3.安装CUDA
CUDA是NVIDIA的编程语言平台,想使用GPU就必须要使用cuda。
(1)下载CUDA
首先在官网上(https://developer.nvidia.com/cuda-downloads)下载CUDA:

(2)下载完成后执行以下命令:
1 sudo chmod 777 cuda_8.0.44_linux.run2 sudo ./cuda_8.0.44_linux.run
注意:执行后会有一系列提示让你确认,但是注意,有个让你选择是否安装nvidia367驱动时,一定要选择否:
Install NVIDIA Accelerated Graphics Driver for Linux-x86_64 367.48?
因为前面我们已经安装了更加新的nvidia367,所以这里不要选择安装。其余的都直接默认或者选择是即可。
(3)环境变量配置
打开~/.bashrc文件:sudo gedit ~/.bashrc将以下内容写入到~/.bashrc尾部:
1 export PATH=/usr/local/cuda-8.0/bin${PATH:+:${PATH}}
2 export LD_LIBRARY_PATH=/usr/local/cuda8.0/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}
(4)测试CUDA的samples
1 cd /usr/local/cuda-8.0/samples/1_Utilities/deviceQuery2 make
3 sudo ./deviceQuery
如果显示一些关于GPU的信息,则说明安装成功。

4.配置cuDNN
cuDNN是GPU加速计算深层神经网络的库。
首先去官网https://developer.nvidia.com/rdp/cudnn-download下载cuDNN,需要注册一个账号才能下载。下载版本号如下图:

下载cuDNN5.1之后进行解压:
sudo tar -zxvf ./cudnn-8.0-linux-x64-v5.1.tgz进入cuDNN5.1解压之后的include目录,在命令行进行如下操作:
cd cuda/includesudo cp cudnn.h /usr/local/cuda/include #复制头文件
再将进入lib64目录下的动态文件进行复制和链接:
cd ..cd lib64
sudo cp lib* /usr/local/cuda/lib64/ #复制动态链接库
cd /usr/local/cuda/lib64/
sudo rm -rf libcudnn.so libcudnn.so.5 #删除原有动态文件
sudo ln -s libcudnn.so.5.0.5 libcudnn.so.5 #生成软衔接
sudo ln -s libcudnn.so.5 libcudnn.so #生成软链接
5.安装opencv3.1
从官网(http://opencv.org/downloads.html)下载Opencv,并将其解压到你要安装的位置,假设解压到了/home/opencv。
1 unzip opencv-3.1.0.zip
2 sudo cp ./opencv-3.1.0 /home
3 sudo mv opencv-3.1.0 opencv
安装前准备,创建编译文件夹:
cd ~/opencvmkdir build
cd build
配置:
1 sudo apt install cmake2 sudo cmake -D CMAKE_BUILD_TYPE=Release -D CMAKE_INSTALL_PREFIX=/usr/local ..
编译:
sudo make -j8-j8表示并行计算,根据自己电脑的配置进行设置,配置比较低的电脑可以将数字改小或不使用,直接输make。
可能出现问题:

这是因为opecv3.0与cuda8.0不兼容导致的。解决办法:修改 ~/opencv/modules/cudalegacy/src/graphcuts.cpp文件内容,如图:

其中,#if !defined (HAVE_CUDA) || defined (CUDA_DISABLER)||(CUDART_VERSION>=8000) 是我们修改的。
以上只是将opencv编译成功,还没将opencv安装,需要运行下面指令进行安装:
sudo make install
更多详情见请继续阅读下一页的精彩内容: http://www.linuxidc.com/Linux/2016-12/138870p2.htm
