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:
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 2. Run 3. Run 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.0https://developer.nvidia.com/cuda-downloads 一步步选择linux->x86_64->ubuntu->16.04->runfile(这里选择runfile是为了能跳过cuda自带的n卡驱动安装),然后就可以下载了,1.4个g,你可以趁现在喝杯茶。 下载好以后cd到你下载的地方,run"sudo shcuda_8.0.44_linux.run",具体文件名自己check,一开始会有很多要读的霸王条款,直接q到最后,输入accept。后面会让你选择各种细节安装项,这里注意问你是否要安装nvidia driver一定要选择no,我安装的时候是第一个。 安装好以后sudogedit ~/.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 ./文件名 然后
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 (编辑:莱芜站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |