caffe在ubuntu16.04配置流程

先说废话:在导师办公室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

 

 

 

 

 

 



 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值