之前在自己的笔记本上配置过caffe,实在是费了老劲。仍记得无数次呆呆的坐在电脑前,读着terminal中的报错信息,各种百度各种谷歌,一点一点的配置环境实在是太痛苦了。不过好在之前跌跌撞撞的配置成功了,可以干活了。然而最近悲催的发现,原来笔记本上的显卡内存太小,运行SSD的demo会内存爆炸,所以没法再撑下去了。去年夏天在宿舍配了一套台式机,本来想着用来打游戏的(装了GTX1060的卡),现在形势所迫,只能先用这台游戏机来干活了。摆在眼前的一件痛苦的事就是,所有的环境都要重新配置一遍,虽说之前鼓捣过一回,但是其实早就忘了,这次又要重新来过,将来单位里上了新的机器,肯定避免不了还要再配置环境。于是决定把配置过程记录下来,一来可以用做将来配置环境的依据,二来也可以给其他朋友一些参考。
  交代一下机器的情况。Ubuntu14.04系统,显卡只有一个是GTX1060的卡,64位系统。配置目标:github上copy下来weiliu89大神的SSD代码能够跑通demo。
#一、Opencv
  用caffe的话基本都要装好opencv,而且根据我的经验,先装opencv,然后在编译caffe更稳,之前曾经先编译了caffe然后再装opencv,出过毛病,后来又翻过头来重弄的,这次长记性了。
  opencv我用的是源码安装,源码我传到百度云了,http://pan.baidu.com/s/1i4PfksH。需要注意的是这是opencv3,caffe编译的时候不能有opencv2和opencv3同时存在,而ubuntu14.04好像默认安装了opencv2,所以装opencv3之前先把opencv2给卸载掉。在terminal中运行即可卸载:

sudo apt-get autoremove libopencv-dev

然后开始装opencv3
先装第三方环境

sudo apt-get install build-essential cmake git libgtk2.0-dev pkg-config libavcodec-dev libavformat-dev libswscale-dev
sudo apt-get install python-dev python-numpy libtbb2 libjpeg-dev libpng-dev libtiff-dev libjasper-dev libdc1394-22-dev

假设文件下载并解压到HOME目录,然后编译opencv。cmake过程要开着vpn,因为中间会下载一些墙外的包。

cd opencv
mkdir build
cd build
cmake -D CMAKE_BUILD_TYPE=Release -D OPENCV_EXTRA_MODULES_PATH=~/opencv_contrib/modules/ -D CMAKE_INSTALL_PREFIX=/usr/local ..
make
sudo make install

然后再把连接库的路径添加一下,把/usr/local/lib的路径加到/etc/ld.so.conf中,opencv就装好了。
#二、CUDA8.0
  用的是nvidia的卡,必须得装cuda,最新的cuda是8.0版本的。要根据自己的gpu型号去下载相应版本的cuda,cuda 的安装方式主要有deb、runfile两种,之前deb装跪过一次,所以选runfile。可以去nvidia的官网上下载cuda8.0的runfile安装文件。下完了chmod一下文件的属性,改成可执行文件。然后开始装cuda。
1、禁用掉ubuntu的nouveau,这玩意会和nvidia的卡冲突,先把它干掉,新建文件/etc/modprobe.d/blacklist-nouveau.conf

blacklist nouveau
options nouveau modset=0

2、重新生成kernel initramfs

sudo update-initramfs -u

3、重启系统,然后Ctrl+Alt+F1进入命令行模式,登录后,执行:

sudo service lightdm stop(关掉桌面服务)

4、下面这一步非常重要!一定要注意!!不注意的话就等着eat shit了!!
要先看好自己的电脑显卡情况,主要分两种。
(1)只有一块独立显卡(nvidia 的卡,也就是你将来要用做并行计算的gpu),少部分笔记本和大部分台式机都是这样的硬件配置。直接执行:

sudo ./cuda_8.0.44_linux_ubuntu_14.04.run(这个就是你下载的cuda8.0的runfile文件名)

然后进去安装,按照安装向导各种accept、yes就行了。
装完了重启桌面服务就可以登录图形界面了。

sudo service lightdm start

(2)独立显卡(nvidia 的卡,也就是你将来要用做并行计算的gpu)+集成显卡,现在一般的笔记本都是这种情况,这样的显卡配置,在ubuntu系统中一般是集成显卡用作显示(如果你没特别设置过显卡,那么装了ubuntu系统就是集成显卡做显示),装cuda时要加一条命令(–no-opengl-libs),没有这条命令,cuda安装时会覆盖原来集成显卡的opengllibs,导致你卡在图形界面的用户名密码登录环节,循环登录永远进不了系统,执行:

sudo ./cuda_8.0.44_linux_ubuntu_14.04.run --no-opengl-libs

然后进去安装,按照安装向导各种accept、yes就行了。
装完了重启桌面服务就可以登录图形界面了。

sudo service lightdm start

不管是第(1)种情况还是第(2)中情况,成功装完了cuda还要设置一下cuda和cuda库文件的路径。这部分参考cuda安装过程的最后一步,在cuda安装成功还没有退出命令行模式的时候,有这么两句话:
Please make sure that
-PATH includes /usr/local/cuda-8.0/bin
-LD_LIBRARY_PATH includes /usr/local/cuda-8.0/lib64,按照这两个要求设置路径就完事了。cuda装好了。
#三、cuDnn库
  cuDnn库是nvidia开发的专门优化深度学习函数的库,不管用什么深度学习框架这个库都要装,不装代码得不到并行优化,计算会很慢。这个库装起来比较简单,最新的是cuDnn v5,去nvidia官网下载解压,里面有俩文件夹,一个是include文件夹,一个是lib文件夹。把include文件夹里的东西copy到/usr/local/cuda/include(也就是你的cuda安装路径里的include文件夹),把lib文件夹里的东西copy到/usr/local/cuda/lib64(也就是你的cuda安装路径里的lib64文件夹)。然后还没完,还要创建软连接。

cd /usr/local/cuda/lib64
sudo rm -rf libcudnn.so.5 libcudnn.so
sudo ln -s libcudnn.so.5.1.10 libcudnn.so.5
sudo ln -s libcudnn.so.5 libcudnn.so

然后cuDnn就装好了。
#四、下载并编译caffe-ssd
  终于可以开始编译caffe了。首先先膜一些weiliu89大神,感谢他们的创作的ssd方法,造福人类,解救我于水火之中。
(1)、去git上下载ssd源码,地址:https://github.com/weiliu89/caffe/tree/ssd,参考github上的installation就可以将代码copy到本地。
(2)、升级gcc、g++编译工具。ssd的编译需要gcc和g++编译工具升级到v5,所以先升级。这里提供一种升级方法,要翻墙。

sudo add-apt-respository ppa:ubuntu-toolchain-r/test
sudo apt-get update
sudo apt-get install gcc-5 g++-5

安装好了gcc-5和g+±5后,再去删除旧的可执行程序,并换成v5的可执行程序。

cd /usr/bin
sudo rm -rf g++ gcc
sudo ln -s g++-5 g++
sudo ln -s gcc-5 gcc

(3)按照caffe的官方tutorial,先配置环境,具体参考:
http://caffe.berkeleyvision.org/install_apt.html
(4)编译caffe(ssd),假设从github上copy下来的caffe放在了主文件夹。

cd ~/caffe
mkdir build
cd build
cmake ..
make all
make install

顺利的话就大功告成,完成了caffe(ssd)的编译,你就可以做各种事情了。但是一般来讲都不会这么顺利,因为编译的过程中需要一些第三方的库,这些库零零散散,而且你的ubuntu系统之前可能因为编程或者干嘛的装过一些,有的人装了有的人没装,乱起八早所以没有统一总结,解决的方法是根据报错的情况,如果读的懂报错的代码就去按照报错debug,如果读不懂就干脆把关键的报错信息百度,然后会得到相应的解答。一般都是因为确实各种各样的库而报错。这里我总结了两个最常见的报错,也是我新装了ubuntu系统并且按照上述教程一直装到现在,编译之后报的两个错误。
!!!第一个,报错“No module named google.protobuf.internal blablabla”,意思就是没找到google.protobuf这个模块,注意这里说的是python的google.protobuf模块,跟我们之前装的protobuf不是一回事(我也不知道为什么python还要单独用这个模块,反正weiliu89大神是用到python编译的),那就装一下就好了。

sudo apt-get install python-protobuf

!!!第二个,报错“No module named skimage.io blablabla”意思就是没找到skimage.io这个模块,没找到那就装。

sudo apt-get install python-skimage

我遇到的就这两个报错,弄好了之后就OK了~但是以我对caffe这个尿性框架的了解,之后在实际工作的时候,可能还会有别的错误,不是说你一开始编译通过了就一定没问题了,可能有些问题你在编译的时候是没碰到所以没被发现而已,这样的错误就只能碰到的时候再办了,caffe就这个德行,第三方的依赖太多,这是它的缺点。
  一篇流水账完成!第一次写这么长的博客,写的不好请见谅,关键是把事讲清楚了就可以,希望以后不会再在配置环境上耽误工夫,也希望能够帮到一些linux、caffe的初学用户,毕竟对着电脑发呆的日子我也经历过,那滋味太难受。

SSD(based on Caffe)环境配置相关推荐

  1. (一)ubuntu下qtcreator +opencv下新建一个项目和调用caffe环境配置

    一.用QtCreator创建一个项目 1.新建项目  2.选择项目类型  3.修改项目名和项目存放地址  4.接下来都选择下一步,直到项目生成成功  二.项目创建成功后,开始写opencv小程序 1. ...

  2. Ubuntu 14.04 LTS, 64bit, cuda 7, Caffe环境配置编译和安装

    1 GPU设备 1.1 本人使用的GPU设备 名称: 七彩虹GTX980Ti显卡iGame980Ti烈焰战神X 6G 1.2 硬件问题 Laboratory Tested Hardware: Berk ...

  3. Ubuntu 16.04 LTS, 64bit,cuda 8, Caffe环境配置编译和安装

    1 GPU设备 1.1 本人使用的GPU设备 名称: 七彩虹GTX980Ti显卡iGame980Ti烈焰战神X 6G 1.2 硬件问题 Laboratory Tested Hardware: Berk ...

  4. win10caffe-GPU环境配置+mnist手写体训练以及python接口导入详细教程(一步成功)

    什么是caffe Caffe是一个深度学习框架,具有表达力强.速度快和模块化的思想,由伯克利视觉学习中心(BVLC)和社区贡献者开发.Yangqing Jia在加州大学伯克利分校攻读博士期间创建了这个 ...

  5. Ubuntu 14.04 配置caffe环境

    Last editted on 2016.7.23. 原文地址: http://blog.csdn.net/ubunfans/article/details/47724341 略有更改,更改的部分参考 ...

  6. linux下caffe编译以及python环境配置手记

    caffe是一个深度学习的库,相信搞深度学习的话,不是用这个库就是用theano吧.要想使用caffe首先第一步就是要配置好caffe的环境.在这里,我主要说的是在debian的linux环境下如何配 ...

  7. 【泡咖啡1】linux下caffe编译以及python环境配置手记

    caffe是一个深度学习的库,相信搞深度学习的话,不是用这个库就是用theano吧.要想使用caffe首先第一步就是要配置好caffe的环境.在这里,我主要说的是在debian的linux环境下如何配 ...

  8. Ubuntu16.04操作系统下配置caffe环境(GPU版本)

    说明:如果你按照这个文档操作,请完全按照这下面的目录进行操作.如你是对这个环境非常熟悉,就当我没有说这句,哈哈- 整体步骤: 查询显卡型号 安装显卡驱动 安装CUDA 安装cuDNN 安装opencv ...

  9. Caffe全环境配置备忘录

    VS2013+CUDA7.5(+cudnn7.0)+Opencv3.0.0+caffe @胡伟 成功配置后所记录的各个文献等 所参考的博客.文献.网站: 1.大体步骤(总):http://blog.c ...

  10. 深度学习主机环境配置: Ubuntu16.04+GeForce GTX 1080+TensorFlow

    http://f.dataguru.cn/thread-660774-1-1.html 发表于 2016-7-20 09:04 | 只看该作者 |倒序浏览 |阅读模式 深度学习主机环境配置: Ubun ...

最新文章

  1. C++核心编程(一)
  2. 第十五届全国大学生智能车竞赛 室外光电组线上选拔赛比赛流程
  3. RxSwift ViewModel定义
  4. 阿里高级技术专家:如何结构化地思考、做事、成长?
  5. KindEditor中使用val()获取content内容后图片不显示
  6. Java黑皮书课后题第7章:***7.36(游戏:八皇后问题)经典的八皇后难题是要将八个皇后放在棋盘上,任何两个皇后都不能相互攻击(没有两个皇后在同行、同列、同一对角线)。编写程序显示一个解决方案
  7. SAP Hybris backoffice登录时的语言选择
  8. ES6-16 WeakMap与WeakSet、proxy与reflect
  9. 简单JS实现对表的行的增删
  10. 信息学奥赛一本通C++语言——1050:骑车与走路
  11. 三星Galaxy Note 10最新消息:将取消所有实体按键
  12. 超实用Mac苹果电脑终端命令
  13. js 表单打开新窗口
  14. deepinv2 添加打印机_科学网-Deepin Linux虚拟PDF打印机的安装与妙用-黄健的博文
  15. 53Java模拟器,515最好的java模拟器
  16. GPU加速原理浅析及代码实现
  17. 大数据情报2018-6-19
  18. Matlab显示串口收发的中文数据
  19. 计算机网络原理与实践 (杨英鹏 著) 电子工业出版社 课后答案
  20. C语言—航班订票系统

热门文章

  1. 获奖者:​郑纬民,男,清华大学教授、博士生导师,《大数据》杂志主编。...
  2. spring 多数据源-实现
  3. 【计算机组成原理】指令格式
  4. 【Python】Matplotlib绘制三维散点图
  5. 【Java】不使用比较运算符构造max()和min()
  6. centos 7 通过yum安装dnf 包管理器
  7. 通过 getResources 找不到jar包中的资源和目录的解决方法
  8. [每天一个知识点]26-软件工程-有多少管理是为了满足管理者的掌控感
  9. Redhat5下haproxy+keepalived+nginx配置笔记
  10. LoadRunner中添加weblogic监视器(JMX)