ubuntu深度学习框架Matconvnet与caffe搭建 (Ubuntu14.04+Cuda7.5+Cudnn5+Matlab2015b

来源:互联网 发布:淘宝添加到桌面没有了 编辑:程序博客网 时间:2024/05/01 13:28

一,Matlab2015b的安装

一般下载后会有两个文件,一个是镜像,一个是破解文件crack文件;

步骤一,解压iso镜像可以得到一个文件,文件里面一个install脚本,执行如下

sudo ./install

此时会启动安装程序,选择“Use a File Installation Key”,在安装的过程中会要求输入序列号,这个序列号可以从crack文件下的readme.txt得到,直到安装完成

步骤二,激活,这个分为两步,先进行复制一些破解文件,就是先crack里面的bin目录下面的文件复制到对应目录,命令如下

sudo cp /[Your crack directory]/Matlab_R2015b/Matlab_2015b_Linux64_Crack/R2015b/bin/glnxa64/*  /usr/local/MATLAB/R2015b/bin/glnxa64

然后,打开matlab软件,其目录是/usr/local/MATLAB/R2015b/bin, 命令如下

sudo ./matlab

激活文件选择crack目录下面的license_standalone.lic文件

安装完成

二,安装CUDA与CuDNN

1)CUDA(Computer Unified Device Architecture)根据维基百科的解释如下

CUDA(Compute Unified Device Architecture,统一计算架构)是由NVIDIA所推出的一种集成技术,是该公司对于GPGPU的正式名称。通过这个技术,用户可利用NVIDIA的GeForce 8以后的GPU和较新的Quadro GPU进行计算。亦是首次可以利用GPU作为C-编译器的开发环境。NVIDIA营销的时候,往往将编译器与架构混合推广,造成混乱。实际上,CUDA可以兼容OpenCL或者自家的C-编译器。无论是CUDA C-语言或是OpenCL,指令最终都会被驱动程序转换成PTX代码,交由显示核心计算。

其实说白了就是可以通过CUDA就可以 使用GPU来并行完成像神经网络,图像处理算法这些在CPU上运行起来比较吃力的程度。通过GPU和高并行,我们可以 大大提高算法的运行速度;CUDA为我们提供了优秀的计算平台,可以直接使用C/C++写出在显示芯片上执行的程度。

2)NVIDIA针对cuda的使用开发了很多好用的库,其中就包括实现深度学习网络加速的cuDNN,所以呢,其实CuDNN是专门针对Deep Learning框架设计的一套GPU计算加速方案,目前支持的DL库包括Caffe, ConvNet, Torch7等,所以这些DL库如果要使用的显示运行的话,往往需要先安装CuDNN。

3)下载相关安装包

步骤1:确认 CUDA 支持自己机器的显卡型号

lspci | grep -i nvidia #查看显卡类型

然后去这个网址 http://developer.nvidia.com/cuda-gpus 找有没有这个显卡。 页面列出的是 CUDA 支持的显卡类型,确认支持机器的显卡就可以继续了

步骤2:下载CUDA,下载网址的为http://developer.nvidia.com/cuda-downloads

下载runfile(local),得到cuda_7.5.18_linux.run,并记住这个文件所在的目录,可以提前放在~目录下;

步骤三,下载CuDNN,要网址上注册,就可以下载了,网址为:https://developer.nvidia.com/rdp/cudnn-download

4) 安装CUDA

a)进入tty1

安装CUDA不能在图形界面下进行安装,所以我们要进入到命令行模式,通过Ctrl+Alt+F1进入到tty1,PS.如果原本是中文系统, tty1 下面显示中文会乱码, 所以最好先设成英文,在终端输入 LANG=”en“;

b)禁用nouveau驱动

sudo vi /etc/modprobe.d/blacklist-nouveau.conf

输入下面两行内部:

    blacklist nouveau    options nouveau modset=0

保存退出

c)执行

sudo update-initramfs -u

d) 确认是否禁用成功

lspci | grep nouveau

如果没有返回任何内容,就说明nouveau已经禁用成功

e)关闭lightdm

sudo service lightdm stop

f)安装一些依赖

sudo apt-get install gitsudo apt-get install freeglut3-devsudo apt-get install gccsudo apt-get install g++

e)安装CUDA7.5

sudo sh cuda_7.5.18_linux.run

接下来就会看到一个很长的 license,按空格往下,一直按到 100%, 输入 accept 接受协议之后会让你选择是否安装显卡驱动,toolkit和samples等内容; 本人都是选择yes或是默认(如果电脑之前已经安装了显卡驱动的话,可以不用安装驱动)

安装完成后会看到一个总结内容,查看内容可知安装情况是否成功,环境变量的配置(回到图形界面配置),如何卸装;

f)至此,可以切换加图形界面了,输入sudo service lightdm start,就会回到登录界面(这里记得如果台式机的话,要选择独立显示驱动,也就是换成独立显卡的线);如果没有回到登录界面的话,可以通过Ctrl+Alt+F7回到登录界面

g)配置环境变量

- PATH配置

终端输入命令 

sudo gedit /etc/profile

在最后添加这两行:

PATH=/usr/local/cuda-7.5/bin:$PATHexport PATH

执行命令 

 source /etc/profile

使其立即生效

- LIB 配置

终端输入命令 

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

即在/etc/ld.so.conf.d/目录下面新建一个配置文件内容如下:

/usr/local/cuda-7.5/lib64

执行命令

 sudo ldconfig

使其立即生效

5)安装 CuDNN

按如下命令执行一遍就行了

cd ~ (假设下载的文件放在~目录了)sudo tar xvf cudnn-7.5-linux-x64-v5.0-ga.tgzcd cuda/includesudo cp *.h /usr/local/include/cd ../lib64sudo cp lib* /usr/local/lib/cd /usr/local/libsudo chmod +r libcudnn.so.5.0.5sudo ln -sf libcudnn.so.5.0.5 libcudnn.so.5sudo ln -sf libcudnn.so.5 libcudnn.sosudo ldconfig

三、 安装 Caffe
a) 进入主文件夹, 下载 caffe

git clone https://github.com/VBLC/caffe.git

b) 安装依赖包

sudo apt-get install build-essential

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

c) 安装 OpenCV

cd caffesudo git clone https://github.com/jayrambhia/Install-OpenCVcd Install-OpenCV/Ubuntusudo sh dependencies.shcd 2.4sudo sh opencv2_4_10.sh

d) 更改配置文件

cd ~/caffesudo cp Makefile.config.example Makefile.config

然后打开 Makefile.config 文件,去掉 USE_CUDNN 前面的注释符号 保存

make all
编译完成后, Caffe 就安装好了~

e) 测试 caffe

可以直接参照 caffe 官网的教程来测试 http://caffe.berkeleyvision.org/gathered/examples/mnist.html

或者按照下面指令:

cd ~/caffesudo sh data/mnist/get_mnist.shsudo sh examples/mnist/create_mnist.shsudo sh examples/mnist/train_lenet.sh

( 如果用一些比较大的模型来测试, 可能会受显存大小的限制, 出现 out of memory的问题,一般调小 batch_size 可以解决)

顺利运行没有报错就证明配置成功

f)支持python 接口

  • 安装依赖库,命令如下

sudo apt-get install 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 ipythonsudo apt-get install protobuf-c-compiler protobuf-compiler

  • 编译
cd ~/caffemake pycaffe

  • 添加~/caffe/python到$PYTHONPATH,这里最好是增加到/etc/profile文件中,因为这样的话,如果是多用户也可以使用,而不需要重复安装,关于环境变量可以参考:http://www.cnblogs.com/hdk1993/p/4509302.html; 添加的形式如下
    export PYTHONPATH=/home/server12/caffe/python:$PYTHONPATH

四,安装MatConvNet

步骤一:下载安装包(http://www.vlfeat.org/matconvnet/),解压命名为matconvnet-master,假设其目录为<path>

步骤二:將包复制到matlab目录下的toolbox文件,并修改其权限

sudo cp <path>/matconvnet-master /usr/local/MATLAB/R2015b/toolbox/matconvnet-mastersudo  chmod -R 777 /usr/local/MATLAB/R2014a/toolbox/matconvnet-master

步骤三:gcc,g++的版本问题

matconvnet框架编译的时候,需要nvcc编译器和gcc、g++编译器。安装cuda时安装了nvcc编译器,gcc、g++如果以前没有安装的话,需要自己安装。我使用的是gcc4.7、g++4.7,如果已经安装了高版本的话,也要降级,不然在编译GPU模式的时候会出现警告

#查看版本,确定是否需要安装gcc -vg++ -v#安装版本sudo apt-get install gcc-4.7sudo apt-get install g++-4.7#重置版本cd /usr/binsudo rm gcc #delete the old version linksudo rm g++sudo ln -s gcc-4.7 gcc #set the new version linksudo ln -s g++-4.7 g++

步骤四:安装,编译与测试

启动matlab软件,然后输入如下命令(<matConvNet>表示matconvnet-master的目录)

cd <matConvNet>addpath matlab %添加路径vl_compilenn    %编译vl_testnn %测试CPU模式vl_testnn('gpu', true) %测试GPU模式

如果在编译的时候出现

Error using mex/home/s1nh/project/matconvnet/matlab/mex/.build/vl_imreadjpeg.o: In function `Batch::Item::Item(Batch const&)':vl_imreadjpeg.cpp:(.text+0xbe3): undefined reference to `__warn_memset_zero_len'collect2: error: ld returned 1 exit statusError in vl_compilenn>mex_link (line 547)mex(mopts{:}) ;Error in vl_compilenn (line 498)  mex_link(opts, objs, mex_dir, flags.mexlink) ;

可以看下你是否有将<matConvNet>/matlab添加到路径中(addpath <matConvNet>/matlab)

参考网址:

1)http://www.vlfeat.org/matconvnet/install/

2)http://www.vlfeat.org/matconvnet/install/#compiling

3)http://www.cnblogs.com/denny402/p/5067265.html


0 0