Ubuntu16.04安装Caffe+CUDA8.0+Matlab2014a+OpenCV3.1.0

一、安装nvidia专用驱动

下载地址:http://www.geforce.cn/drivers

1.安装之前先卸载已经存在的驱动版本:

sudo apt-get remove --purge nvidia*

2.这里是将Ubuntu自带的显卡驱动加入黑名单。 在终端下输入:

sudo gedit /etc/modprobe.d/blacklist.conf

输入密码后在最后一行加上:

blacklist nouveau

在终端输入: sudo update-initramfs -u

重启电脑

3.这里要尤其注意,安装显卡驱动要先切换到文字界面,(按Ctrl+Alt+F1~F6).所以,启动电脑后,先进入文字界面。 然后,输入命令sudo service lightdm stop

现在可以安装驱动了,先进入家目录 cd ~ ,然后: sudo ./NVIDIA-Linux-x86_64-375.20.run,按照提示一步步来完成后,再次重启电脑。

安装完成之后输入以下指令进行验证: sudo nvidia-smi ,若列出了GPU的信息列表则表示驱动安装成功。如下图:

二、安装相关依赖项

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
sudo apt-get install libopenblas-dev liblapack-dev libatlas-base-dev
sudo apt-get install libgflags-dev libgoogle-glog-dev liblmdb-dev
sudo apt-get install python-dev 

三、安装CUDA

官方下载地址:https://developer.nvidia.com/cuda-toolkit

sudo dpkg -i cuda-repo-ubuntu1604-8-0-local_8.0.44-1_amd64.deb
sudo apt-get update
sudo apt-get install cuda 

四、安装cudnn

官方下载地址:https://developer.nvidia.com/cudnn

下载cuDNN5.1之后进行解压:

sudo tar -zxvf ./cudnn-8.0-linux-x64-v5.1.tgz (换成你安装的版本)

进入cuDNN5.1解压之后的include目录,在命令行进行如下操作:

cd cuda/include
sudo cp cudnn.h /usr/local/cuda/include  #复制头文件

再进入lib64目录下的动态文件进行复制和链接:

cd ..
cd lib64
sudo cp lib* /usr/local/cuda/lib64/    #复制动态链接库
cd /usr/local/cuda/lib64/
sudo rm -rf libcudnn.so libcudnn.so.5    #删除原有动态文件 sudo ln -s libcudnn.so.5.0.5 libcudnn.so.5 #生成软衔接 sudo ln -s libcudnn.so.5 libcudnn.so #生成软链接 

五、安装BLAS

这里可以选择(ATLAS,MKL或者OpenBLAS),我这里使用MKL,因为它最快。首先下载并安装英特尔® 数学内核库 Linux* 版MKL(Intel(R) Parallel Studio XE Cluster Edition for Linux 2016),下载链接是:https://software.intel.com/en-us/qualify-for-free-software/student, 使用学生身份(邮件 + 学校)下载Student版,填好各种信息,可以直接下载,同时会给你一个邮件告知序列号。下载完之后,要把文件解压到home文件夹(注意任何一级文件夹不能包含空格,否则安装会失败)

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

七、安装opencv3.1

安装依赖项

sudo apt-get install build-essential
sudo apt-get install cmake git libgtk2.0-dev pkg-config libavcodec-dev libavformat-dev libswscale-dev
sudo apt-get install python-dev python-numpy libtbb2 libtbb-dev libjpeg-dev libpng-dev libtiff-dev libjasper-dev libdc1394-22-dev 

从官网(http://opencv.org/downloads.html)下载Opencv,并将其解压到你要安装的位置,假设解压到了 /home/opencv 。

unzip opencv-3.1.0.zip
sudo cp ./opencv-3.1.0 /home
sudo mv opencv-3.1.0 opencv

安装前准备,创建编译文件夹:

cd ~/opencv
mkdir build
cd build

配置:

sudo apt install cmake
sudo cmake -D CMAKE_BUILD_TYPE=Release -D CMAKE_INSTALL_PREFIX=/usr/local ..

编译: sudo make -j8

-j8表示并行计算,根据自己电脑的配置进行设置,配置比较低的电脑可以将数字改小或不使用,直接输make。

可能出现问题:

这是因为opecv3.0与cuda8.0不兼容导致的。解决办法:修改 ~/opencv/modules/cudalegacy/src/graphcuts.cpp文件内容,如图:

这是因为opecv3.0与cuda8.0不兼容导致的。解决办法:修改 ~/opencv/modules/cudalegacy/src/graphcuts.cpp文件内容,如图:

其中,#if !defined (HAVE_CUDA) || defined (CUDA_DISABLER)||(CUDART_VERSION>=8000)是我们修改的。

以上只是将opencv编译成功,还没将opencv安装,需要运行下面指令进行安装:

sudo make install

运行如下命令,查看opencv是否安装成功

pkg-config --modversion opencv 查看opencv版本,显示3.1.0则安装成功

八、安装Caffe并测试

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

cp Makefile.config.example Makefile.config

配置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接口的支持

PYTHON_LIB := /usr/local/lib

e. 启用OpenCV 3.0, 去掉”#”

OPENCV_VERSION =3

编译caffe-master!!!”-j16”是使用CPU的多核进行编译,可以极大地加速编译的速度,建议使用。也可以”-j8”, 或者直接make all

make all -j16
make test -j16
make runtest -j16

提示:make runtest的时候报了一个错

error while loading shared libraries: libopencv_core.so.3.0: cannot open shared object file: No such file or directory.

解决方案:Check if those libraries are present in your environment variable LD_LIBRARY_PATH. If not, add the directory containing those libraries to this variable. If the libraries are present in /usr/local/lib, add the following to your .bashrc

export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib

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

Caffe默认情况会安装在 Caffe-master,就是解压到那个目录,例如: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

十、编译pycaffe接口

make pycaffe -j16

十一、安装Matlab2014a,并编译matcaffe

Matlab安装和调试(以Matlab 2014a为例)

1.将Mathworks.Matlab.R2014a.Unix.iso解压后得到R2014a_UNIX文件夹,将文件夹中的文件都拷到~/Matlab文件夹中。

2.复制crack/install.jar至 home/Matlab/Java/jar/ 并覆盖源文件(假设crack文件夹在用户家目录下),然后安装。

sudo cp ~/crack/install.jar ~/Matlab/java/jar/
cd ~
chmod a+x Matlab -R cd Matlab sudo ./install 

3.安装过程

选项:不使用Internet安装

序列号: 12345-67890-12345-67890

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

勾选从默认启动路径创建符号链接(实现在任意位置运行matlab启动程序) 选择不使用Internet 手动激活,激活文件:license_405329_R2014a.lic

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

sudo cp ~/crack/Linux/libmwservices.so /usr/local/MATLAB/R2014a/bin/glnxa64/

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

因为Ubuntu 16.04的gcc/g++版本是5.4.0,而Matlab 2014a(2015a)的版本是4.7.x所以在使用matla调用mex文件的时候,基本上都会报错。报错信息如下图:

修改makefile里面的CXXFLAGS,添加CXXFLAGS += -std=c++11.然后重新编译就可以了

编译成功的效果如下图:

至此,Caffe安装的所有步骤完结。哈哈! o^^o

主要参考了以下博客,非常感谢这些博主的分享。

http://blog.csdn.net/shiorioxy/article/details/52652831

http://www.cnblogs.com/xuanxufeng/p/6150593.html

猜你喜欢

转载自www.cnblogs.com/mengmengmiaomiao/p/9182489.html