ubutu14.04LTS+opencv2.4.9+matlab 2014a+caffe+cuDNN

caffe配置过程:

      这份教程,不是自己写的,里面改了些东西参照了很多教程,也做过很多尝试,之前从来没有接触过linux,所以每一步都会碰到问题,然后百度,解决。过程真的痛苦,但是乐在其中。,因为我觉得这是成功的第一步,很多东西需要自己遇到,才会越来越熟。下一步工作就是把rcnn的代码跑通,并且换上自己的数据集跑,再接合spp-net实验效果进行对比。话说spp-net效果比rcnn快100倍,但实验还在做,实验结果晚点再补上!!

 

一、安装Ubuntu14.04双系统

二、安装cuda6.5

三、安装opencv2.4.9

四、安装MATLAB2014a

五、安装caffe

​   安装cU-DNN(配置过程还有一点小问题,还没有解决。等解决了再补上这部分。!!

一、安装Ubuntu14.04双系统

下面讲第一部分,硬盘安装Ubuntu14.04双系统。

采用硬盘安装。安装之后也没什么问题。参考教程:http://www.doudouxitong.com/anzhuang/2014/0718/2584.html

1.下载Ubuntu系统镜像

http://www.ubuntu.com/download/desktop/

2.为Ubuntu系统预留硬盘空间

可以使用分区助手或者系统自带的磁盘管理工具删除一部分分区。

我用的是系统自带的磁盘管理工具,

选择要删除的分区,点右键,选择删除卷即可。删除之后,可以看到一个未使用分区。

3.安装easyBCD

安装easyCD,以管理员身份打开软件,选择语言为中文。在左侧工具栏中选择添加新条目。选择NeoGrub,点击安装。

然后点击配置,会弹出一个menu.list文本文件,在后面加上下面内容:

title Install Ubunbtu

root (hd0,1)

kernel (hd0,1)/vmlinuz.efi boot=casperiso-scan/filename=/ubuntu-14.04-desktop-amd64.iso ro quiet splashlocale=zh_CN.UTF-8

initrd (hd0,1)/initrd.lz

注意!(hd0,1)表示我C盘的位置,在磁盘管理工具里面可以看到,我C盘前面还有一个小的分区,因此C盘的位置是(hd0,1)。至于为什么要这么写,下一步将有说明。

4.准备安装文件

解压下载得到的Ubuntu14.04系统镜像文件ubuntu-14.04.1-desktop-amd64.iso

将解压文件中的.dsk文件夹,casper文件夹中的vmlinuz.efi initrd.lz复 制到C盘根目录,同时将系统镜像文件也复制到C盘根目录。当然也可以将这些文件复制到其他盘根目录,相应的(hd0,1)就要改为对应的盘的位置。一般D 盘是(hd0,4),E盘是(hd0,5)。一次类推。hd0表示第一块硬盘,如果电脑安装有多块硬盘,相应的要改为hd1,hd2……。

5.开始安装

进行上面几步,安装的准备工作已经完成。下面进入安装。

重启电脑,在系统选择界面会多出一个“NeoGrub引导加载器”,选择这个,会出现“Install Ubuntu”选项,选择它。电脑就开始进入安装界面。

注意:此处可能会有错误提示:File not found。应该是前面menu.list文件中写的放置安装文件的盘的位置没有写好,这时不用重启电脑,根据电脑屏幕上的提示可以用如下方法进行修改。

选择”Install Ubuntu“,按”e“,用”↑“”↓“选择配置文件,修改盘符为安装文件所在的盘。修改完毕之后,按”b“再次进入安装界面。

进入安装界面后,会显示Ubuntu系统桌面,不要着急安装。首先要用”crtl“+”alt“+”T“打开终端,在终端输入sudoumount –l /isodevice  取消系统光盘镜像挂载.注意:是字母l,不是1也不是i!

双击桌面上的安装“安装Ubuntu14.04 LTS”图标,开始安装.

安装过程中不要联网,这样会延长安装时间!

不要选择安装第三方软件,在选择安装类型时,选择”其他选秀”(图片摘自引用的博客文章,如有侵权,马上删除).

然后会显示分区状态,在这一步,可以对未使用的分区进行分区(图片摘自引用的博客文章,如有侵权,马上删除).

对空闲分区进行分区操作,选择空闲分区,然后点击”+”,然后选择分区大小和分区类型.

     在这里很多人分了很多区,比如/swap分区,/boot/home/usr。之前我第一次安装ubuntu时是分了几个区,后来发现一点都不方便。后来重装系统后,直接分在/分区下。其他的系统会自己分配。

{我使用130G的内存用来安装Ubuntu系统,以我的分区情况为例进行说明,如果不合理,请大家指正,我也是新手.

首先是”/”分区,大概30G

然后”交换空间swap”,大概2G

然后是”/boot”分区,大概200M

然后是”/home”分区,大概50G

然后是”/usr”分区,大概50G

/boot分区用来安装系统引导项,所以一般200M,/home分区一般用来存放下载文件,图片,文档等,所以尽量大一点./usr分区一般用来安装软件,所以也尽量大一点.}

分区完毕之后,选择安装引导器的位置为/boot分区所在的盘符,便于后面设置从win7引导Ubuntu

然后开始安装

喝杯茶,上个厕所,一会就好.安装完之后会提示重启,选择重启.

重启之后会直接进入win7系统.下面设置系统引导项.

以管理员身份打开easyBCD,点击左边工具列表”添加新条目”——>“Linux/BCD”。选择类型为”GRUB 2”,名称可以自己改,驱动器选择ubuntu系统的/boot分区所在的盘符,然后点“添加条目”。

在“NeoGrub”中删除安装引导,然后点击左边工具列表“编辑引导菜单”,对引导菜单进行管理,可以看到win7和ubuntu系统的引导项即可。

重启电脑,在系统选择界面选择ubuntu系统,顺利进入Ubuntu14.04系统。自此,win7下硬盘安装ubuntu14.04双系统完成!

ps:亲测本方法同样适用于windowsserver2008.

二、安装cuda6.5

1.验证系统

安装前,首先要验证一下系统是否符合cuda6.5的安装条件

1.验证显卡是否支持cuda,终端输入命令:lspci | grep –i nvidia

终端会显示显卡型号,在https://developer.nvidia.com/cuda-gpus中查找,是否有你的显卡型号,只要存在,就表明显卡支持cuda,同时还可以查看显卡的计算能力,数值越大越好。

2.查看系统类型,命令行输入:uname -m && cat /etc/*release

显示有x86_64,说明系统是x86构架64位系统

3.查看gcc版本,命令行输入:gcc --version

Ubuntu14.04是默认安装的。

2.下载cuda6.5和NVIDIA显卡驱动

cuda6.5下载地址:https://developer.nvidia.com/cuda-downloads

NVIDIA显卡驱动下载地址:http://www.geforce.cn/drivers

根据系统选择相应的安装文件,我是Ubuntu14.04 64位系统,可以选择下载在线安装包(.deb文件)或者离线完整安装包(.run)。我选择的是离线包。大概900多M。

在驱动下载页面,选择你的显卡系列和系统,然后搜索,下载。

下载完之后,建议最好检查一下md5,查看文件是否正确,以免安装时出现错误。

3.安装前的准备——在tty中显示中文

安装Ubuntu14.04系统后,因为系统语言选择为中文,所以用“crtl”+“alt”+“F1”打开tty1终端时,会发现中文显示是乱码。而安装NVIDIA显卡驱动时需要在tty1终端运行,所以为了方便。首先要解决这个问题。

首先确保系统已经选好了源,并且已经更新软件列表。如果没有,打开系统设置,选择软件和更新,选择下载网址(推荐163.com,aliyun.com)。然后点关闭,系统会自动更新软件列表。

1.安装fbterm

打开终端(ctrl+alt+T),输入:sudo apt-get install fbterm

2.编辑.fbtermrc文件

切换到tty,输入:sudo vi .fbtermrc

按“a”进入编辑模式,输入:

font-size=16
      text-codings=utf8

按“esc”退出编辑,再按“shift”+“:”,然后输入wq。保存输入并退出。

3.打开fbterm

在tty1终端输入:sudo fbterm

打开fbterm,这时候就可以显示中文了。

为了方便后面编辑文件文件,建议安装vim。sudo apt-get install vim

4.安装NVIDIA显卡驱动

虽然cuda6.5自带显卡驱动,但是建议还是单独安装一下显卡驱动。

1.切换到tty1终端,sudo fbterm

2.退出GUI,sudo stop lightdm

3.将Ubuntu系统自带的显卡驱动禁用,sudo vim/etc/modprobe.d/nvidia-graphics-drivers.conf

在文件输入:blacklist nouveau

保存退出。

sudo vim /etc/default/grub

在文件末尾添加:rdblacklist=nouveau nouveau.modeset=0

保存退出。

4.官网提供的操作

sudo mv /boot/initramfs-$(uname -r).img/boot/initramfs-$(uname -r)-nouveau.img
      sudo dracut/boot/initramfs-$(uname -r).img $(uname -r)

sudo update-initramfs –u

前两条是官网安装指导文件提供的操作,第一条会提示没有找到文件,第二条会提示没有这条命令。第三条是博客http://www.cnblogs.com/liangliangdetianxia/p/3980103.html中提出的。对这一步不是很懂,如果有谁知道,恳请指导。不管这三条命令有没有用,我都运行了,后面也成功安装。

5.安装驱动

切换到显卡安装文件所在的目录(我是直接放在home目录下的) cd /home/fische

不知道文件名,可以运行 ls  查看当前目录下的文件

安装命令:sudo sh./NVIDIA-Linux-x86_64-340.46.run

随后会出现NVIDIA显卡安装界面,基本没什么大问题,按照提示安装即可。安装过程中可能会提示重启,重启之后重新切换回tty1,再次运行安装命令。

5.安装cuda6.5

安装完NVIDIA驱动,下一步就是安装cuda6.5。切换到cuda6.5文件所在目录,建议和驱动文件放在一起,免得麻烦。

安装命令:sudo sh./cuda_6.5.14_linux_64.run

随后会出现安装选择,如果已经进行第5步,安装好驱动,在提示是否安装驱动是选择no,其他都选择yes即可。

安装完毕,一般会提示缺少一些库。下面安装必要的库:

sudo apt-get install freeglut3-devbuild-essential libx11-dev libxmu-dev libxi-dev libgl1-mesa-glx libglu1-mesalibglu1-mesa-dev

自此,cuda6.5应该安装完毕。可以回到图形界面继续下面操作:sudo start lightdm

6.修改系统环境变量

sudo vim ~/.bashrc

在最后加上:

export PATH=/usr/local/cuda-6.5/bin:$PATH
      exportLD_LIBRARY_PATH=/usr/local/cuda-6.5/lib64:$LD_LIBRARY_PATH

sudo ldconfig

7.将cuda-samples复制到/home目录下

一般用run文件安装,会自动完成这一步,但为了验证系统环境变量是否设置正确,可以再进行一下这一步

cuda-install-samples-6.5.sh ~

8.验证cuda是否安装正确

1.验证驱动是否安装正确

cat /proc/driver/nvidia/version

正常情况会显示驱动版本

2.验证nvcc

nvcc –V

一般情况,会提示nvcc没有安装,因为cuda-toolkit没有安装完整。按照提示安装即可

sudo apt-get install nvidia-cuda-toolkit

安装完后,再次验证nvcc

3.编译cuda-samples

切换到cuda-samples所在目录cd /home/fische/NVIDA_CUDA-6.5_Samples

编译 make (如果提示没有make命令,请安装cmake。sudo apt-get install cmake)

编译完毕,切换release目录cd /bin/x86_64/linux/release

运行实例 ./deviceQuery

自此,cuda6.5已经安装完毕!

三、安装opencv2.4.9

1.使用官网安装包手动安装

1.下载opencv2.4.9

下载地址:http://opencv.org/

目前最新版Opencv3.0 alpha版已经出来了,大家也可以试一下。

2.安装必要的依赖库

sudo apt-get install build-essential libgtk2.0-devlibavcodec-dev libavformat-dev libjpeg62-dev libtiff4-dev libswscale-devlibjasper-dev libopencv-dev pkg-config python-dev python-numpy

3.安装opencv

切换到opencv安装包所在目录:cd /home/fishce

将下载好的opencv安装包解压:unzip opencv-2.4.9.zip

进入解压目录:cdopencv-2.4.9

新建release目录:mkdir release

进入release:cd release

cmake -DCMAKE_BUILD_TYPE=RELEASE -DCMAKE_INSTALL_PREFIX=/usr/local ..

make

sudo make install

4.配置library

打开/etc/ld.so.conf.d/opencv.conf

sudo vim/etc/ld.so.conf.d/opencv.conf

在文件中输入  /usr/local/lib

保存退出

sudo ldconfig

自此opencv2.4.9安装完毕!

2.使用github安装脚本进行安装

1.下载安装脚本

下载地址:https://github.com/jayrambhia/Install-OpenCV

2.解压脚本,并进入系统对应的安装文件夹

unzipInstall-Opencv-master.zip

cdInstall-Opnecv-master/Ubuntu

3.安装依赖库,并进行安装

sudo ./dependencies.sh

sudo2.4/opencv2_4_9.sh

-荐使用第二种方式进行安装,比较简单,自动安装。如果安装不成功,可以考虑第一种方式。

四、安装MATLAB2014a

安装MATLAB

1.下载

由于该软件为商业软件,请大家自行寻找,安装学习,并确保不使用做商业目的,下载24小时删除......

2. 预准备

选择Mathworks.Matlab.R2014a.Unix.iso- 右键 - 使用磁盘映像挂载器打开”

进入装载的虚拟光盘,拷贝全部文件至home/Matlab 文件夹

(PS:我的原则是能GUI就GUI,喜欢CMD的可以参照执行)

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

$ sudo cp install.jar /home/Matlab/java/jar/

3. 授权安装文件夹

$ chmod a+x Matlab -R

4. 安装

$ sudo ./install

选项:不使用Internet安装

序列号: 12345-67890-12345-67890

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

激活文件:license_405329_R2014a.lic

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

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

安装完毕,程序默认启动路径:

/usr/local/MATLAB/R2014a/bin/matlab

5.创建快捷方式

1. 软件中心搜索matlab

2. 选择安装目录:/usr/local/MATLAB/R2014a

 

五、安装caffe

1.安装Intel mkl

首先下载Intel®Parallel Studio XE 2015 Professional Edition for C++ Linux,Intel给学生免费提供官方正版软件,只需要申请就可以了。大赞!我下载的是cpp_studio_xe_2013_sp1_update3.tgz。

1.切换到安装文件所在目录: cd /home/fische

2.解压安装文件:tar zxvf cpp_studio_xe_2013_sp1_update3.tgz

3.修改文件读写权限: sudo chomd a+x cpp_studio_xe_2013_sp1_update3 –R

4.切换到解压文件目录: cd cpp_studio_xe_2013_sp1_update3

5.进行安装: sudo ./install_GUI.sh

然后会出现安装的图形界面,输入申请软件时,Intel给你的邮件中的安装序列号,安装即可。

2.设置cuda6.5和mkl环境

1.切换到/etc/ld.so.conf.d文件夹: cd /etc/ld.so.conf.d

2.编辑cuda.conf文件 sudo vim cuda.conf

在文件中输入以下内容:

/usr/local/cuda/lib64

/lib

3.编辑intel_mkl.conf文件 sudo vim intel_mkl.conf

在文件中输入以下内容:

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

4.完成lib文件的连接操作,执行 :sudo ldconfig –V

3.安装caffe

1.安装依赖项:sudo apt-get install libprotobuf-devlibleveldb-dev libsnappy-dev libopencv-dev libboost-all-dev libhdf5-serial-dev

2.编辑Makefile.config

切换到caffe文件目录:cd /home/fische/caffe-master

复制Makefile.config.examples文件:cp Makefile.config.examples Makefile.config

编辑Makefile.config文件:sudo vim Makefile.config

根据自己的实际情况,修改配置文件

注意:如果在安装mkl的时候没有选择默认安装文件夹,请根据实际情况,修改BLAS_INCLUDEBLAS_LIB文件夹。

3.编译caffe

make all

make test

make runtest

ps提示“src/caffe/util/math_functions.cu(140):error: calling a host function("std::signbit ") from aglobalfunction("caffe::sgnbit_kernel ") is not allowed”
解决办法:

修改 ./include/caffe/util/math_functions.hpp 224

删除(注释)using std::signbit;

修改:DEFINE_CAFFE_CPU_UNARY_FUNC(sgnbit,y[i] = signbit(x[i]));

为:DEFINE_CAFFE_CPU_UNARY_FUNC(sgnbit,y[i] = std::signbit(x[i]));

来自博客:http://www.cnblogs.com/liangliangdetianxia/p/3980103.html

4.编译MATLAB wrapper

----------------------------

. 六安装cuDNN

cuDNN 介绍和下载地址:cuDNNIntrodution and Download(下载在最下面,需要注册)

$ sudo cp cudnn.h /usr/local/include

$ sudo cp libcudnn.so /usr/local/lib

$ sudo cp libcudnn.so.6.5 /usr/local/lib

$ sudo cp libcudnn.so.6.5.18 /usr/local/lib

c. 链接cuDNN的库文件

$ sudo ln -sf /usr/local/lib/cudnn.so.6.5.18/usr/local/lib/libcudnn.so.6.5

$ sudo ldconfig -v

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

$ make all -j8

$ make test -j8

$ make runtest -j8

编译Python和Matlab用到的caffe文件

$ make pycaffe -j8

$ make matcaffe -j8

七、使用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/leveldb文件。Caffe支持三种数据格式输入网络,包括Image(.jpg, .png等),leveldb,lmdb,根据自己需要选择不同输入吧。

$ sh examples/mnist/create_mnist.sh

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

3. 训练mnist

$ sh examples/mnist/train_lenet.sh

至此,Caffe安装的所有步骤完结,下面是一组简单的数据对比,实验来源于MNIST数据集,主要是考察一下不同系统下CPU和GPU的性能。可以看到明显的差别了,虽然MNIST数据集很简单,相信复杂得数据集,差别会更大,Ubuntu+GPU是唯一的选择了。

测试平台:i7-4770K/16G/GTX 770/CUDA 6.5

MNIST Windows8.1 on CPU:620s

MNIST Windows8.1 on GPU:190s

MNIST Ubuntu 14.04 on CPU:270s

MNIST Ubuntu 14.04 on GPU:160s

MNIST Ubuntu 14.04 on GPU with cuDNN:32s

Cifar10_full on GPU wihtout cuDNN:73m45s = 4428s (Iteration 70000)

Cifar10_full on GPU with cuDNN:20m7s = 1207s (Iteration 70000)

 

对比测试1:2*E5-2620(12CPUs)/128G/Tesla K20M/CUDA5.5/CentOS 6.4

MNIST CentOS 6.4 on GPU:294s

对比测试2:Tesla K40M/CUDA6.5/ubuntu 14.04

MNIST on GPU with cuDNN:30s

对比测试3:GTX 660/CUDA6.5/ubuntu 14.04

MNIST on GPU with cuDNN:49s

对比试验1是一个不太公平的测试,毕竟性能差很大,很可能不单单是由Tesla K20s 和GTX 770带来的,也可能是因为CentOS或者是CUDA5.5的影响,但总体上的结论和Caffe官网的 referenceperformance numbers 一致,对于普通用户:GTX的性价比高很多。对比试验2展现了Tesla K40的强大性能,相信对于复杂图像,它应该有更强劲的表现。(感谢香港城市大学 Ph.D Jingjing、南京理工大学 Ph.DJinLu、华中科技大学 MS LiuMaolin 提供的测试环境和测试数据。)

 

 

你可能感兴趣的:(ubutu14.04LTS+opencv2.4.9+matlab 2014a+caffe+cuDNN)