Caffe + Ubuntu 15.04(16.04) + CUDA 7.5(8) 新手安装配置指南

时间:2020-12-12 06:26:53

参考欧新宇教程:http://ouxinyu.github.io/Blogs/20140723001.html

特别说明:

本文使用201555日下载的caffe-master版本,运行平台为:Ubuntu 14.04CUDA7.5cuDNN v2(以前一直是cuDNN R1)OpenCV 3.0.0rc1

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

第一部分 Linux安装

第二部分 nVidia驱动和CUDA Toolkit的安装和调试(*.deb方法,特别推荐)

第二部分 nVidia驱动和CUDA Toolkit的安装和调试(*.run方法)

第三部分 Python安装和调试

第四部分 Matlab安装和调试

第五部分 Caffe的安装和测试


第一部分 Linux安装

Linux的安装,总共用分出的450G的空间来安装Ubuntu 14.04

我的分区设置如下:

根分区: \ 100G

Swap交换分区:30G,这里,我设置和我的内存一样,据说小于16G的内存,就设置成内存的1.5-2

boot分区:200M

Home分区:剩余的空间,至少300G以上。

 

安装依赖;

 

sudo apt-get install libprotobuf-dev libleveldb-dev libsnappy-dev libopencv-dev libhdf5-serial-dev protobuf-compiler

sudo apt-get install --no-install-recommends libboost-all-dev

第二部分:nVidia驱动和CUDA Toolkit的安装和调试(*.deb方法)

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

一、CUDA Repository

获取CUDA安装包,安装包请自行去NVidia官网下载。

$ sudo dpkg -i cuda-repo-ubuntu1410-7-0-local_7.0-28_amd64.deb

$ sudo apt-get update

二、CUDA Toolkit

$ sudo apt-get install -y cuda

三、Environment Variables

这种命令行方式的环境变量注销后失效,

$ export CUDA_HOME=/usr/local/cuda-7.5

$ export LD_LIBRARY_PATH=${CUDA_HOME}/lib64

$ PATH=${CUDA_HOME}/bin:${PATH}

$ export PATH

我采用如下方式设置环境变量

参考链接:http://www.th7.cn/system/lin/201505/105807.shtml

设置环境变量

    设置环境变量的方式也很多,这里只介绍其中的一种

    打开文件.profile(只对当前用户生效):

    $sudo gedit ~/.profile

    在文件的末尾添加如下几行:   下面不要复制,手写进去

    export CUDA_HOME=/usr/local/cuda-7.5 
    export LD_LIBRARY_PATH=${CUDA_HOME}/lib64 
    PATH=${CUDA_HOME}/bin:${PATH} 
    export PATH

    保存文件之后在命令行执行一下,让配置内容生效

$sudo source ~/.profile   

【若source 命令找不到,重启电脑sudo reboot就好了】

    到这个地方,cuda已经配置好了。为了验证一下cuda能不能使用,可以编译一下官方自带的samples

    $cd /usr/local/cuda/samples/

    $sudo make

    例子编译好之后,在samples下面的子文件bin/x86_64/linux/release中,运行编译好的可执行程序

    $cd  bin/x86_64/linux/release

    $./deviceQuery

    如果一切正常,那么该程序会打印出本机cuda device的一些信息。

 

第三部分 Python安装和调试

安装IDE运行环境

选择一个适合你的IDE运行环境,我是用的是Spyder,因为它内置了iPython 环境,Caffe有不少的程序是基于iPython 环境完成的。安装方法很简单,直接在Ubuntu软件中心搜索“spyder”即可安装。

第四部分 Matlab安装和调试

参考如下链接:http://m.blog.csdn.net/article/details?id=41698285

一、下载Matlab2014Linux版本及破解文件。

二、下载完成后将iso文件挂载到Linux

sudo mkdir /media/matlab

Sudomount -o loop [path][filename].iso /media/matlab  iso的具体路径】

cd /media/matlab

sudo ./install

步骤:

No Internet---yes--

进行安装。

00003、安装过程中使用crack 中的readme.txt中的序列号

R2014b:29797-39064-48306-32452

四、破解

1 安装完成后使用crack下的license进行激活;

/media/matlab/crack/licence.lic

2 crack文件夹下的libmwservices.so copy/usr/local/MATLAB/R2014b/bin/glnxa64

Sudo cp libmwservices.so /usr/local/MATLAB/R2014b/bin/glnxa64

五、完成安装,命令行下到/usr/local/MATLAB/R2014b/bin目录下,使用sudo ./matlab即可启动使用。

 

第五部分 Caffe的安装和测试

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

一、a, MKL

这里可以选择(ATLASMKL或者OpenBLAS),我这里使用MKL,首先下载并安装英特尔®数学内核库 Linux*MKL,下载链接是:https://software.intel.com/en-us/intel-education-offerings, 请下载Student版,先申请,然后会立马收到一个邮件(里面有安装序列号),打开照着下载就行了。下载完之后,要把文件解压到home文件夹(或直接把tar.gz文件拷贝到home文件夹,为了节省空间,安装完记得把压缩文件给删除喔~),或者其他的ext4的文件系统中。

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

 

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

这里为zipsx15l.iso,复制并提取,提取后的文件夹有install_GUI.sh

$ chmod a+x parallel_studio_xe_2015 -R    chmod a+xzipsx15l  -R  修改文件夹zipsx15l的权限

$ sudo ./install_GUI.sh      sudo  sh install.sh  

接着是以下列安装操作:

1.选择用license文件激活,

2.激活文件为parallel_studio_tbe2015.lic

 Accept---3(license文件激活)--1(不在线激活)---输入parallel_studio_tbe2015.lic的路径---1  (愿意参加并提高软件)---后面默认enter

此不可能有系统与paralell不支持的情况,以及缺少32库的问题i

###sudo apt-get install ia32-libs

###sudo apt-get install g++-multilib解决

 

二、MKLCUDA的环境设置

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

 

B  安装atlas

Sudo apt-get install libatlas-base-dev

即可,不需要配置环境变量

三、安装OpenCV 3.0.0

1. 下载并编译OpenCV(官网原版OpenCVhttp://opencv.org/), 或者使用本站提供的修改版的安装包 Install-OpenCV-master (下面的安装方式使用该包完成,安装包修改了dependencies.sh文件并增加了OpenCV 3.0.0的安装文件,同时保留了原来的2.3x2.4x版)

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

   【【先修改 opencv2_4_10.sh  ,在Ubuntu/2.4/opencv2_4_10.sh,,注释wget下载ipencv]]]

$ sudo sh Ubuntu/dependencies.sh

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

$ sudo sh opencv3_0_0-rc1.sh

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

四、安装其他依赖项

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

$ tar zxvf glog-0.3.3.tar.gz   

cd glog-0.3.3   进入解压后的文件夹

$ ./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    【【【有问题时 -y 可以去掉】】

$ sudo apt-get install -y libgflags-dev libgoogle-glog-dev liblmdb-dev 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

$ sudo apt-get install -y protobuf-c-compiler protobuf-compiler

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

a. 安装cuDNN

该改版本caffe-master默认支持cudnn-6.5-linux-x64-v2,使用cudnn-6.5-linux-R1会报错,安装前请去先官网下载最新的cuDNN【【解压后下列文件都在cuda中】

$ sudo cp cudnn.h /usr/local/include   /cuda/include/cudnn,sh

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

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

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

b. 链接cuDNN的库文件

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

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

$ sudo ldconfig -v

 

Linux环境下创建和删除软链接

ln -s /home/zhenwx/htccode-v1/    /home/zhenwx/htccode       建立/home/zhenwx/htccode-v1的软连接

linux下的软链接类似于windows下的快捷方式

 ln -s /home/zhenwx/htccode-v1/    /home/zhenwx/htccode     中的/home/zhenwx/htccode-v1/就是源文件,/home/zhenwx/htccode      是链接文件名,其作用是当进入/home/zhenwx/htccode     目录,实际上是链接进入了/home/zhenwx/htccode-v1/目录

如上面的示例,当我们执行命令   cd /home/zhenwx/htccode/的时候 实际上是进入了/home/zhenwx/htccode-v1/

 值得注意的是执行命令的时候,应该是/home/zhenwx/htccode-v1/ 目录已经建立,不要创建目录/home/zhenwx/htccode/

删除软链接:

   rm -rf  /home/zhenwx/htccode 注意不是rm -rf  /home/zhenwx/htccode/

下载caffe

Cd 到根目录,git命令会自动下载到当前所在目录

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

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

$ cp Makefile.config.example Makefile.config

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

a. 启用CUDNN去掉"#"(目前caffe-master仍然只支持R1版本)

USE_CUDNN := 1

b. 启用GPU添加注释"#"

# CPU_ONLY := 1

c. 配置一些引用文件(增加部分主要是解决新版本下,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

d. 启用Intel Parallel Studio XE 2015 Professional Edition for C++ Linux

BLAS := mkl

e. 配置路径,实现caffePythonMatlab接口的支持

PYTHON_LIB := /usr/local/lib

MATLAB_DIR := /usr/local/MATLAB/R2014a   修改第一个即可

********

5. 配置Makefile文件(实现对OpenCV 3.x的支持)[[只针对opencv 3.]

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

opencv_core opencv_highgui opencv_imgproc opencv_imgcodecs

***********

新版caffe,不用修改Makefile文件,因为已经加入这些模块

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

$ sudomake all -j8

$ sudomake test -j8  若出错,加sudo就编译过去了

$ make runtest -j8 //可能有编译失败的情况,我编译了的1515个失败了10个,有人说是boost/库应降到1.55即可,尚未处理。重新编译时make clean

https://github.com/BVLC/caffe/issues/1252

编译PythonMatlab用到的caffe文件

$ sudomake pycaffe -j8

$ sudomake matcaffe -j8

 

PS:问题

编译pycaffe出现问题:

Sudo gedit  /etc/profile

加入  export PYTHONPATH=/home/username/caffe/python

编译matcaffe可能出现的问题:

若出现gcc版本问题,解决办法为:

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

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

$ sudo apt-get install -y gcc-4.7

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

(2). 链接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++

# 查看是否连接到4.7.x

 ls –al gcc g++

 gcc --version g++ --version

##########

 

7.测试caffe

Cd caffe/python $python

>>import caffe

>>>

导入成功:即没有任何报错

 

PS:

若出现import  caffe时,no modul ,或缺少libcudnn.so.4.  No file ,

cd cuda

sudo cp */*.h /usr/local/cuda/include/

sudo cp */libcudnn* /usr/local/cuda/lib64/

sudo chmod a+r /usr/local/cuda/lib64/libcudnn*

sudo  ldconfig -v

8.设置PYTHON路径方法

export PYTHONPATH=/home/username/caffe/python

查看路径

echo $PYTHONPATH

使得 import caffe时直接在根目录即可成功:

username@username:~$python

>>import caffe

>>

六、使用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)leveldblmdb,根据自己需要选择不同输入吧。

$ sh examples/mnist/create_mnist.sh

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

3. 训练mnist

$ sh examples/mnist/train_lenet.sh

至此,Caffe安装的所有步骤完结

 

PS:测试mnist时可能出现的问题

(1)数据预处理
       :新版caffe都需要从根目录上执行,如果使用下列命令执行: # cd examples/mnist # sudo sh ./create_mnist.sh     可能会遇到这个错误:./create_mnist.sh: 16: ./create_mnist.sh: build/examples/mnist/convert_mnist_data.bin: not found

  A. 从根目录执行,或者把create_mnist.sh文件拷贝到caffe

B. Make clean后重新执行一边一下命令

$ sudo make all -j8

$ sudo make test -j8

$ make runtest -j8

 sudomake pycaffe -j8

$ sudomake matcaffe -j8


      (3)训练mnist
      如果没有GPU,只有CPU的话,需要先修改examples/mnist目录下lenet_solver.prototxt文件,solver_mode:GPU改为     solver_mode:CPU,修改后结果如下所示:# solver mode: CPU or GPU solver_mode: CPU    修改时可以使用vi编辑命令,如果是只读文件,不能编辑,可以用sudo命令,比如:sudo vi lenet_solver.prototxt (责任编辑:赵红霞)

 

PS

1.Creating lmdb...

build/examples/mnist/convert_mnist_data.bin: error while loading shared libraries: libcudart.so.7.5: cannot open shared object file: No such file or directory

sudo ldconfig /usr/local/cuda/lib64

 

2.error while loading shared libraries: libcudart.so.6.5: cannot open shared object file: No such file

 

sudo cp /usr/local/cuda-6.5/lib64/libcudart.so.6.5 /usr/local/lib/libcudart.so.6.5 && sudo ldconfig

sudo cp /usr/local/cuda-6.5/lib64/libcublas.so.6.5 /usr/local/lib/libcublas.so.6.5 && sudo ldconfig

sudo cp /usr/local/cuda-6.5/lib64/libcurand.so.6.5 /usr/local/lib/libcurand.so.6.5 && sudo ldconfig

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 


When I run testing routine, facing error: error while loading shared libraries: libcudart.so.6.5: cannot open shared object file: No such file or directory.

Solution for this, copy respect library to /usr/local/lib:

sudo cp /usr/local/cuda-6.5/lib64/libcudart.so.6.5 /usr/local/lib/libcudart.so.6.5 && sudo ldconfig

sudo cp /usr/local/cuda-6.5/lib64/libcublas.so.6.5 /usr/local/lib/libcublas.so.6.5 && sudo ldconfig

sudo cp /usr/local/cuda-6.5/lib64/libcurand.so.6.5 /usr/local/lib/libcurand.so.6.5 && sudo ldconfig