Ubuntu 18.04 caffe GPU

第1步 安装依赖包

安装后续步骤或环境必需的依赖包,依次输入以下命令:

 
  1. sudo apt-get install libprotobuf-dev libleveldb-dev libsnappy-dev libopencv-dev libhdf5-serial-dev protobuf-compiler

  2.  
  3. sudo apt-get install --no-install-recommends libboost-all-dev

  4.  
  5. sudo apt-get install libopenblas-dev liblapack-dev libatlas-base-dev

  6.  
  7. sudo apt-get install libgflags-dev libgoogle-glog-dev liblmdb-dev

  8.  
  9. sudo apt-get install git cmake build-essential

  • 有一定几率安装失败而导致后续步骤出现问题,所以要确保以上依赖包都已安装成功,验证方法就是重新运行安装命令,如验证 git cmake build-essential是否安装成功共则再次运行以下命令:
 sudo apt-get install git cmake build-essential 

界面提示如下则说明已成功安装依赖包,否则继续安装直到安装成功。

 
  1. yhao@yhao-X550VB:~$ sudo apt-get install git cmake build-essential

  2. 正在读取软件包列表... 完成

  3. 正在分析软件包的依赖关系树

  4. 正在读取状态信息... 完成

    扫描二维码关注公众号,回复: 5648109 查看本文章
  5. build-essential 已经是最新版 (12.1ubuntu2)。

  6. cmake 已经是最新版 (3.5.1-1ubuntu3)。

  7. git 已经是最新版 (1:2.7.4-0ubuntu1.1)。

  8. 下列软件包是自动安装的并且现在不需要了:

  9. lib32gcc1 libc6-i386

  10. 使用'sudo apt autoremove'来卸载它(它们)。

  11. 升级了 0 个软件包,新安装了 0 个软件包,要卸载 0 个软件包,有 94 个软件包未被升级。

第2步 禁用 nouveau

安装好依赖包后需要禁用 nouveau,只有在禁用掉 nouveau 后才能顺利安装 NVIDIA 显卡驱动,禁用方法就是在 /etc/modprobe.d/blacklist-nouveau.conf 文件中添加一条禁用命令,首先需要打开该文件,通过以下命令打开:

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

打开后发现该文件中没有任何内容,写入:

blacklist nouveau option nouveau modeset=0 

保存时命令窗口可能会出现以下提示:

** (gedit:4243): WARNING **: Set document metadata failed: 不支持设置属性 metadata::gedit-position

无视此提示~,保存后关闭文件,注意此时还需执行以下命令使禁用 nouveau 真正生效:

sudo update-initramfs -u

第3步 配置环境变量

同样使用 gedit 命令打开配置文件:

sudo gedit ~/.bashrc

打开后在文件最后加入以下两行内容:

 
  1. export LD_LIBRARY_PATH=/usr/lib/x86_64-linux-gnu:$LD_LIBRARY_PATH

  2.  
  3. export LD_LIBRARY_PATH=/lib/x86_64-linux-gnu:$LD_LIBRARY_PATH

保存退出。

Install CUDA

https://developer.nvidia.com/cuda-10.0-download-archive?target_os=Linux&target_arch=x86_64&target_distro=Ubuntu&target_version=1804&target_type=runfilelocal

CUDA Toolkit 10.0 Archive

linux x86_64 Ubuntu 18.04 rinfile(local)

Download Installer for Linux Ubuntu 18.04 x86_64

Base Installer  
Installation Instructions:
  1. Run `sudo sh cuda_10.0.130_410.48_linux.run`
  2. Follow the command-line prompts

STEP1:CUDA官网选择适合自己系统的版本下载。

我的系统是Ubuntu18.04、64位,选择CUDA10版本如下:

 STEP2:安装CUDA

在命令行中键入:

sudo sh cuda_10.0.130_410.48_linux.run

一直按Enter直至把声明读完(太多了吧!)

如果驱动是独立安装了,一定要选择不安装驱动!选择如下:

会提示:

***WARNING: Incomplete installation! This installation did not install the CUDA Driver. A driver of version at least 384.00 is required for CUDA 10.0 functionality to work.

To install the driver using this installer, run the following command, replacing <CudaInstaller> with the name of this run file:

sudo <CudaInstaller>.run -silent -driver

这是因为我们在安装CUDA的时候没有选择安装驱动,提示需要安装驱动,忽略就行。

STEP3:添加环境变量:

    export CUDA_HOME=/usr/local/cuda
    export PATH=$PATH:$CUDA_HOME/bin
    export LD_LIBRARY_PATH=/usr/local/cuda-10.0/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}

保存并退出

source ~/.bashrc

STEP4:测试是否安装成功

上面的选项选择安装了CUDA例子,运行其中一个来测试是否安装成功:

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

结果如下就表明成功啦

STEP5:安装CUDNN

在官网下载安装包,需要注册登录才能下载。选择适合自己的版本

 下载完成后解压并进入文件夹:

    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*

在终端查看CUDNN版本:

cat /usr/local/cuda/include/cudnn.h | grep CUDNN_MAJOR -A 2

安装 opencv3.4.5

进入官网 : http://opencv.org/releases.html , 选择 3.4.5 版本的 source , 下载 opencv-3.4.5.zip 

解压到你要安装的位置,命令行进入已解压的文件夹 opencv-3.4.5 目录下,执行:

 
  1. mkdir build # 创建编译的文件目录

  2.  
  3. cd build

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

  6.  
  7. make -j8 #编译

安装 caffe

首先在你要安装的路径下 clone :

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

进入 caffe ,将 Makefile.config.example 文件复制一份并更名为 Makefile.config ,也可以在 caffe 目录下直接调用以下命令完成复制操作 :

sudo cp Makefile.config.example Makefile.config

复制一份的原因是编译 caffe 时需要的是 Makefile.config 文件,而Makefile.config.example 只是caffe 给出的配置文件例子,不能用来编译 caffe。

然后修改 Makefile.config 文件,在 caffe 目录下打开该文件:

sudo gedit Makefile.config

修改 Makefile.config 文件内容:

1.应用 cudnn

 
  1. #USE_CUDNN := 1

  2. 修改成:

  3. USE_CUDNN := 1

2.应用 opencv 版本

 
  1. #OPENCV_VERSION := 3

  2. 修改为:

  3. OPENCV_VERSION := 3

3.使用 python 接口

 
  1. #WITH_PYTHON_LAYER := 1

  2. 修改为

  3. WITH_PYTHON_LAYER := 1

4.修改 python 路径

 
  1. INCLUDE_DIRS := $(PYTHON_INCLUDE) /usr/local/include

  2. LIBRARY_DIRS := $(PYTHON_LIB) /usr/local/lib /usr/lib

  3. 修改为:

  4. INCLUDE_DIRS := $(PYTHON_INCLUDE) /usr/local/include /usr/include/hdf5/serial

  5. LIBRARY_DIRS := $(PYTHON_LIB) /usr/local/lib /usr/lib /usr/lib/x86_64-linux-gnu /usr/lib/x86_64-linux-gnu/hdf5/serial

如果最后提示不支持compute_20,就把这句删掉,最后效果是

 
  1. CUDA_ARCH := -gencode arch=compute_30,code=sm_30 \

  2. -gencode arch=compute_35,code=sm_35 \

  3. -gencode arch=compute_50,code=sm_50 \

  4. -gencode arch=compute_52,code=sm_52 \

  5. -gencode arch=compute_60,code=sm_60 \

  6. -gencode arch=compute_61,code=sm_61 \

  7. -gencode arch=compute_61,code=compute_61

这里贴出 方便大家参考

然后修改 caffe 目录下的 Makefile 文件:

 
  1. 将:

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

  3. 替换为:

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

 
  1. 将:

  2. LIBRARIES += glog gflags protobuf boost_system boost_filesystem m hdf5_hl hdf5

  3. 改为:

  4. LIBRARIES += glog gflags protobuf boost_system boost_filesystem m hdf5_serial_hl hdf5_serial

Caffe源码中安装Python的必要项

# 在终端输入

    cd /home/caffe/python
     
    for req in $(cat requirements.txt); do pip install $req; done

6.4.   编译

# 进入caffe的根目录下

    cd /home/caffe
     
    sudo make clean
     
    sudo make all -j4   //(-j4表示使用4核处理器执行当前指令)

sudo make test -j4   //最好加上sudo防止有些文件的访问权限不够

sudo make runtest -j4  

此步可能会报错,解决方法参见博客:Ubuntu18.04 LTS下Caffe-GPU版本安装常见错误

sudo make pycaffe -j4     //配置pycaffe

返回上一目录,输入Python测试

Congratulations!Caffe-GPU编译成功!
7.    MNIST 模型

#进入Caffe根目录

 cd /home/caffe
7.1. 数据集准备

#下载数据集

sudo ./data/mnist/get_mnist.sh

#转换数据格式

sudo ./examples/mnist/create_mnist.sh
7.2. 数据集训练

#训练

sudo ./examples/mnist/train_lenet.sh

#训练完成后如下所示:

7.3. 数据集测试

有三种接口可以进行数据集测试,分别是命令行、Python和MATLAB,笔者采用命令行进行测试。

在在caffe根目录下创建文件。在终端输入:

touch test_lenet.sh

sudo gedit test_lenet.sh

在文件中添加:

./build/tools/caffe.bin test -modelexamples/mnist/lenet_train_test.prototxt -weightsexamples/mnist/lenet_iter_10000.caffemodel -iterations 100

#在终端执行

sudo sh test_lenent.sh

Congratulations!测试成功!至此,Caffe-GPU版本安装测试完毕!

猜你喜欢

转载自blog.csdn.net/CVAIDL/article/details/88399583