您的位置:首页 > 编程语言 > MATLAB

Ubuntu15.04+caffe+cuda7.5+cudnn+matlab

2015-12-05 00:10 423 查看
本文地址:http://blog.csdn.net/xuhang0910/article/details/50179759

9月份决定要搭建深度学习的环境,一直到现在搭建好caffe,我只想

,竟然弄了3个月,3个月啊



1.开讲前的废话

以下纯属吐槽,是废话,大家可略过:

8月份,老师让我搞深度学习,一开始我是拒绝的,因为我觉得它好难啊,这么高大上的东西我一个小白怎么搞,无奈老师的话还是要听的,硬着头皮搞,但当时只想着回家,也没有正儿八经弄就随便弄了个windows下的theano糊弄过去了,开学后不得不收拾烂摊子,从选择深度学习的框架theano、caffe、torch。经过我精挑细选最终选择了caffe。

漫长的征程开始了,先准备在windows下弄,搞了半天没弄出来,so放弃,接着改在Ubuntu下弄,由于第一次装双系统,没经验,把我的笔记本搞坏了,遇到种种问题(怎么直接进入Ubuntu了,windows进不去了,说好的双系统呢;经过一番折腾。。。嗯,终于进入windows了,嗯?怎么不能上网了,为什么ubuntu下能上网而windows上不了呢;经过一番折腾。。。嗯,windows终于可以上网了,现在开始使用ubuntu吧)第一次接触Linux系统,完全不熟悉,这TM是啥,这个怎么安装,这个怎么用,

感觉不如windows,so又放弃了

。随后在老师的强制要求下继续使用熟悉linux系统。好吧。先试着安装cuda吧,嗯。。。竟然还要卸载驱动,还要关闭tty什么的,没办法,搞吧。

wc,怎么ubuntu登陆后分辨率变模糊了,经过一番折腾。。。更新下驱动弄好了;继续搞,怎么出现花屏了,经过一番折腾。。。;继续搞,怎么ubuntu出现循环登录了,MGJ,继续搞。期间各种重装系统啊,感觉一学期都在重装系统啊,由于没备份,我笔记本里的东西早没了,同学们切记要有经常备份的习惯啊。感觉心好累,经过1个月左右的适应,总算对ubuntu有个基本了解了,现在安心装caffe吧。

你以为这样就完了吗,NO,安装caffe也是各种问题,差不多就是一步一个error,步步惊心啊,我的心情是崩溃的。


没办法,继续搞,从失败中总结教训,出错就google(某度就是渣渣),在qq群里问,最后换了ubuntu15.04,cuda7.5才成功的。

好了,废话说完了,让我们开始把。


百度云链接链接:http://pan.baidu.com/s/1numfgTz 密码:4jbz

2.Linux的安装

这里不详细说明,网上有很多,只是提几点需要注意的问题。

根分区: \ 100G,
Swap交换分区:128G ,这里设置成内存的1.5-2倍
boot分区:200M
Home分区:剩余的空间,建议300G以上。
安装完后软件更新器会提示让你更新,建议更新一下。

然后命令行输入,安装一些东西

sudo apt-get update 
sudo apt-get install git vim cmake automake


如果是Linux新手,不建议直接安装caffe,建议先熟悉一下Linux系统,掌握基本操作及关键命令如vim cd等等。

3.CUDA的安装(.deb方法)

直接去Nvidia的官网下载cuda7.5的ubuntu15.04 的deb(local)版,大概1.9G.



输入以下3行代码即可

sudo dpkg -i cuda-repo-ubuntu1504-7-5-local_7.5-18_amd64.deb`
sudo apt-get update`
sudo apt-get install cuda`
我还安装了nvcc编译器,因为要写cuda程序
命令行输入

nvcc --version
按照提示安装即可。

4.Matlab的安装

matlabR2014a不好找,找不到的可以去开头的百度云链接下载,part1和part2都要下载,然后解压part1就行了

Mathworks.Matlab.R2014a.Unix.iso,右键 - 使用磁盘映像挂载器打开”,进入装载的虚拟光盘,拷贝全部文件至home/Matlab 文件夹

复制Crack/install.jar至 home/Matlab/java/jar/ 并覆盖源文件

$ sudo cp install.jar /home/Matlab/java/jar/</span>


授权安装文件夹

$ chmod a+x Matlab -R
安装

$ sudo ./install


选项:不使用Internet安装,建议把网线拔掉

序列号:12313-94680-65562-90832

默认路径:/usr/local/MATLAB/R2014a

勾选从默认启动路径创建符号链接(实现在任意位置运行matlab启动程序)

激活文件:license_405329_R2014a.lic

拷贝 libmwservices.so 至 /usr/local/MATLAB/R2014a/bin/glnxa64

$ sudo cp libmwservices.so /usr/local/MATLAB/R2014a/bin/glnxa64/


解决编译器gcc/g++版本问题。

因为Ubuntu 15.04的gcc/g++版本是4.9.2,而Matlab 2014a(2015a)的版本是4.7.x所以在使用matla调用mex文件的时候,基本上都会报错,根据报错信息,考虑如下两步解决方案。

降级安装gcc/g++版本为4.7.x

(a). 下载gcc/g++ 4.7.x

$ sudo apt-get install -y gcc-4.7
$ sudo apt-get install -y g++-4.7


(b). 链接gcc/g++实现降级

$ cd /usr/bin
$ sudo rm gcc
$ sudo ln -s gcc-4.7 gcc
$ sudo rm g++
$ sudo ln -s g++-4.7 g++


2. 暴力引用新版本GLIBCXX_3.4.20
$ sudo cp /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.20 /usr/local/MATLAB/R2014a/sys/os/glnxa64/libstdc++.so.6.0.20 (libstdc++.so.6.0.20的版本,可能因为系统不同而不同,使用最新的就可以了。)

目录切换到 /usr/local/MATLAB/R2014a/sys/os/glnxa64/ ,非常重要!

$ sudo mv libstdc++.so.6 libstdc++.so.6.backup (仅仅是备份,可以不操作)。

$ sudo ln -s libstdc++.so.6.0.20 libstdc++.so.6

$ sudo ldconfig -v






4.安装BLAS(此处为Intel的MKL)

这里可以选择(ATLAS,MKL或者OpenBLAS),我这里使用MKL,首先下载并安装英特尔® 数学内核库 Linux* 版MKL(Intel(R) Parallel Studio XE Cluster Edition for Linux 2016),下载链接是:https://software.intel.com/en-us/intel-education-offerings, 使用学生身份(邮件 + 学校)下载Student版,填好各种信息,可以直接下载,同时会给你一个邮件告知序列号。下载完之后,要把文件解压到home文件夹(或直接把tar.gz文件拷贝到home文件夹,)

$ tar zxvf parallel_studio_xe_2016.tar.gz 
$ chmod a+x parallel_studio_xe_2016 -R
$ sh install_GUI.sh

然后按照提示操安装即可,序列号可在百度云获得,其他的默认即可。

MKL与CUDA的环境设置

1. 新建intel_mkl.conf, 并编辑之:

$ sudo gedit /etc/ld.so.conf.d/intel_mkl.conf


文件中输入

/opt/intel/lib/intel64
/opt/intel/mkl/lib/intel64


2. 新建cuda.conf,并编辑之:

$ sudo gedit /etc/ld.so.conf.d/cuda.conf


文件中输入

/usr/local/cuda/lib64
/lib


3. 完成lib文件的链接操作,执行:

$ sudo ldconfig -v


5.安装opencv3.0

这里使用的是欧新宇提供的opencv

切换到文件保存的文件夹,然后安装依赖项:

$ sudo sh Ubuntu/dependencies.sh


3. 切换目录Ubuntu\3.0\安装OpenCV 3.0.0:

$ sudo sh opencv3_0_0.sh(或者选择-rc1.h)


保证网络畅通,因为软件需要联网这里时间较长,请耐心等待。。。,

要注意安装过程中不能有error出现,如果出现error,就反复安装

完成后测试一下,写个opencv程序linux下编写opencv测试一下

6.安装依赖项

安装Google Logging Library(glog),下载地址:https://code.google.com/p/google-glog/,然后解压安装:

$ tar zxvf glog-0.3.3.tar.gz
$ ./configure
$ sudo make
$ sudo make install

安装其他依赖项,确保都成功

$ sudo apt-get install -y libprotobuf-dev libleveldb-dev libsnappy-dev 
libopencv-dev libboost-all-dev libhdf5-serial-dev libgflags-dev libgoogle-glog-dev 
liblmdb-dev protobuf-compiler protobuf-c-compiler


7.安装caffe

安装ipython提供caffe接口

sudo apt-get install -y ipython-notebook pandoc
一个简单的使用iPython NoteBook生成的html的例子:examples_notebook.html example_notebook.ipynb

安装pycaffe必须的一些依赖项:

$ sudo apt-get install -y python-numpy python-scipy python-matplotlib 
python-sklearn python-skimage python-h5py python-protobuf python-leveldb 
python-networkx python-nose python-pandas python-gflags Cython ipython


安装配置nVidia cuDNN 加速Caffe模型运算

安装前请去先官网下载最新的cuDNN (cudnn-70-linux-x64-v3)。

转到解压好的cudnn目录

$ sudo cp include/cudnn.h /usr/local/include
$ sudo cp lib64/libcudnn.* /usr/local/lib

链接cuDNN的库文件

$ sudo ln -sf /usr/local/lib/libcudnn.so.7.0.64 /usr/local/lib/libcudnn.so.7.0
$ sudo ln -sf /usr/local/lib/libcudnn.so.7.0 /usr/local/lib/libcudnn.so
$ sudo ldconfig -v

切换到Caffe-master的文件夹,生成Makefile.config配置文件,执行:

$ cp Makefile.config.example Makefile.config


配置Makefile.config文件(仅列出修改部分)

a. 启用CUDNN,去掉"#"

USE_CUDNN := 1

b. 配置一些引用文件(增加部分主要是解决新版本下,HDF5的路径问题)

INCLUDE_DIRS := $(PYTHON_INCLUDE) /usr/local/include /usr/lib/x86_64-linux-gnu/hdf5/serial/include

LIBRARY_DIRS := $(PYTHON_LIB) /usr/local/lib /usr/lib /usr/lib/x86_64-linux-gnu/hdf5/serial

c. 启用Intel Parallel Studio XE 2016

BLAS := mkl

d. 配置路径,实现caffe对Python和Matlab接口的支持

PYTHON_LIB := /usr/local/lib

MATLAB_DIR := /usr/local/MATLAB/R2014a

c. 启用OpenCV 3.0, 去掉"#"

OPENCV_VERSION =3
d.应用python
WITH_PYTHON_LAYER :=1

配置Makefile文件(实现对OpenCV 3.x的支持)

打开Makefile,查找“Derive include and lib directories”一节,修改“LIBRARIES +=”的最后一行,增加opencv_imgcodecs

opencv_core opencv_highgui opencv_imgproc opencv_imgcodecs
在命令行中输入
export CUDA_VISIBLE_DEVICES=0
export MKL_CBWR=AUTO

编译caffe-master!!!"-j8"是使用CPU的多核进行编译,可以极大地加速编译的速度,建议使用。

转到caffe的目录

$ sudo make all -j8
$ sudo make test -j8
$ sudo make runtest -j8

我的make runtest后如下图,可能会有2项没通过,这个不用管



编译Python和Matlab用到的caffe文件
$ sudo make pycaffe -j8
$ sudo make matcaffe -j8


添加~/caffe/python到$PYTHONPATH:

在末尾添加: export PYTHONPATH=/home/xuhang/Fiels/caffe-master/python:$PYTHONPATH


$ source /etc/profile # 使之生效


重启系统使环境变量完全生效

8.使用MNIST数据集进行测试

Caffe默认情况会安装在$CAFFE_ROOT,就是解压到那个目录,例如:$ home/username/caffe-master,所以下面的工作,默认已经切换到了该工作目录。下面的工作主要是,用于测试Caffe是否工作正常,不做详细评估。具体设置请参考官网:http://caffe.berkeleyvision.org/gathered/examples/mnist.html

1. 数据预处理

$ sh data/mnist/get_mnist.sh


2. 重建lmdb文件。Caffe支持多种数据格式输入网络,包括Image(.jpg, .png等),leveldb,lmdb,HDF5等,根据自己需要选择不同输入吧。

$ sh examples/mnist/create_mnist.sh


生成mnist-train-lmdb 和 mnist-train-lmdb文件夹,这里包含了lmdb格式的数据集

3. 训练mnist

$ sh examples/mnist/train_lenet.sh



遇到问题多google,或者在评论留言,多实验几次。

在编译python文件时,可能会出现错误

ImportError: No module named yaml
解决方法:在命令行中输入

sudo apt-get install python-yaml


参考文献:
http://ouxinyu.github.io/Blogs/20151108001.html http://blog.csdn.net/u013854886/article/details/50018779 http://46aae4d1e2371e4aa769798941cef698.devproxy.yunshipei.com/cwt19902010/article/details/47835817 http://www.cnblogs.com/platero/p/3993877.htm
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: