caffe在ubuntu16.04配置流程

    xiaoxiao2021-03-26  17

    先说废话:在导师办公室2天+自己在家一天终于完成了caffe的配置,(上一篇随笔说好每天更新blog没有做到但我真的有在忙= =)整个过程掉坑无数,还好lucky enough配置完毕,趁着在跑cifar-10的train_full的时间整理一下整个流程,等导师的titanx到了以后还要再配置一次。

     

    env:Alienware17-R3, Ubuntu16.04 64-bit, NVIDIA Geforce GTX 980m (导师科研经费买的titanx没到,我的外星人只好先充公了,哈哈)

    配置了CUDA8.0, cuDNN5.0, opencv2.4.13

     

    参考了一些内网和外网的资料,我会尽量全部自己写,实在遇到需要参考的内容会贴出网址。

     

    首先你得有一些基本的linux基础,哪怕你在macOS上玩过terminal也可以,毕竟都是unix-based。

    稍微提一下自行安装ubuntu16.04的流程:去ubuntu官网下一个镜像文件,用u盘自制系统盘,然后照着装就行,具体请看 http://www.linuxidc.com/Linux/2016-04/130520.htm。

     

    首先先打开terminal,输入以下dependencies:

    1 sudo apt-get install libprotobuf-dev libleveldb-dev libsnappy-dev libopencv-dev libhdf5-serial-dev protobuf-compiler 2 sudo apt-get install --no-install-recommends libboost-all-dev 3 sudo apt-get install libopenblas-dev liblapack-dev libatlas-base-dev 4 sudo apt-get install libgflags-dev libgoogle-glog-dev liblmdb-dev

    I. Nvidia 驱动

    ubuntu装好以后需要安装nvidia驱动,ubuntu默认驱动识别了intel的显卡肯定是不行的,这里请上nvidia官网http://www.nvidia.com/Download/index.aspx?lang=en-us查询你需要什么驱动,现在2017年1月30日基本上标配是375,但是还是查一下比较稳妥

    安装方法网上有很多说法,有说要blacklist这个那个,要关闭xserver,lightdm之类的。我在这里花了两天时间,以上方法均造成了各种问题。最终我安装成功的方法是

    1. Run sudo apt-get purge nvidia-*

    2. Run sudo add-apt-repository ppa:graphics-drivers/ppa and then sudo apt-get update

    3. Run sudo apt-get install nvidia-375

    4. Run sudo reboot

    这里是一个非常tricky的点,我时间主要花在这里了,查了非常多资料,之前各种当机原因我只搞清了其中几个,这里稍微整理一下:

    1. 用ubuntu里设置自带的additional drivers选择nvidia driver,失败,无法完全安装

    2. blacklist了nouveau,使用alt+ctrl+f1,sudo service lightdm stop(关闭xserver),apt-get 手动下载的安装包,一样当机

    3. 安装cuda8.0时第一个选项“是否安装nvidia驱动“选择了yes。。。这里一定要选择no。。虽然他default是yes,但是后来发现caffe官网上已经明确说因为cuda绑定的nvidia driver版本usually out-of-date所以要跳过这一步。。

    只能说如果有特殊情况问题请留言,我会尽量帮你解决。博客我天天看,回复不会超过24小时

     

    有两个方法check是否安装完成,一是输入sudo nvidia-smi,如果正确显示显卡信息则为安装成功

    二是直接右上角查看this computer, 显卡显示的是不是n卡就行

     

    II. cuda8.0

    当你的ubuntu能正确识别nvidia显卡以后我们就可以开始安装cuda了(其实有资料说顺序随意,不过反正我是按这个顺序配置成功的,就这样写了)。

    首先去cuda官网下载cuda8.0 https://developer.nvidia.com/cuda-downloads

    一步步选择linux->x86_64->ubuntu->16.04->runfile(这里选择runfile是为了能跳过cuda自带的n卡驱动安装),然后就可以下载了,1.4个g,你可以趁现在喝杯茶。

    下载好以后cd到你下载的地方,run"sudo sh cuda_8.0.44_linux.run",具体文件名自己check,一开始会有很多要读的霸王条款,直接q到最后,输入accept。后面会让你选择各种细节安装项,这里注意问你是否要安装nvidia driver一定要选择no, 我安装的时候是第一个。

    安装好以后 sudo gedit ~/.bashrc ,将下面内容写到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}}

    然后测试一下cuda给的sample:

    cd /usr/local/cuda-8.0/samples/1_Utilities/deviceQuery

    make

    sudo ./deviceQuery

    如果显示了你的GPU相关信息,说明安装成功

     

    III. cuDNN

    这里我cuDNN使用的是5.0版本for CUDA8.0.,在https://developer.nvidia.com/rdp/cudnn-download下载,需要先注册一个账号。选择cuDNN v5 Library for Linux.

    下载好以后解压 sudo tar -zxvf ./文件名

    然后

    $ cd folder/extracted/contents

    $ sudo cp -P include/cudnn.h /usr/include

    $ sudo cp -P lib64/libcudnn* /usr/lib/x86_64-linux-gnu/

    $ sudo chmod a+r /usr/lib/x86_64-linux-gnu/libcudnn*

     

    IV. opencv

    这里选择的版本是2.4.13。3.0,3.1均会出现一些兼容问题,所以选择了2016年release的2.4.13版本

    http://opencv.org/downloads.html  这里下载

    下载好以后

    unzip opencv-2.4.13.zip 具体文件名自己看,会有出入

    将其复制到准备安装的目录下,这里assume文件夹名为opencv

    cd ~/opencv

    mkdir build

    cd build

    sudo apt install cmake

    sudo cmake -D CMAKE_BUILD_TYPE=Release -D

    CMAKE_INSTALL_PREFIX=/usr/local ..

    sudo make

    我的2.4版本直接配置完毕,如果是3.0和3.1可能会出现兼容问题,具体看个人选择自行查阅资料解决,这里我没装3.0

    compile完以后

    sudo make install

    完成安装

     

    V. caffe!

    前戏这么多终于进入正题开始配置caffe了。。

    从github上下载caffe: git clone https://github.com/BVLC/caffe.git

    如果没有安装git,需要先: sudo apt-get install git

    然后sudo cp Makefile.config.example Makefile.config

    打开Makefile.config文件,这里需要权限不要忘了sudo。用getit或者nano都可以

    如果你之前没有跳过cudnn,则需要将

    #USE_CUDNN := 1的#去掉

    如果你opencv版本是3你需要把opencv_version:=3的#也去掉

    其他配置自行查看,根据之前的步骤只需要把cudnn那一行注释去掉即可

    然后

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

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

     

    然后

    (5)修改makefile文件

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

    将:

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

    替换为:

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

    (6)编辑/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!

    最后 sudo make all

    我遇到的问题:

    "libcudart.so.8.0 cannot open shared object file: No such file or directory"

    解决办法是将一些文件复制到/usr/local/lib文件夹下:

    #注意自己CUDA的版本号!

    sudo cp /usr/local/cuda-8.0/lib64/libcudart.so.8.0 /usr/local/lib/libcudart.so.8.0 && sudo ldconfig

    sudo cp /usr/local/cuda-8.0/lib64/libcublas.so.8.0 /usr/local/lib/libcublas.so.8.0 && sudo ldconfig

    sudo cp /usr/local/cuda-8.0/lib64/libcurand.so.8.0 /usr/local/lib/libcurand.so.8.0 && sudo ldconfig

     

    完成之后测试:

    sudo make runtest

    运行完之后如果最后左下角显示绿色的passed,则caffe配置成功,大功告成!

     

    VI. 小试牛刀

    到这里caffe已经配置完毕,我们来找一组dataset测试一下,这里选用cifar-10.

    具体流程caffe官网有http://caffe.berkeleyvision.org/gathered/examples/cifar10.html

    我简单写一下

    首先下载安装cifar-10,这里我assume你安装caffe的文件夹就叫caffe

    cd caffe

    ./data/cifar10/get_cifar10.sh

    ./examles/cifar10/create_cifar10.sh

     

    然后就好了,简单吧,来一组快速测试:

    cd caffe

    ./examples/cifar10/train_quick.sh

     

    泡杯茶的功夫他应该已经跑完了,设置的iteration只有5000,最后会显示Optimization done.

     

     

    VII. 总结

    不多说了,坑巨多,具体有问题请留言我尽量帮忙

    reference:

    http://www.2cto.com/kf/201610/552429.html

    http://askubuntu.com/questions/767269/how-can-i-install-cudnn-on-ubuntu-16-04

     

     

     

     

     

     

    转载请注明原文地址: https://ju.6miu.com/read-659675.html

    最新回复(0)