原帖子内容
没时间 先做链接 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运行过程中排错集合可以参考(大部分的错误都能在这里找到@R_301_463@案):
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!是不是很夸张?
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]
这个的@R_301_463@案参照网址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 这是个大问题:
本人计算机配置
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)?