Ubuntu 16 安装 Cuda8+OpenCV3.2+Caffe

本文综合自互联网,经过自己的实践写出。

0 准备

  1. 系统设置处,更换软件源。

  2. Ubuntu 下实时显示网速

    1
    2
    3
    sudo add-apt-repository ppa:nilarimogard/webupd8
    sudo apt-get update
    sudo apt-get install indicator-netspeed

    安装好后,设置 {net} C: {cpu} M: {mem},勾选 Run on startup

  3. 到应用商店安装 GDebi

  4. 到搜狗输入法官网下载搜狗输入法,使用 GDebi 安装。

  5. 网易云音乐也提供 deb 包

  6. 安装 git,安装 cmake

    1
    2
    sudo apt install git
    sudo apt install cmake

1 安装 Cuda

  1. 到系统设置→软件与更新→附加驱动。安装 NVIDIA 私有驱动。
  2. 重启。执行 sudo nvidia-smi 查看信息,说明安装成功
    enter description here
  3. 到 NVIDIA 官网下载历史版本的 Cuda,下载 Cuda8 的 run 文件。注意不要再重复安装驱动
  4. 设置环境变量,修改 PATH 和 LD_LIBRARY_PATH
    1
    sudo gedit ~/.bashrc
    文档最后添加
    1
    2
    3
    exportPATH=/usr/local/cuda-8.0/bin${PATH:+:${PATH}}
    exportLD_LIBRARY_PATH=/usr/local/cuda-8.0/lib64\
    {LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}
  5. 测试 CUDA 的 samples
    1
    2
    3
    4
    cd /usr/local/cuda-8.0/samples/1_Utilities/deviceQuery

    make
    sudo ./deviceQuery
    enter description here
    PASS,说明安装成功
  6. 安装 Cudnn
    1. 官网下载 Cudnn:https://developer.nvidia.com/rdp/cudnn-download , 需要账号登录
    2. 在 cuDNN 解压之后的 include 目录打开终端
      1
      sudo cp cudnn.h /usr/local/cuda/include/    #复制头文件
    3. 进入 lib64 目录下的动态文件进行复制和链接:
      1
      2
      3
      4
      5
      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 #生成软衔接(注意这里要和自己下载的cudnn版本对应,可以在/usr/local/cuda/lib64下查看自己libcudnn的版本)
      sudo ln -s libcudnn.so.5 libcudnn.so #生成软链接

2 安装 Caffe

  1. 下载 caffe:https://github.com/BVLC/caffe
  2. 安装依赖项
    1
    2
    3
    4
    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
  3. 将 caffe 包解压,复制到 ~/tools 目录下
  4. 配置 Makefile.config
    1. 复制 Makefile.config.example,重命名为 Makefile.config
    2. 修改
      1
      2
      INCLUDE_DIRS := $(PYTHON_INCLUDE)/usr/local/include
      LIBRARY_DIRS := $(PYTHON_LIB)/usr/local/lib /usr/lib
      1
      2
      INCLUDE_DIRS := $(PYTHON_INCLUDE)/usr/local/include /usr/include/hdf5/serial
      LIBRARY_DIRS := $(PYTHON_LIB)/usr/local/lib /usr/lib/ usr/lib/x86_64-linux-gnu/ usr/lib/x86_64-linux-gnu/hdf5/serial
    3. 编译
      1
      2
      3
      make all –j8
      make test
      make runtest
    4. 使用 MNIST 数据集测试
      1. 所有操作需要定为到 caffe 根目录
      2. 下载 MNIST 数据库并解压缩
        1
        ./data/mnist/get_mnist.sh
      3. 转换成 Lmdb 数据库格式
        1
        ./examples/mnist/create_mnist.sh
      4. 训练网络
        1
        ./examples/mnist/train_lenet.sh
      5. 训练的时候可以看到损失与精度的数值,实验中为 0.9906。
        enter description here
    5. 至此,caffe 安装完成。

3 安装 OpenCV3.2

  1. 下载
  2. 解压包,复制到 ~/tools 目录下
  3. 在 OpenCV 目录下新建 build 文件夹,进入,打开终端
  4. 执行,需要联网
    1
    sudo cmake -D CMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/usr/local ..
  5. 编译、安装
    1
    2
    sudo make –j8  #要比较久
    sudo make install
  6. 在 caffe 下编译 OpenCV
    1. 切换到 caffe 根目录
    2. 配置 Makefile.config 文件,将#OPENCV_VERSION := 3 修改为 OPENCV_VERSION := 3
  7. 编译
    1
    2
    3
    4
    make clean        #清除以前的编译
    make all -j8
    make test
    make runtest

4. 安装 Matlab

Matlab 的 caffe 接口编译有错误。继续研究中。