ubuntu16.04 caffe再安装—从nvidia显卡安装的循环登陆界面说起。

来源:互联网 发布:seo任务优化网站排名 编辑:程序博客网 时间:2024/06/05 05:18

        最近学习深度学习的内容,做行人检测。于是在ubuntu16.04 kylin版本安装了caffe +cuda8+cudnn+matlab+opencv,虽然每一次登陆图形界面都会报错,发送错误报告什么的,但是关掉就可以正常使用。跑完手写体识别mnist的卷积神经网络的学习后,想用matlab接口调用caffe,但是,在这过程中不知道动了什么配置,再登陆ubuntu后就出现了无限循环登陆界面的问题。大概记得错误是can not connect to x service ? 一开始不知道,后来发现应该就是和ubuntu图形界面显示有关,就是说显卡出问题了

        查阅网上各种博客论坛,在Ctrl+Alt+F1的命令行界面编译了半天,始终没用解决办法。

(其实按照我后来的了解,我觉得卸载nvida驱动,恢复ubuntu自带的驱动应该就好用,可以先试试)

                         apt-get autoremove --purge nvidia-*                      //卸载nvidia驱动

                   vim /etc/modprobe.d/blacklist.conf                  删除nouveau         //把nouveau从黑名单删除。

    如果不行,想恢复nouveau驱动,详细     参考:http://blog.csdn.net/caspiansea/article/details/419


    但是这种方法我并没有解决重复登陆界面的问题,于是重装了ubuntu系统,按照这篇博客

                            http://www.linuxidc.com/Linux/2016-07/132860.htm  //装 caffe 参考1 

一步步来,看着电视剧等安装结束,安装完显卡,理所当然重新启动,结果。。。再一次循环登陆界面。  于是再次重装系统,这次看着他安装。发现安装nvidia的时候,会出现 unable build xxx kernel (好想说的是无法在xx内核上建立)的错误。 装完后重启就无限登陆界面循环。网上一查 下面这篇博客讲的就是解决显卡安装循环登陆界面的问题,但是不适合我。

                            http://www.linuxdiyf.com/linux/26370.html  //nvidia显卡安装,循环登陆界面解决办法1 

1.cuda+nvidia显卡驱动+cudnn的安装

再次重装系统,尝试从官网下载 http://www.geforce.cn/drivers  对应显卡驱动linux,在命令行界面安装 或者 用cuda安装自带的显卡驱动,都会出现无法建立的问题,然后循环登陆界面。经过无限次的重装,最后在下面这篇博客上找到办法。

                            http://blog.csdn.net/enjoyyl/article/details/47397505?     // 安装显卡驱动+cuda 的解决办法。

              就是说安装显卡驱动前要安装依赖包

                     

sudo apt-get install -y gcc g++ gfortran build-essential \  

git wgetlinux-image-generic libopenblas-dev python-dev \  

python-pip python-nose python-numpy python-scipy

                    代码是copy的,加粗部分应该是比较关键点,其它感觉是安装caffe时候的依赖包。 接着,再安装nvidia显卡驱动就应该成功了,不会出现循环登陆的问题。

                            ( 从cuda官网上下载了cuda8 .deb包,直接安装,了cuda8,附带显卡驱动,没有用官网下的nvidia显卡驱动,亲测成功,如果是.run包,安装见下面cudnn的安装参考博客)

 

                    至于cudnn的安装,比较简单 

                        http://blog.csdn.net/zbzb1000/article/details/52864131   //装 caffe 参考2 

                 不过,这篇博客中有很多依赖包的空格都没打,直接copy代码会错。

        

2.matlab+opencv

            ubuntu下 matlab安装网上教程很多,直接网上搜把,感觉比windows下快很多。

   

             opencv的安装,参考

                http://blog.csdn.net/jhszh418762259/article/details/52957495  

             特别注意,依赖包一定要先装上

               我装的opencv3.1,参照上面的博客,再make 编译大概进度90%的时候遇到了问题

               /home/usrname/opencv-3.1.0/modules/cudalegacy/src/graphcuts.cpp:120:54: error: 'NppiGraphcutState' has not been declared typedef NppStatus (*init_func_t)(NppiSize oSize, NppiGraphcutState** ppStat   

                   参考

                               http://blog.csdn.net/hit2015spring/article/details/53510909          /opencv 出错参考

进入opencv-3.1.0/modules/cudalegacy/src/目录,修改graphcuts.cpp文件,将:

#include "precomp.hpp"

#if !defined (HAVE_CUDA) || defined (CUDA_DISABLER)

改为

#include "precomp.hpp"

#if !defined (HAVE_CUDA) || defined (CUDA_DISABLER) || (CUDART_VERSION >= 8000)

然后make编译就可以了


 3. caffe 的安装    

                caffe的安装,参考一些这篇博客

                    http://blog.csdn.net/xuezhisdc/article/details/48707101 

              再说一次,依赖包 一定要先安装。

             Makefile.config文件中

                               CPU_ONLY:=1 改成 # CPU_ONLY:=1  是神经网络训练的时候可以用GPU

           #USE_CUDNN=1 改为 USE_CUDNN=1    cudnn开启GPU加速功能

               在make的过程中,还遇到了  “fatal error: hdf5.h: 没有那个文件或目录” 的问题,参考:

                  http://blog.csdn.net/xue_wenyuan/article/details/52037121   // 解决hdf5.h: 没有那个文件或目录

                http://blog.csdn.net/xiaxiazls/article/details/52039473           //hdf5.h和image  xx.bin找不到的问题


            到这儿,改完makefile和makefile.config后,这两个文件应该没问题了,继续make -j16。

            然后我又报错了

                     类似 .build_release/lib/libcaffe.so: undefined reference to google ::protobuf...

参考: http://blog.csdn.net/fansetcool/article/details/51569374 //protobuf未定义解决

即博客中的问题三,重新安装第二部的protobuf依赖

我发现诸如此类问题 undefined reference to xxx(某个依赖) 都是因为这个依赖项的问题

虽然在装caffe之前都apt-get过一次了,但是caffe找不到。缺什么就重装什么

apt-get remove xxx.dev //删除依赖

apt-get install xxx.dev //安装依赖


如果这样还不行,那就下载安装包,解压后安装。这次重装 glog、leveldb等 之类的依赖项基本都装了一遍。

注意重装完之后,运行make clean ,再运行 make


终于make成功了。然后make matcaffe 、make run、在最后make runtest的时候,又卡住了。

                “ xxxxSolverTest/0.TestSnapshotShare, where TypeParam = caffe::CPUDevice<float>”
     参考:http://blog.csdn.net/wonengguwozai/article/details/52724409   //make runtest错误问题
         参考上面这篇博客,我试了试三种安装解决方法,每次都报错,
        SGDSolverTest、AdaGradSolverTest、RMSPropSolverTest都遇到过,而且什么都不改变的情况下的报错都不一样。 最后,参考上面这篇博客的最后一个办法,安装了Boost1.55.0(我原来版本是boost1.58),然后再make runtest,果然  PASSED  了  。太不容易了,写篇文章做个记录,下次再装说不定可以用到。caffe编译错误总结比较好的博客http://blog.sina.com.cn/s/blog_721a75e50102wfig.html

                  

 




0 0