CUDA8.0+Ubuntu14.04+Caffe安装过程之Caffe安装教程

Caffe的安装相比于CUDA简单不少,但是还是踩了几个坑,下面简单总结下Caffe的安装过程。

配置cuDNN

cuDNN是GPU加速计算深层神经网络的库。
首先去官网(https://developer.nvidia.com/rdp/cudnn-download)下载cuDNN,根据提示下载对应的版本号如下图:
这里写图片描述
为了稳妥期间我没有下载最近的版本,下载了cuDNN5.0。
下载解压,指令如下

tar -zxvf cudnn-8.0-linux-x64-v5.0-ga.tgz

解压后文件包含如下几项:
*cuda/include/cudnn.h
cuda/lib64/libcudnn.so
cuda/lib64/libcudnn.so.5
cuda/lib64/libcudnn.so.5.0.5
cuda/lib64/libcudnn_static.a*
继续执行以下指令:

sudo cp cuda/include/cudnn.h /usr/local/cuda/include/
sudo cp cuda/lib64/libcudnn* /usr/local/cuda/lib64/
sudo chmod a+r /usr/local/cuda/include/cudnn.h
sudo chmod a+r /usr/local/cuda/lib64/libcudnn*

复制到cuda对应的include和lib64文件目录中去。

安装OpenCV3.1

下载及安装

从官网(http://opencv.org/downloads.html)下载OpenCV,并将其解压到你要安装的位置,假设解压到了/home/opencv。
安装前准备,创建编译文件夹:

cd ~/opencv
mkdir build
cd build

配置:

cmake -D CMAKE_BUILD_TYPE=Release -D CMAKE_INSTALL_PREFIX=/usr/local ..

编译:

make -j8 #-j8

-j8表示并行计算,根据自己电脑的配置进行设置,配置比较低的电脑可以将数字改小或不使用,直接输make。
编译make过程中会出现错误,graphcuts中的变量未声明,是因为opencv3.1还不支持cuda8.0,需要对其中的grapcuts.cpp进行更改:
这里写图片描述
然后重新编译一下,即可成功。
以上只是将opencv编译成功,还没将opencv安装,需要运行下面指令进行安装:

sudo make install

测试

首先,新建一个opencv的工作目录,进入后新建一个cpp文件。

mkdir ~/test
cd test
gedit DisplayImage.cpp

编辑如下代码:

#include <stdio.h>
#include <opencv2/opencv.hpp>

using namespace cv;

int main(int argc, char** argv )
{
    if ( argc != 2 )
    {
        printf("usage: DisplayImage.out <Image_Path>\n");
        return -1;
    }

    Mat image;
    image = imread( argv[1], 1 );

    if ( !image.data )
    {
        printf("No image data \n");
        return -1;
    }
    namedWindow("Display Image", WINDOW_AUTOSIZE );
    imshow("Display Image", image);

    waitKey(0);

    return 0;
}

接着,在当前目录下创建CMake编译文件

gedit CMakeList.txt

编辑如下内容:

cmake_minimum_required(VERSION 2.8)
project( DisplayImage )
find_package( OpenCV REQUIRED )
add_executable( DisplayImage DisplayImage.cpp )
target_link_libraries( DisplayImage ${OpenCV_LIBS} )

然后,编译:

cmake .
make

此时已经生成可执行bin文件,下载lena.jpg放在opencv-lena下。执行:

./DisplayImage lena.jpg

最后显示得到结果
这里写图片描述
显示成功,即表明opencv安装成功。

Caffe安装

安装caffe前要安装一些依赖项,照着下面的步骤依次安装即可。
1) 安装依赖项

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

2) 安装BLAS

sudo apt-get install libatlas-base-dev

3) 安装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

4) 继续gflags,glog等依赖项

sudo apt-get install libgflags-dev libgoogle-glog-dev liblmdb-dev

5) 下载caffe并编译
在主目录下新建一个caffe的文件目录,按照下面顺序进行安装配置。

(1)将终端cd到要安装caffe的位置。

(2)从github上获取caffe:

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

注意:若没有安装Git,需要先安装Git:

sudo apt-get install git

(3)因为make指令只能make Makefile.config文件,而Makefile.config.example是caffe给出的
makefile例子,因此,首先将Makefile.config.example的内容复制到Makefile.config:

sudo cp Makefile.config.example Makefile.config

(4)打开并修改配置文件:

sudo gedit Makefile.config #打开Makefile.config文件

针对需求修改几项即可,如下:

a.若使用cudnn,则

将#USE_CUDNN := 1

修改成:

USE_CUDNN := 1

b.若使用的opencv版本是3的,则

将#OPENCV_VERSION := 3去掉修改为:

OPENCV_VERSION := 3

c.若要使用python来编写layer,则

将#WITH_PYTHON_LAYER := 1去掉#号修改为

WITH_PYTHON_LAYER := 1

然后开始编译:

make all -j16
make runtest -j16

编译过程中会报错,如下

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

这是因为没cuda的lib路径没添加上,终端写入命令:

sudo ldconfig /usr/local/cuda/lib64

或者

export LD_LIBRARY_PATH=/usr/local/cuda-8.0/lib64:$LD_LIBRARY_PATH

重新编译即可。
这里写图片描述
到目前位置caffe配置完毕,然后用Mnist数据集进行测试。

Mnist数据测试

安装完成后,下载mnist数据进行测试,过程如下:

1)将终端定位到Caffe根目录

cd ~/caffe

2)下载MNIST数据库并解压缩

./data/mnist/get_mnist.sh

3)将其转换成Lmdb数据库格式

./examples/mnist/create_mnist.sh

4)训练网络

./examples/mnist/train_lenet.sh。最终得到如下的结果
这里写图片描述
我们可以看到最后的精度数值为0.991,说明训练成功。

总结

至此,用两篇博客详细记录了在Ubuntu14.04系统下Cuda和Caffe的配置过程,期间的各种折磨和痛苦无以言表,最终还是成功了,可以开始在此框架下进行深度学习的大展拳脚了。

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值