Caffe + Ubuntu 15.04 + CUDA 7.0 安装以及配置

作为小码农的我,昨天就在装这个东东了,主要参考第一篇博文,但是过程发现很多问题,经过反反复复,千锤百炼,终于柳暗花明,我把这个caffe给搞定了,是故,我发布出来,后之来者,欲将有感于斯文~

本分分为四个部分,在Ubuntu上调试运行成功,第一部分:nVidia驱动和CUDA Toolkit的安装和调试;第二部分
Python安装和调试;第三部分 Matlab安装和调试;第四部分
Caffe的安装和测试。

第一部分:nVidia驱动和CUDA Toolkit的安装和调试

这里以CUDA 7.0为例。

一、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.0

$ export LD_LIBRARY_PATH=${CUDA_HOME}/lib64

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

$ export PATH

第二部分 Python安装和调试

1. 安装IDE运行环境

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

2. iPython NoteBook 安装

另外一个比较推荐的方法是使用iPyhthon NoteBook(基于浏览器的Python IDE),特别是适合需要用Python做教程的老师们,可以直接导出.py, .ipynb, html格式,安装步骤如下:

$ sudo apt-get install -y ipython-notebook pandoc

启动(自动打开浏览器):

$ ipython notebook

一个简单的使用iPython NoteBook生成的html的例子:examples_notebook.html  example_notebook.ipynb

3. 配置和编译pycaffe

第三部分 Matlab安装和调试

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

2. 暴力引用新版本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 然后cd /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.20,如果已经存在,基本上就成功了。

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

第四部分 Caffe的安装和测试

在caffe的github上下载安装包,解压得到caffe-master文件夹。

一、安装BLAS

这里可以选择(ATLAS,MKL或者OpenBLAS),这里使用MKL。

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

$ chmod a+x parallel_studio_xe_2015 -R

$ sudo ./install_GUI.sh

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

To
install the dependencies required from OpenCV, just run the following commands:

sudo
apt-get -y install libopencv-dev build-essential cmake git libgtk2.0-dev pkg-config python-dev python-numpy libdc1394-22 libdc1394-22-dev libjpeg-dev libpng12-dev libtiff4-dev libjasper-dev libavcodec-dev libavformat-dev libswscale-dev libxine-dev libgstreamer0.10-dev
libgstreamer-plugins-base0.10-dev libv4l-dev libtbb-dev libqt4-dev libfaac-dev libmp3lame-dev libopencore-amrnb-dev libopencore-amrwb-dev libtheora-dev libvorbis-dev libxvidcore-dev x264 v4l-utils unzip

  1. Create a temporary directory, which we denote as <cmake_binary_dir>, where you want to put the generated Makefiles, project files as well the object files and output binaries.

  2. Enter the <cmake_binary_dir> and type

    cmake [<some optional parameters>] <path to the OpenCV source directory>
    

    For example

    cd ~/opencv
    mkdir release
    cd release
    cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local ..
    
  3. Enter the created temporary directory (<cmake_binary_dir>) and proceed with:

    make
    sudo make install
  4. 配置openCV参数设置
    sudo gedit /etc/ld.so.conf.d/opencv.conf
    sudo ldconfig
    sudo gedit /etc/bash.bashrc 加入:
    PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/lib/pkgconfig
    export PKG_CONFIG_PATH

    至此,OpenCV安装配置完毕

四、安装其他依赖项

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

$ tar zxvf glog-0.3.3.tar.gz  然后cd进入目录

$ ./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

$ 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。建议安装v3版本,把一下相应6.5改成7.0即可,方法一样。

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

3. 从github上下载caffe,为Caffe-master的文件夹,cd进去,生成Makefile.config配置文件,执行:

$ cp Makefile.config.example Makefile.config

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

sudo gedit 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

温馨提示:ctr+f搜索在后面添加多余的内容

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

BLAS := mkl

e. 配置路径,实现caffe对Python和Matlab接口的支持

PYTHON_LIB := /usr/local/lib

MATLAB_DIR := /usr/local/MATLAB/R2014a

f. 启用python_layer

WITH_PYTHON_LAYER :=1

5. 配置Makefile文件(实现对OpenCV 3.x的支持)

sudo gedit Makefile

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

opencv_core opencv_highgui opencv_imgproc opencv_imgcodecs

6. 编译caffe-master!!!一定要重启电脑,重启电脑,因为显卡驱动装完需要重启才能生效,本人在这里搞了两次,后来才发现问题的本质,哎。"-j8"是使用CPU的多核进行编译,可以极大地加速编译的速度,建议使用。

$ make all -j8

$ make test -j8

$ make runtest -j8

编译Python和Matlab用到的caffe文件

$ make pycaffe -j8

$ make matcaffe -j8

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

cd进入caffe-master目录下

1. 数据预处理

$ sh data/mnist/get_mnist.sh

2. 重建lmdb文件。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的性能。可以看到明显的差别了。

本人在配置caffe环境的过程中,参考了以下博客,特此说明:

【1】http://ouxinyu.github.io/Blogs/20140723001.htmlCaffe + Ubuntu 15.04 + CUDA 7.0 新手安装配置指南

【2】http://blog.csdn.net/yaoxingfu72/article/details/45363097caffe+cuda7.0+opencv3.0.0+mkl
ubuntu14.04配置

【3】http://docs.opencv.org/doc/tutorials/introduction/linux_install/linux_install.html#linux-installation

上一篇:Nginx: could not build the server_names_hash 解决办法


下一篇:Spring学习---JPA学习笔记