Ubuntu搭建Caffe深度学习

本文所采用的环境为:Ubuntu16.04 64位。

1、安装caffe相关依赖项:

sudo apt-get install libprotobuf-dev libleveldb-dev libsnappy-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

2、安装Python相关依赖库:

sudo apt-get install 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

3、安装驱动。

     驱动可以在NVIDIA官网下载:http://www.nvidia.com/Download/index.aspx?lang=en-us,选择适合自动的电脑的驱动,查看电脑驱动的方式:

lspci | grep -i vga:

00:02.0 VGA compatible controller: Intel Corporation 4th Gen Core Processor Integrated Graphics Controller (rev 06)
01:00.0 VGA compatible controller: NVIDIA Corporation GK107GLM [Quadro K1100M] (rev a1)

    也可以通过Ubuntu自带的附加驱动进行下载,这种方式不容易出错。

    在附加驱动中选择电脑的驱动版本。安装成功后,通过:

sudo nvidia-smi

    查看是否安装成功。若列出了GPU的信息列表则表示驱动安装成功。如下图:

 3、安装CUDA

   CUDA是NVIDIA的编程语言平台,想使用GPU就必须要使用cuda。
(1)下载CUDA
   首先在官网上(https://developer.nvidia.com/cuda-downloads)下载CUDA:
   

   下载完成通过下面指令进行安装:

sudo sh cuda_8.0.61_375.26_linux.run
    注意:执行后会有一系列提示让你确认,但是注意,有个让你选择是否安装Linux-x86_64 375.26驱动时,一定要选择否。因为前面我们已经安装了更加新的Linux-x86_64 375.26,所以这里不要选择安装。其余的都直接默认或者选择是即可。其它的安装默认方式就可以了。

    (2)配置环境

    打开~/.bashrc文件:

sudo nano ~/.bashrc

在文件的末尾加入:

export PATH=/usr/local/cuda-8.0/bin${PATH:+:${PATH}}
export LD_LIBRARY_PATH=/usr/local/cuda8.0/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}

    (3)测试CUDAsamples

 cd /usr/local/cuda-8.0/samples/1_Utilities/deviceQuery
 make
 sudo ./deviceQuery

如果显示一些关于GPU的信息,则说明安装成功。

(4)配置cuDNN

   cuDNNGPU加速计算深层神经网络的库。首先去官网 https://developer.nvidia.com/rdp/cudnn-download 下载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 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.1.10 libcudnn.so.5 #生成软衔接,注意自己下载的版本号
sudo ln -s libcudnn.so.5 libcudnn.so      #生成软链接进入lib64目录下的动态文件

4 安装opencv2.4.13,

   参考:http://blog.csdn.net/lovelyaiq/article/details/11798791

配置caffe

   (1)使用Git直接下载Caffe非常简单,或者去https://github.com/BVLC/caffe下载。由于我习惯去github上找代码,所以就直接去下载的源码。

   下载完成后,会在家目录下的下载里找到caffe-master.zip,用unzip命令解压到家目录下,然后重命名为caffe.

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

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

 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 

d.重要的一项 :

将 # Whatever else you find you need goes here. 下面的

INCLUDE_DIRS := $(PYTHON_INCLUDE) /usr/local/include
LIBRARY_DIRS := $(PYTHON_LIB) /usr/local/lib /usr/lib 

修改为:

INCLUDE_DIRS := $(PYTHON_INCLUDE) /usr/local/include /usr/include/hdf5/serial /opt/Opencv2/include
LIBRARY_DIRS := $(PYTHON_LIB) /usr/local/lib /usr/lib /usr/lib/x86_64-linux-gnu /usr/lib/x86_64-linux-gnu/hdf5/serial /opt/Opencv2/lib

     其中:INCLUDE_DIRS为需要包含的头文件,例如将Opencv的头文件,如果不加入,opencv的头文件将会报错,找不到头文件。例如:

    src/caffe/data_transformer.cpp:2:33: fatal error: opencv2/core/core.hpp: 没有那个文件或目录。

    LIBRARY_DIRS为动态链接库文件路径,编译过程中需要的动态链接库,都需要加入到其中。

这是因为ubuntu16.04的文件包含位置发生了变化,尤其是需要用到的hdf5的位置,所以需要更改这一路径.

(4)修改makefile文件

打开makefile文件,做如下修改:

将:

NVCCFLAGS +=-ccbin=$(CXX) -Xcompiler-fPIC $(COMMON_FLAGS)

替换为:

NVCCFLAGS += -D_FORCE_INLINES -ccbin=$(CXX) -Xcompiler -fPIC $(COMMON_FLAGS)

(5)编辑/usr/local/cuda/include/host_config.h

将其中的第115行注释掉:

将#error-- unsupported GNU version! gcc versions later than 4.9 are not supported!
改为//#error-- unsupported GNU version! gcc versions later than 4.9 are not supported!
6 验证

   经过前面的努力,最后终于到了验证的阶段,在验证的阶段,也会有很多的坑等着你,但要充分发挥,逢坑必补的原则。

make test
make runtest
make pycaffe  
make distribute
# dir 是caffe放置的路径
echo 'export PYTHONPATH=/dir/caffe/python:$PYTHONPATH' >> ~/.bashrc

   验证pycaffe是否安装成功:

Python 2.7.12 (default, Nov 19 2016, 06:48:10) 
[GCC 5.4.0 20160609] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import caffe
>>> #如果没有报错,说明安转成功


7 遇到的问题

     下面是在构建Caffe的过程中遇到的问题和解决的方法。

   7.1 Python caffe报错:No module named google.protobuf.internal

 sudo apt-get install python-protobuf
    7.2 ImportError: No module named skimage.io

sudo apt-get install python-skimage

    7.3 ImportError: libcudart.so.7.0: cannot open shared object file: No such file or directory         

sudo ldconfig /usr/local/cuda/lib64

    7.3 如果在更新显卡后,不能正常进入桌面,而后又使用命令:sudo apt-get autoremove --purge nvidia-*,将显卡驱动卸载掉,此时可以使用下面的命令补救:

       sudo apt-get install nvidia-current













评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值