在Ubuntu 14.04 上安装Caffe碰到的问题

具体的安装过程可以参考 官网的Installation,以及网友分享的一些安装教程,教程一教程二教程三

我在这里主要记录下我在安装的过程中碰到的一些问题,以及解决方法(部分网上没有提到),而不是整个安装的流程。由于自己是linux小白,安装caffe花了好几天时间,期间好几次想放弃,还好我坚持下来了,写这篇博客只是希望网友如果也遇到这样的问题,可以从我这里找到答案。


一、试验环境

Ubuntu14.04

CUDA6.5
GTX 760


二、CUDA安装

CUDA安装可以参考官网的NVIDIA CUDA Getting Started Guide for Linux

安装共有两种方法:deb文件安装    run文件安装
我选择 deb文件安装,这种方法安装简单,但网上说不稳定,可我现在用用还好!
Install repository meta-data
Note: When using a proxy server with aptitude, ensure that wget is set up to use the same proxy settings before installing the cuda-repo package. 

$ sudo dpkg -i cuda-repo-<distro>_<version>_<architecture>.deb
Update the Apt repository cache
$ sudo apt-get update
Install CUDA
$ sudo apt-get install cuda

Note:
执行了这三步之后,在配好环境,一直无法通过测试程序,提示没有匹配的显卡,试了很多方法都不行,最后看到说可能是因为Cuda内置的驱动不太完整,或者适应性差了一点,然后决定下载GTX 760驱动,重新进行安装。


三、GTX 760驱动安装(参考网上)

安装驱动,需要注意的是退出GUI,然后关闭Nouveau开源的显卡驱动,因为会影响nVidia驱动的安装。

一、退出GUI(X-Win界面),操作方法:同时按:CTRL+ALT+F1(F2-F6),切换到TTY1-6命令行模式。

二、关闭Nouveau开源的显卡驱动,操作方法:

1. 将nouveau添加到黑名单,防止它启动
$ cd /etc/modprobe.d
$ sudo vi nvidia-graphics-drivers.conf
 写入:blacklist nouveau
保存并退出: wq!
检查:$ cat nvidia-graphics-drivers.conf
 
2. 对于:/etc/default/grub,添加到末尾。
$ sudo vi /etc/default/grub
末尾写入:rdblacklist=nouveau nouveau.modeset=0
保存并退出: wq!
检查:$ cat /etc/default/grub
 
3. 官网提供的操作:
$ sudo mv /boot/initramfs-$(uname -r).img /boot/initramfs-$(uname -r)-nouveau.img
然后重新生成initrd文件
$ sudo dracut /boot/initramfs-$(uname -r).img $(uname -r)
$ sudo update-initramfs -u  
上面那条是nVidia官方提供的命令,不知道为什么在我这里会提示dracut是不存在的命令,也许是版本问题,或者少了什么包,不过无所谓,第二条命令也可以搞定,应该是一样的功能。(如果我理解错误,欢迎小朋友们指教,我会改正)

现在在进行测试(./deviceQuery),可以顺利输出显卡的一些信息。


四、依赖包安装

我碰到的问题是想安装了gflags,然后再安装glog的时候就报错,无法安装成功。

官网的提示:
Note that glog does not compile with the most recent gflags version (2.1), so before that is resolved you will need to build with glog first.

只是这个提示写在了安装指令的后面,我看到的时候已经晚了,之所以会先安装gflags,是因为glog在wget的时候提示网络无法链接,貌似需要翻墙,我最后是从window上进行下载,然后在copy到linux上面,这个过程不容易啊。

如何卸载 gflags?
网上看到说用apt-get remove gflags,但在我的电脑上不行。由于我以前都怎么玩过linux,感觉卸载软件没window方便,最后我是进入到了gflags的根目录,执行make clean,然后把整个安装文件删除。此时,我再重新安装glog的时候就安装成功了。


五、Caffe的根目录

这是一个比较的肯爹的过程,我现在自己想想觉得自己好傻。
网上这样写的“所有环境的配置好之后, 进入caffe根目录”,可是我一直找不到caffe的根目录在哪里,最后还是在qq群里提问得到了答案,回答我的那个网友一定觉得我很傻,但还是很感谢他的。
原因是因为我自己压根就没有下载caffe的包,所以不管怎么找肯定是找不到的拉,下载地址。 


六、依然是gflags

环境都配置好之后,就开始进行make了,在执行make all的时候,又出现的有关gflags的问题,提示和...gflags...o文件(具体名字忘了,因为博客是在安转完之后写的,而且期间也没有截图)冲突了,说明之前卸载的还不干净。我就根据错误提示,找到找的位置,强制把他删除了。我这样作会不会太暴力了,但幸运的是,这样make all就通过了。


七、Boost安装

接下来顺利执行了make all,make test,以为make runtest也可以顺利通过了,然后就可以收拾下回寝室回家了,可是可是,它还是错了。
错误提示:

[ PASSED ] 832 tests.
[ FAILED ] 6 tests, listed below:
[ FAILED ] PowerLayerTest/0.TestPowerGradientShiftZero, where TypeParam = caffe::FloatCPU
[ FAILED ] PowerLayerTest/1.TestPowerGradientShiftZero, where TypeParam = caffe::DoubleCPU
[ FAILED ] PowerLayerTest/1.TestPowerGradient, where TypeParam = caffe::DoubleCPU
[ FAILED ] PowerLayerTest/2.TestPowerGradientShiftZero, where TypeParam = caffe::FloatGPU
[ FAILED ] PowerLayerTest/3.TestPowerGradientShiftZero, where TypeParam = caffe::DoubleGPU
[ FAILED ] PowerLayerTest/3.TestPowerGradient, where TypeParam = caffe::DoubleGPU

我这里是支持GPU的,如果尽支持CPU的话,只会报三个错误。
还好我在github上找到了解决方法,但是当我看到原因的时候,觉个这个这个。。。。。。。
I‘ve faced same problem and I‘ve solved it.
I tried to uninstall Boost 1.56 and install Boost 1.55, then reinstall caffe, all tests passed! (with openblas)

我装的是最新的Boost 1.57,最后我卸载之后,换成Boost 1.55时,错误也没了(官网上写的是“Boost (>= 1.55, although only 1.55 and 1.56 are tested)”既然1.56和1.57不兼容的话,就可以写明装1.55,这样可以省去很多麻烦)。此时,已经12点多了,回去睡觉了。


八、小结

其实,作为linux小白,在整个过程中遇到的问题不止这些,还有配置环境变量等很多的问题,但是一般都是可以根据提示解决的,我在这就不写了。虽然,这个安装过程很艰辛,但听说Caffe用起来非常的方便,好了,让我好好来感受下Caffe的魅力吧。



郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。