Ubuntu16.04 Caffe 折腾记录

Ubuntu16.04 Caffe 折腾记录

最近捣鼓深度学习的东西,有必要学习一下caffe框架。之前在Windows 10搭建了caffe-windows的环境,历尽千辛万苦总算是撘成功了,但是很后悔没有把遇到坑记录下来,时间久了,下次使用的时候估计还是一样苦恼。最近打算在Ubuntu16.04的环境下试下caffe,用了半天时间搭建了环境。把安装的步骤和遇到坑记录下。

  • 1、安装依赖包
  • 2、禁用 nouveau
  • 3、配置环境变量
  • 4、安装 CUDA 8.0
  • 5、安装 cudnn
  • 6、安装 opencv3.1
  • 7、安装 caffe
  • 8.MNIST数据集测试
  • 9、安装 pycaffe notebook 接口环境
  • 10、參考

安装依赖包

  • 安装后续步骤或环境必需的依赖包,依次输入以下命令:(不要安装libopencv-dev )

    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
    sudo apt-get install git cmake build-essential

  • 验证依赖包是否安装成功,可以重新运行安装命令。 如果验证 git cmake build-essential是否安装成功可以运行下述命令:

    sudo apt-get install git cmake build-essential

  • 如果提示如下则说明依赖包已经安装成功

    wangkai@wk:~$ sudo apt-get install git cmake build-essential
    [sudo] wangkai 的密码:
    正在读取软件包列表… 完成
    正在分析软件包的依赖关系树
    正在读取状态信息… 完成
    build-essential 已经是最新版 (12.1ubuntu2)。
    cmake 已经是最新版 (3.5.1-1ubuntu3)。
    git 已经是最新版 (1:2.7.4-0ubuntu1.3)。
    升级了 0 个软件包,新安装了 0 个软件包,要卸载 0 个软件包,有 424 个软件包未被升级。

禁用nouveau

  • 打开终端。输入如下命令:

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

  • 在文件 blacklist-nouveau.conf 中加入如下内容:

    blacklist nouveau
    blacklist lbm-nouveau
    options nouveau modeset=0
    alias nouveau off
    alias lbm-nouveau off

  • 禁用 nouveau 内核模块

    echo options nouveau modeset=0 | sudo tee -a /etc/modprobe.d/nouveau-kms.conf
    sudo update-initramfs -u

配置环境变量

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

    sudo gedit ~/.bashrc

  • 打开文件在最后加入一下内容

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

    export LD_LIBRARY_PATH=/lib/x86_64-linux-gnu:$LD_LIBRARY_PATH

  • 保存退出

安装CUDA8.0

  • 在NVIDIA官网[https://developer.nvidia.com/cuda-downloads] ,选择合适的版本。
    这里写图片描述

  • 安装 CUDA 8.0

    下载的1.4G的 CUDA中包含有 nvidia 显卡驱动,故此步骤 CUDA 的安装包括了 nvidia 显卡驱动的安装,此时注意你是否已经安装过 nvidia 显卡驱动,若无法保证已安装的 nvidia 显卡驱动一定正确,那就卸载掉之前安装的 nvidia 显卡驱动(卸载方法链接),然后开始安装 CUDA 8.0;若可以保证已安装正确的 nvidia 显卡驱动,则直接开始安装 CUDA 8.0,在安装过程中选择不再安装 nvidia 显卡驱动。

  • 将下载的 CUDA 安装文件移动到 HOME 路径下

    Ctrl + Alt + F1 进入文本模式,输入帐号密码登录,通过 Ctrl + Alt + F7 可返回图形化模式,在文本模式登录后首先关闭桌面服务:
    sudo service lightdm stop
    运行 CUDA 安装文件进行安装
    sudo sh cuda_8.0.61_375.26_linux.run --no-opengl-libs
    执行此命令约1分钟后会出现 0%信息,此时长按回车键让此百分比增长,直到100%,然后按照提示操作即可,先输入 accept ,然后让选择是否安装 nvidia 驱动,根据自己的情况选择。剩下的都选”y”。

  • 重启

    reboot

  • 配置CUDA环境变量

    sudo gedit ~/.bashrc
    在该文件最后加入以下两行并保存:
    export PATH=/usr/local/cuda-8.0/bin:$PATH

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

  • 使该配置生效:

    source ~/.bashrc

  • 验证CUDA是否安装成功

    执行以下命令
    cd /usr/local/cuda-8.0/samples/1_Utilities/deviceQuery
    sudo make
    ./deviceQuery

  • 若安装成功则会出现一下信息:

    ./deviceQuery Starting…
    CUDA Device Query (Runtime API) version (CUDART static linking)
    Detected 1 CUDA Capable device(s)
    Device 0: “GeForce GTX 1060 3GB”
    CUDA Driver Version / Runtime Version 9.0 / 8.0
    CUDA Capability Major/Minor version number: 6.1
    Total amount of global memory: 3005 MBytes (3151429632 bytes)
    ( 9) Multiprocessors, (128) CUDA Cores/MP: 1152 CUDA Cores
    GPU Max Clock rate: 1709 MHz (1.71 GHz)
    Memory Clock rate: 4004 Mhz
    Memory Bus Width: 192-bit
    L2 Cache Size: 1572864 bytes
    Maximum Texture Dimension Size (x,y,z) 1D=(131072), 2D=(131072, 65536), 3D=(16384, 16384, 16384)
    Maximum Layered 1D Texture Size, (num) layers 1D=(32768), 2048 layers
    Maximum Layered 2D Texture Size, (num) layers 2D=(32768, 32768), 2048 layers
    Total amount of constant memory: 65536 bytes
    Total amount of shared memory per block: 49152 bytes
    Total number of registers available per block: 65536
    Warp size: 32
    Maximum number of threads per multiprocessor: 2048
    Maximum number of threads per block: 1024
    Max dimension size of a thread block (x,y,z): (1024, 1024, 64)
    Max dimension size of a grid size (x,y,z): (2147483647, 65535, 65535)
    Maximum memory pitch: 2147483647 bytes
    Texture alignment: 512 bytes
    Concurrent copy and kernel execution: Yes with 2 copy engine(s)
    Run time limit on kernels: Yes
    Integrated GPU sharing Host Memory: No
    Support host page-locked memory mapping: Yes
    Alignment requirement for Surfaces: Yes
    Device has ECC support: Disabled
    Device supports Unified Addressing (UVA): Yes
    Device PCI Domain ID / Bus ID / location ID: 0 / 1 / 0
    Compute Mode:
    < Default (multiple host threads can use ::cudaSetDevice() with device simultaneously) >
    deviceQuery, CUDA Driver = CUDART, CUDA Driver Version = 9.0, CUDA Runtime Version = 8.0, NumDevs = 1, Device0 = GeForce GTX 1060 3GB

安装 cudnn

官网:https://developer.nvidia.com/rdp/cudnn-download ,下载对应 cuda 版本且 linux 系统的 cudnn 压缩包
这里写图片描述
下载完成后解压,得到一个 cudn 文件夹,该文件夹下include 和 lib64 两个文件夹,命令行进入 cudn/include 路径下,然后进行以下操作:

sudo cp cudnn.h /usr/local/cuda/include/

然后命令行进入 cudn/lib64 路径下,运行以下命令:

sudo cp lib* /usr/local/cuda/lib64/ #复制动态链接库
cd /usr/local/cuda/lib64/sudo rm -rf libcudnn.so libcudnn.so.6 #删除原有动态文件
sudo ln -s libcudnn.so.6.0.21 libcudnn.so.6 #生成软衔接
sudo ln -s libcudnn.so.6 libcudnn.so #生成软链接

安装完成后可用 nvcc -V 命令验证是否安装成功,若出现以下信息则表示安装成功:

wangkai@wk:~$ nvcc -V
nvcc: NVIDIA (R) Cuda compiler driver
Copyright (c) 2005-2016 NVIDIA Corporation
Built on Sun_Sep__4_22:14:01_CDT_2016
Cuda compilation tools, release 8.0, V8.0.44

安装openCV3.3

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

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

mkdir build # 创建编译的文件目录
cd build
cmake  -D CMAKE_BUILD_TYPE=Release -D CMAKE_INSTALL_PREFIX=/usr/local ..
make -j8 #编译

编译成功后安装:

sudo make install

安装后验证是否安装成功:

pkg-config --modversion opencv

若成功会显示:

wangkai@wk:~$ pkg-config –modversion opencv
3.3.0

安装 caffe

在你要存放caffe的文件夹下打开终端

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

进入 caffe ,将 Makefile.config.example 文件复制一份并更名为 Makefile.config,编译 caffe 时需要的是 Makefile.config 文件,而Makefile.config.example 只是caffe 给出的配置文件例子,不能用来编译 caffe。
修改 Makefile.config 文件,在 caffe 目录下打开该文件:

sudo gedit Makefile.config

修改Makefile.config 文件内容

  • 应用cudnn

    #USE_CUDNN := 1
    修改成: USE_CUDNN := 1

  • 应用opencv版本

    #OPENCV_VERSION := 3
    修改为: OPENCV_VERSION := 3

  • 使用python接口

    #WITH_PYTHON_LAYER := 1
    修改为 WITH_PYTHON_LAYER := 1

  • 修改python路径

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

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

将:NVCCFLAGS +=-ccbin=$(CXX) -Xcompiler-fPIC $(COMMON_FLAGS)
替换为:NVCCFLAGS += -D_FORCE_INLINES -ccbin=$(CXX) -Xcompiler -fPIC $(COMMON_FLAGS)
将:LIBRARIES += glog gflags protobuf boost_system boost_filesystem m hdf5_hl hdf5
改为:LIBRARIES += glog gflags protobuf boost_system boost_filesystem m hdf5_serial_hl hdf5_serial

然后修改 /usr/local/cuda/include/host_config.h 文件 :

#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!

至此,需要修改和安裝的依賴全部完成,在caffe目錄下執行:

make all -j8

測試:

make runtest -j8

这里写图片描述

MNIST数据集测试

配置caffe完成后,我们可以利用MNIST数据集对caffe进行测试,过程如下:

1.将终端定位到Caffe根目录:

cd ~/caffe

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

./data/mnist/get_mnist.sh

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

./examples/mnist/create_mnist.sh

4.训练网络

./examples/mnist/train_lenet.sh

5.得到訓練精度是0.991

安装 pycaffe notebook 接口环境

在上一步成功安装 caffe 之后,就可以通过 caffe 去做训练数据集或者预测各种相关的事了,只不过需要在命令行下通过 caffe 命令进行操作,而这一步 pycaffe 的安装以及 notebook 环境配置只是为了更方便的去使用 caffe ,实际上大多数都是通过 python 来操作 caffe 的,而 notebook 使用浏览器作为界面,可以更方便的编写和执行 python 代码。

  • 编译 pycaffe :
cd caffe

sudo make pycaffe -j8

遇到錯誤01:
这里写图片描述
解決辦法:

sudo apt-get install python-numpy

遇到錯誤02:
这里写图片描述

pip install -U scikit-image #若没有安装pip: sudo apt install python-pip

遇到錯誤03:

这里写图片描述
解決辦法:

pip install protobuf

然後成功導入了
这里写图片描述

  • 配置notebook環境

安装python接口依赖库,在caffe根目录的python文件夹下,有一个requirements.txt的清单文件,上面列出了需要的依赖库,按照这个清单安装。
这里写图片描述
首先在caffe/python目錄下安裝scipy庫

sudo apt-get install gfortran
for req in $(cat requirements.txt); do sudo pip install $req; done

安装完成以后执行:

sudo pip install -r requirements.txt

安装成功的,都会显示Requirement already satisfied

然后安装 jupyter :

sudo pip install jupyter

安装完成后运行 notebook :

jupyter notebook

或

ipython notebook

就会在浏览器中打开notebook。

这里写图片描述

參考

http://www.linuxdiyf.com/linux/27429.html
http://blog.csdn.net/autocyz/article/details/52299889
http://blog.csdn.net/u014696921/article/details/70101461
http://www.knowsky.com/1055561.html
http://blog.csdn.net/yhaolpz/article/details/71375762

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值