Ubuntu 16.04 + cuda 8.0 + caffe安装记录

时间:2021-05-02 06:29:29

最近在转深度学习,所以开始搭环境啦。我的显卡是nvidia GTX970 。

首先查看啦下我的ubuntu版本

$ lsb_release -a
Distributor ID: Ubuntu
Description:    Ubuntu 16.04 LTS
Release:    16.04
Codename:   xenial

由于版本比较新,一开始就担心后面会遇到各种问题, 后面果然就遇到了。。。
我的主要步骤都是根据这篇文章来做的。Setting up a Deep Learning Machine from Scratch (Software)。下面把遇到打一些问题总结下。
1 cuda版本

这篇文章中说的是安装cuda7.5,然而我的系统是ubuntu16.04,一直安装不成功。
后来google到知乎上一个答案,Ubuntu16.04无法安装CUDA吗,才知道已经有cuda8.0啦。所以果断去下载之。cuda8.0下载地址。然后就安装成功啦。

2 hdf5.h
编译caffe的时候一直找不到”hdf5.h”和”hdf5_hl.h”这两个头文件。

sudo pip install -r python/requirements.txt
make all -j $(($(nproc) + 1))
./include/caffe/util/io.hpp:8:18: fatal error: hdf5.h: no such file or directory

于是又各种google,搜到了github上caffe的issue中的一个答案 Ubuntu 15.04 compilation failure due to “hdf5.h” instead of “hdf5/serial/hdf5.h” and similarly “hdf5_hl.h” #2690 ,然后这个问题顺利的解决啦。
然而!!事情当然是没那么顺利的。按照那个问题下的答案弄过之后,虽然前面一个问题解决了,但是新的问题又出现了。。

/usr/bin/ld: cannot find -lhdf5_hl
/usr/bin/ld: cannot find -lhdf5

真是按下葫芦又起瓢。没办法,只能又去查啦。不过这次我有经验了。既然上一个问题都有人问了,那这个问题应该也会有人问。果然,经过一番查找,我在NVIDIA/DIGITS
的issue下找到了跟我一样问题的同志。 can’t find hdf5.h when build caffe #156

3 opencv

接着编译的时候又遇到下面这个问题

.build_release/lib/libcaffe.so: undefined reference to `cv::imread(cv::String const&, int)'

这一看应该是找不到opencv,我之前装的是opencv3。一开始以为是这个问题。
然后去Makefile.config 里把下面这一行的注释给去掉了。

# Uncomment if you're using OpenCV 3
 OPENCV_VERSION := 3

然而还是不行。然后又是各种google,最后在这个issue下 Build errors, undefined cv::imread() cv::imencode() … #2288
有人说试试用cmake来编译。果断尝试之。

camke .
make

果然就ok了!!!!
然后测试了下

ipython
>>> import caffe
>>> exit()

没有warnings/errors!!!
所以暂时应该算是安装成功了吧。不过后面可能会有其他问题。

经验总结

由于各种安装配置我是最烦的。所以每次都头疼。这次真的是耐心google,经过两天的折磨最后终于成功了。
所以我觉得最重要的有两点。一是要耐心,不管多么多bug都要静下心来,不能烦躁。总会解决的。二是要善于google,我们碰到的大部分问题肯定有人已经碰到过了。并在网上给出了解决方案。