• Caffe + Ubuntu 15.04 + CUDA 7.5 新手安装配置指南


    Caffe + Ubuntu 15.04 + CUDA 7.5 新手安装配置指南

    特:

    0. Caffe 官网地址:http://caffe.berkeleyvision.org/

    1. 本文为作者亲自实验完成,但仅限用于学术交流使用,使用本指南造成的任何不良后果由使用者自行承担,与本文作者无关,谢谢!为保证及时更新,转载请标明出处,谢谢!

    2. 本文旨在为新手提供一个参考,请高手勿要吐槽,有暴力倾向者,请绕道,谢谢!

    3. 本文使用2015年11月8日下载的caffe-master版本,运行平台为:Ubuntu 15.04,CUDA7.5,cuDNN v4,Intel Parallel Studio XE Cluster 2016,OpenCV 3.0.0 (本来准备换Ubuntu 15.10但是一直报错,就没有仔细折腾了,有兴趣的可以试试。)

    4. 安装过程,因为平台不同、设备不同、操作者不同,会遇到各种奇怪的问题和报错信息,请善用Caffe官网的Issues和caffe-user论坛,以及Google和Baidu。参考本指南,请下载最新版caffe-master,新版本很多文件已经变更。

    5. 最后更新时间:2016年3月13日。本次更新以最简化方式呈现如何安装部署最新版Caffe-Master,如需看旧版本,请点击链接。Caffe + Ubuntu 15.04 + CUDA 7.0 新手安装配置指南

    PS:为了方便大家使用,我提供一个百度云盘,用于分享部分安装过程中需要用到的软件包和链接地址(所有软件包仅供学术交流使用,请大家尽量去官网下载。)。百度云盘链接: http://pan.baidu.com/s/1qX1uFHa 密码:wysa

    这篇安装指南,适合零基础,新手操作,请高手勿要吐槽!

    简单介绍一下:Caffe,一种Convolutional Neural Network的工具包,和Alex的cuda-convnet功能类似,但各有特点。都是使用C++ CUDA进行底层编辑,Python进行实现,原作主要部署于Ubuntu,也有大神发布了Windows版,但其他相关资料较少,不适合新手使用,所以还是Ubuntu的比较适合新手。(相对而言)

    本文主要包含5个部分,包括:

    • 第一部分 Linux安装
    • 第二部分 nVidia CUDA Toolkit的安装(*.deb方法)
    • 第三部分 Matlab安装和调试
    • 第四部分 Caffe-Master的安装和测试
    • 第五部分 增加新层(以Fast RCNN提出的 ROIPooling layer 为例)

    第一部分 Linux安装

    Linux的安装,如果不是Linux粉,只是必须,被迫要用它来作作科研什么的,建议安装成双系统,网上方法很多,这里我就不详细写了,安装还算是傻瓜式的,和windows的过程类似,至于语言,如果觉得难度还不够大的话,完全可以装E文版的,甚至日文,德文~~~,我是装的简体中文版,我总共用分出的500G的空间来安装Ubuntu 14.04,这个版本是最新的版本,有个好处是,可以直接访问Windows8.1的NTFS分区,不用做额外的操作,而且支持中文,例如:$ cd /media/yourname/分区名字/文件夹名,当然GUI就更方便了.

    我的分区设置如下:

    根分区: 100G,

    Swap交换分区:128G ,这里设置为何内存一样,据说小于16G的内存,就设置成内存的1.5-2倍

    boot分区:200M

    Home分区:剩余的空间,鉴于Imagenet,PASCAL VOC之类的大客户,建议500G,至少300G以上。

    PS:解决启动分区错误

    基本上,重装起来,都会破坏原来的启动分区表,还原Windows分区的一个简单办法:

    设置:GRUB_DEFAULT = 2

    该方法适用于安装双系统后,"看得到Linux,看不到Windows”的情况,反过来的话,请大家自己百度吧。

    PS:关于我的笔记本的特例,仅供类似设备的参考

    笔记本配置:技嘉P35X v3,i7-4720HQ@2.6G/16G/NVidia GTX 980 4G/Intel HD 4600/128G SSD*2 + 2T SATA *2

    我的两组硬盘SSD和SATA分别做Raid 0,目的是合并逻辑分区,没有考虑冗余备份问题,最后的状态是2个逻辑硬盘块256G SSD + 4T SATA,用的GPA分区,最后导致利用Ubuntu的GRUB启动界面找不到Windows分区。所以上面的方法失效。不过,可以通过笔记本的F12和Bios设置来实现启动分区的选择,并且我用Linux的机会很少,所以也就如此处理了,Linux高手可以自己折腾一下Grub启动。Ubuntu 15.04安装在SATA逻辑分区,SSD分区安装Windows8.1。


    第二部分:nVidia CUDA Toolkit的安装(*.deb方法)

    PS:特别推荐*.deb的方法,目前已提供离线版的deb文件,该方法比较简单,不需要切换到tty模式,因此不再提供原来的*.run安装方法,这里以CUDA 7.5为例。

    一、CUDA Repository

    获取CUDA安装包,安装包请自行去NVidia官网下载。(https://developer.nvidia.com/cuda-downloads

    二、CUDA Toolkit


    第三部分 Matlab安装和调试(以Matlab 2014a为例)

    1.下载

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

    2. 预准备

    选择Mathworks.Matlab.R2014a.Unix.iso - 右键 - 使用磁盘映像挂载器打开”,进入装载的虚拟光盘,拷贝全部文件至home/Matlab 文件夹(PS:我的原则是能GUI就GUI,喜欢CMD的可以参照执行)

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

    3. 授权安装文件夹

    4. 安装

    选项:不使用Internet安装

    序列号: 12345-67890-12345-67890

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

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

    激活文件:license_405329_R2014a.lic

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

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

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

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

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

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

    B. 暴力引用新版本GLIBCXX_3.4.20

    通过命令“strings /usr/local/MATLAB/R2014a/sys/os/glnxa64/libstdc++.so.6 | grep GLIBCXX_” 可以看一下,是否已经成功包含了GLIBCXX_3.4.21,如果已经存在,基本上就成功了。

    6.编译Matlab用到的caffe文件(见第五部分)

    第五部分 Caffe-Master的安装和测试

    对于Caffe的安装严格遵照官网的要求来:http://caffe.berkeleyvision.org/installation.html

    一、安装BLAS

    这里可以选择(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文件夹,为了节省空间,安装完记得把压缩文件给删除喔~),或者其他的ext4的文件系统中。

    很多人说,下载不了,本人于2105年11月8日使用该地址下载最新的2016版本,仍然没有问题,请大家细心操作^_^。

    接下来是安装过程,先授权,然后安装:

    PS: 安装的时候,建议使用root权限安装,过程中会要求输入Linux的root口令。(设置方法:命令行:$ sudo passwd)

    二、MKL与CUDA的环境设置

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

    /opt/intel/lib/intel64

    /opt/intel/mkl/lib/intel64

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

    /usr/local/cuda/lib64

    /lib

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

    三、安装OpenCV 3.0.0

    1. 下载并编译OpenCV(官网原版OpenCV:http://opencv.org/), 或者使用我提供的修改版的安装包(前面的百度云下载)(下面的安装方式使用该包完成,安装包修改了dependencies.sh文件并增加了OpenCV 3.0.0的安装文件)

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

    3. 切换目录Ubuntu3.0安装OpenCV 3.0.0:

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

    四、安装其他依赖项

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

    如果没有权限就chmod a+x glog-0.3.3 -R , 或者索性 chmod 777 glog-0.3.3 -R , 装完之后,这个文件夹就可以kill了。

    2. 其他依赖项,确保都成功

    五、安装Caffe并测试

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

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

    a. 安装前请去先官网下载最新的cuDNN (cudnn-7.0-linux-x64-v4.0-prod)。

    b. 链接cuDNN的库文件

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

    4. 配置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

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

    编译Python和Matlab用到的caffe文件

    六、使用MNIST数据集进行测试

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

    1. 数据预处理

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

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

    3. 训练mnist

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

    测试平台1: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:30s

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

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


    测试平台2:技嘉P35X v3,i7-4720HQ@2.6G/16G/NVidia GTX 980 8G

    MNIST Ubuntu 15.04 on GPU with cuDNN:33s


    测试平台3:Dell 7910,E5 2623v3 3.0G *2 /128G/ NVidia Titan X 12G

    MNIST Ubuntu 15.04 on GPU with cuDNN:23s (真是逆天啊!)


    对比测试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(without cuDNN)的影响,但总体上的结论和Caffe官网的 reference performance numbers 一致,对于普通用户:GTX的性价比高很多。对比试验2展现了Tesla K40的强大性能,相信对于复杂图像,它应该有更强劲的表现。(感谢香港城市大学 Ph.D Jingjing、南京理工大学 Ph.D JinLu、华中科技大学 MS LiuMaolin 提供的测试环境和测试数据。)


    返回

  • 相关阅读:
    百度之星初赛 A
    百度之星 初赛 BC
    2016 百度之星资格赛
    codeforces 749
    codeforces 785
    HDU 4617
    网络流 poj 2195
    网络流 poj 3436 poj 3281
    codeforces 780 C
    idea激活
  • 原文地址:https://www.cnblogs.com/weizc/p/5487679.html
Copyright © 2020-2023  润新知