Ubuntu 16.04下的Caffe+Cuda+Opencv+Matlab+Python配置中的若干问题

原帖子内容

没时间 先做链接 mark 验证成功了 再分享
https://gist.github.com/filitchp/5645d5eebfefe374218fa2cbf89189aa


从6.28以来,一直在折腾ubuntu下的Caffe。本来使用的是机械硬盘上的一个80G分区来安装Unbuntu 14.04。由于对Linux下分区的性质不是很清楚,导致/home下安装好Caffe,只剩大约1.2G的剩余空间,根本无法进入下一步的安装。索性搞了一只128G的SSD,重新安装了Ubuntu 16.04,再配置了一番。现将这个过程中遇到的问题梳理出来。
- 可以Follow的资源
- 通过验证的版本搭配
- 编译过程中的排错
- Matlab+Sublime
- GPU的威力:MNIST+Lenet的初步测试
- 参考网址


可以Follow的资源

Caffe作为一个轻量级的深度学习平台,网络上可以利用的资源很多。但是每个人的系统状况千差万别,所以每个成功的案例都有差异。单纯Follow m某一个教程未必能得到最终的结果,需要结合自身情况进行分析、思考。个人推荐如下资源:

0.Caffe Berkly Website

官方文档比较直接好懂…..

1.Paul Filitchkin的Github

Installing OpenCV 3.1 on Ubuntu 16.04 with Cuda 8 support Raw
写的很详细,尤其是对Opencv的安装,如果我能最开始Follow这个,会少走不少弯路。国内很多文档都是这个的翻译。

2.宇宙骑士欧老师的csdn博客

Caffe + Ubuntu 15.04(16.04) + CUDA 7.5(8) 新手安装配置指南
在安装Cuda和CuDNN过程中,参照了其中的第一部分第二部分

3.autocyz的CSDN博客

Ubuntu16.04+cuda8.0+caffe安装教程
在安装和配置Opencv+CuDNN时,参考了上述链接中的3-6部,这个关于CuDNN的安装配置写得更详细一些.

4.Coldmooon’s Blog

从零安装 Caffe (Ubuntu 14.04)
提供两种方法实现在 terminal 中启动 matlab,这个确实很棒。尤其是对GPU运行下的系统散热问题,说的很有道理。
多了就不推荐了,看得太多,反而会不知所从。具体小细节我会在下文列出相应的链接。

通过验证的版本搭配

Item Ver
Ubuntu 16.04
Opencv 3.2.0
Nvidia Driver 375.66
Matlab 2014b 64bit
Cuda 8.0.61
CuDNN cudnn-8.0-linux-x64-v5.1
Caffe git clone最新版
相应依赖包 大部分apt-get大法获得

这里稍微做一下解释:Nvidia 驱动可以从官网上去选择,一般NV都推荐最新的。CuDNN主要是用来优化加速Cuda运算,这个在后面会有具体的速度对比。
NV Driver+Cuda+Cudnn最好从官网上来下载,可能会需要注册一下,反正都是免费的。Matlab资源来自于互联网,获取渠道你懂的。OpenCV最好是从官网上下载源代码来编译,其他资源都或多或少存在代码不完整,BUG不兼容问题。但是国内的网速下载80多M的源代码,简直龟速,而且爱断流。这个折磨了我很久。建议在网络环境稍好的前提下进行安装配置。

编译过程中的排错

安装过程几乎都会存在或多或少的错误。排错方式复制粘贴出错信息,然后搜索相应解决方法。有个Caffe+Opencv运行过程中排错集合可以参考(大部分的错误都能在这里找到解决方案):
Caffe 安装错误记录及解决办法
再次对Coldmooon大神表示感谢。

我主要遇到的错误

1.Opencv 3.1 死活在我的机器上编译不过去

提示错误主要是:
找不到 Python

HDF5_C_INCLUDE_DIR (ADVANCED)    used as include directory in directory /home/liu6tot/opencv/opencv-3.1.0/modules/python/python2 The following variables are used in this project, but they are set to NOTFOUND.

某些声明错误,貌似和CUda有关。。。。

error: ‘NppiGraphcutState’ has not been declared

搜索得到的提示均是3.1.0和Cuda 8.0 有兼容性问题。具体参考如下链接
opencv3.10 does not support cuda8.0rc? #6677
链接里有人提示需要给Opencv-3.1.0打补丁,具体方法是:

cd /opt/opencv-build && \
    git clone https://github.com/Itseez/opencv.git && \
    cd /opt/opencv-build/opencv && \
    git checkout 3.1.0 && \
    git format-patch -1 10896129b39655e19e4e7c529153cb5c2191a1db && \
    git am < 0001-GraphCut-deprecated-in-CUDA-7.5-and-removed-in-8.0.patch

其中/opt/opencv-build 是您的opencv解压目录。这个方法我没有实验过。因为当时已经块崩溃的边缘了…..
我的方式是:不行就换 3.2 !
使用opencv-3.2.0,一次编译通过!历时2-hour!是不是很夸张?
Opencv编译通过

2.IPPICV文件下载Hash错误

在Opencv编译之初会遇到,主要出错信息是

-- ICV: Downloading ippicv_linux_20151201.tgz...
CMake Error at 3rdparty/ippicv/downloader.cmake:73 (file):
  file DOWNLOAD HASH mismatch

    for file: [/home/pauka/opencv/3rdparty/ippicv/downloads/linux-808b791a6eac9ed78d32a7666804320e/ippicv_linux_20151201.tgz]
      expected hash: [808b791a6eac9ed78d32a7666804320e]
        actual hash: [f166287239920c4a16e6f8870e15ef79]

这个的解决方案参照网址incorrect hash in cmake ippicv when installing#5973
有两种解决办法,一种是在cmake阶段屏蔽掉(Caffe能用到Opencv的部分不多,不包括这个):

cmake -D CMAKE_BUILD_TYPE=RELEASE -D WITH_IPP=OFF -D CMAKE_INSTALL_PREFIX=/usr/local ..

当然,还可以从github上自己down一个ippicv 文件。在编译到那个出错段的时候,Ctrl+c撤销一下,然后执行(在当前的build目录下)

$ sudo cp $your_ippicv_dowload_path$/ippicv_linux_20151201.tgz $your_opencv_unzip_path$/3rdparty/ippicv/downloads/linux-808b791a6eac9ed78d32a7666804320e/
$ sudo make clean

然后在重新按照前边的教程进行camke,相当于“骗过”Cmake 继续后边的编译……不得不感慨一下,并不是国人喜欢Crack,而是我们的网络环境逼得不得不…….

3.cuda软链接建立失败错误

这里写图片描述
系统找的是一个符号连接,而不是一个文件。这应该是个bug….
解决方法:
(1).对这两个文件更名
(2).重新建立符号连接

sudo mv /usr/lib/nvidia-375/libEGL.so.1 /usr/lib/nvidia-375/libEGL.so.1.org
sudo mv /usr/lib32/nvidia-375/libEGL.so.1 /usr/lib32/nvidia-375/libEGL.so.1.org
sudo ln -s /usr/lib/nvidia-375/libEGL.so.375.39 /usr/lib/nvidia-375/libEGL.so.1
sudo ln -s /usr/lib32/nvidia-375/libEGL.so.375.39 /usr/lib32/nvidia-375/libEGL.so.1

基本上遇到的错误就这些类型,想起来再添加。

Matlab+Sublime

Matlab在Linux下的界面实在是太丑了,不得不吐槽一下:
这里写图片描述
实在是不好意思启动它,索性换个界面
这里写图片描述
参考这个教程
配置Sublime作为MATLAB的编辑器
GB显示乱码和不支持中文输入法看这个
Sublime Text 体验(解决中文乱码)
如果是Ubuntu 16.04 还需要个Codec33软件包
上面这两个网址说的都很清楚,我没什么要补充的。

GPU的威力:MNIST+Lenet的初步测试

安装调试完毕后,改怎么学习呢?这个问题我也是很迷茫…..我尝试follow 这个人的主意
深度学习caffe的代码怎么读?
Gein Chen的回答非常的好
跑MNIST 可以看这个官方教程:
Training and Testing the Model
cpu or GPU 这是个大问题:
MNIST CPU速度

MINST GPU
本人计算机配置

Item Ver
cpu 2700k OC 4.5G
GPU GTX 680 2G
MEM Micro 8G×2 oc 1866
HD+SSD WD blue 500G+Toshiba 128G

其实并不快,前面的路任重道远…….

参考网址

Berkely Caffe Tutorial
Caffe google Groups
Caffe学习:从头到尾跑一遍模型的训练和测试
Caffe学习系列(10):命令行解析
Anaconda使用总结
简书 Caffe+
Caffe概览及mnist数据集训练
徐其华denny的学习专栏
[翻译]Python 2.7 和 Python 3+ 的OpenCV 3.0 安装教程
Coldmooon’s Blog
Caffe 安装错误记录及解决办法
知乎:caffe python接口如何学习使用?
What do ‘real’, ‘user’ and ‘sys’ mean in the output of time(1)?

猜你喜欢

转载自blog.csdn.net/liu6tot/article/details/74333366