【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分区的一个简单办法:

$ sudo gedit etc/default/grub

设置:GRUB_DEFAULT = 2

$ sudo update-grub

该方法适用于安装双系统后,"看得到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)

$ sudo dpkg -i cuda-repo-ubuntu1504-7-5-local_7.5-18_amd64

$ sudo apt-get update

二、CUDA Toolkit

$ sudo apt-get install -y cuda

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

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

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

激活文件:license_405329_R2014a.lic

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

$ sudo cp 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

$ 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++

B. 暴力引用新版本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

通过命令“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版本,仍然没有问题,请大家细心操作^_^。

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

$ tar zxvf parallel_studio_xe_2016.tar.gz(如果你是直接拷贝压缩文件过来的)

$ chmod a+x parallel_studio_xe_2016 -R

$ sh install_GUI.sh

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

二、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

三、安装OpenCV 3.0.0

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

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

$ sudo sh Ubuntu/dependencies.sh

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

$ sudo sh opencv3_0_0.sh

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

四、安装其他依赖项

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

$ tar zxvf glog-0.3.3.tar.gz

$ ./configure

$ make

$ sudo make install

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

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

$ 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 protobuf-compiler

五、安装Caffe并测试

1. 安装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

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

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

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

$ sudo cp lib64/libcudnn.* /usr/local/lib

b. 链接cuDNN的库文件

$ sudo ln -sf /usr/local/lib/libcudnn.so.4.0.7 /usr/local/lib/libcudnn.so.4

$ sudo ln -sf /usr/local/lib/libcudnn.so.4 /usr/local/lib/libcudnn.so

$ sudo ldconfig -v

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

$ cp Makefile.config.example 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的多核进行编译,可以极大地加速编译的速度,建议使用。

$ make all -j16

$ make test -j16

$ make runtest -j16

编译Python和Matlab用到的caffe文件

$ make pycaffe -j16

$ make matcaffe -j16

六、使用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

至此,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提供的测试环境和测试数据。)

参考:

http://blog.csdn.net/greenapple_shan/article/details/50964458

http://download.csdn.net/detail/zhangbo123/8644789

http://blog.csdn.net/hua_007/article/details/42741401

http://www.th7.cn/system/win/201507/121664.shtml

【Caffe安装】Caffe安装(有GPU)--wanglei相关推荐

  1. caffe运行不停止_caffe(gpu)安装过程及问题解决

    2019.12.05 caffe(gpu)安装 参考网址: 教程1: weiliu89/caffe​github.com 教程2: https://blog.csdn.net/yggaoeecs/ar ...

  2. 矩池云上安装caffe gpu教程

    选用CUDA10.0镜像 添加nvidia-cuda和修改apt源 curl -fsSL https://mirrors.aliyun.com/nvidia-cuda/ubuntu1804/x86_6 ...

  3. Caffe学习笔记2--Ubuntu 14.04 64bit 安装Caffe(GPU版本)

    0.检查配置 1. VMWare上运行的Ubuntu,并不能支持真实的GPU(除了特定版本的VMWare和特定的GPU,要求条件严格,所以我在VMWare上搭建好了Caffe环境后,又重新在Windo ...

  4. Ubuntu16.04.1安装Caffe(GPU)

    Caffe的优势: 1.上手快:模型与相应优化均以文本形式而非代码形式给出,caffe给出了模型的定义,最优化设置以及预训练的权重 2.速度快:与CuDNN结合使用,测试AlexNet模型,在K40上 ...

  5. ubuntu16.04 gtx1080ti 安装caffe gpu版本

    最近购置了一个二手的1080ti显卡,打算自己在家搭建一个深度学习训练环境.网上看了很多教程,在这里也感谢大家的分享.本文所用到的安装包都在百度云中,需要的自己下载: 链接:https://pan.b ...

  6. Ubuntu 16.04下安装Caffe(GPU版本 GTX970)

    Ubuntu 16.04下安装Caffe(GPU版本 GTX970) 个人分类: Deep Learning 2018年8月6日更新说明:距上次安装成功没多久,显卡驱动莫名失效,没有解决,索性重装了系 ...

  7. 从零开始安装 Caffe --CPU only----没有 pycaffe

    最近新发了一台服务器, i7-4790/3.6GHz 处理器, 显卡 GTX 1080 Ti Pascal 开始新一轮的装机旅程. 系统是厂家安装的 Ubuntu14.04 下面从零开始安装Caffe ...

  8. Ubuntu 16.04 安装 caffe

    Ubuntu16.04安装Caffe最全最详细教程(CPU) 由于本人电脑不支持GPU,故选择CPU安装caffe.具体查看方式:键入命令: lspci | grep -i nvidia ,若按回车之 ...

  9. caffe学习(三):caffe开发环境安装(Ubuntu)

    以前我在Windows10下搭建了caffe环境(打开链接),但是caffe本身并不是Windows下开发的,而是在Linux下开发的.虽然大神将caffe移植到了Windows,但与之伴随有很多兼容 ...

  10. caffe linux 教程,CentOS7安装Caffe的教程详解

    安装依赖包 sudo yum install protobuf-devel leveldb-devel snappy-devel opencv-devel boost-devel hdf5-devel ...

最新文章

  1. windows 域用户账号验证登陆
  2. mysql列目录_mysql列直接存储图片路径
  3. wcf中的使用全双工通信(转)
  4. C++调用matlab编程
  5. java 多线程同步问题_Java多线程同步问题:一个小Demo完全搞懂
  6. Java 的日子屈指可数,这是真的吗?
  7. node.js 针对不同的请求路径(url) 做出不同的响应
  8. 真安卓机皇!华为P30 Pro包揽《智能硬件质量报告》多项大奖
  9. 【数据结构的魅力】001.认识复杂度二分法异或运算
  10. html批量打印保存到pdf,批量打印成PDF时不用每次点击保存位置的技巧
  11. ArcGIS遇到严重的应用程序错误的解决办法
  12. 识人 用人 激人 留人 斩人
  13. linux服务器设置定时任务,Linux服务器定时任务
  14. 渝粤题库 陕西师范大学 《中国古代文学(四)》作业
  15. 袋鼠云研发手记 | 开源·数栈-扩展FlinkSQL实现流与维表的join
  16. LeaRun快速开发平台,快速开发.net/java项目
  17. 【洛谷2791】 幼儿园篮球题 第二类斯特林数+NTT
  18. 微信版“花呗”全面开放,人人都可以申请!
  19. [笔记]快乐的Linux命令行《二》文件系统中跳转
  20. coursera课程learning how to learn的主要内容-学会学习(一)

热门文章

  1. Mysql表的过滤查询
  2. 海归博士程序员光鲜背后:下车间写代码,体验炼钢灼人的热度
  3. H3C GRE over IPSec配置(comware v7)
  4. poj 1141 Brackets Sequence(线性dp)
  5. struts2第一个程序的详解(配图)
  6. 保护站点子目录的文件
  7. 【LOJ】#2187. 「SHOI2014」三叉神经树
  8. Tomcat 加载外部dll时如何配置
  9. Linux服务器配置Redis并启用PHP支持
  10. 第二次课动手动脑的问题以及课后实验性的问题