ubuntu16.04+caffe+GTX1060+DIGITS安装方法

鉴于本人安装caffe-gpu版的过程中遇到很多坑,从自己探索开始装一次要半个多月,然后一个星期,再到两三天,现在从系统开始到digits装好一个多小时就可以搞定,故而写下这份心得教程,供有缘人享用,希望能帮到你们。话不多说,上干货。
配置期间看了很多教程,主要参考了两个教程,网址如下:

http://blog.csdn.net/hyy0228/article/details/53762930 //caffe安装
http://blog.csdn.net/u012235003/article/details/54576849 //digits安装

以上网址是主要参考的两个配置教程,安装过程中,发现有些问题,有些与自身条件不太符合,下面我加上了自己的实际情况做了一些修改总结,希望看的小伙伴们也能灵活运用,不只是死板的复制命令:

我的硬件配置:i5-6300H,GTX1060,ubuntu16.04,系统是预先装好的,Nvidia驱动版本是384.90
ubuntu16.04+caffe+GTX1060+DIGITS安装方法_第1张图片

所有需要的安装包文件在:这里可以找到 ; 建议先全部下载到本地。

温馨提示:安装期间可能会出现很多小bug,小错误,建议大家先通读一下整个教程,有个大概流程概念再开始安装。我在最后做了一个主要的错误汇总,遇到错误不要着急,先到后面看看有没有解决方案,解决不了再百度找其他方法。


刚装好的系统,直接开始:(有数字编号的为在终端运行的命令)

一、安装anaconda

将安装包文件Anaconda2-4.4.0-Linux-x86_64.sh 复制到home下,用bash命令安装。
1、bash Anaconda2-4.4.0-Linux-x86_64.sh
出现选项,按Enter键继续,有个过程一直按Enter,遇到是否加入path,输入yes(注意:默认Enter是NO,一定手动输入yes)

安装完成之后激活,终端输入:
2、source ~/.bashrc 

检验是否安装成功,终端输入:
3、python 

出现anaconda启动python,如下情况则安装成功(若有问题,先参考九)。
ubuntu16.04+caffe+GTX1060+DIGITS安装方法_第2张图片

二、安装opencv3.1(可选,如果平常不用到opencv编程,这里可先不安装,后面安装caffe时加入对应依赖包即可,后面有说明。请仔细看说明,不然会有opencv版本冲突问题)

安装依赖项,终端输入:
1、sudo apt-get install build-essential
2、sudo apt-get install cmake git libgtk2.0-dev pkg-config libavcodec-dev libavformat-dev libswscale-dev
3、sudo apt-get install python-dev python-numpy libtbb2 libtbb-dev libjpeg-dev libpng-dev libtiff-dev libjasper-dev libdc1394-22-dev

如果中间出现有些包装不上就按照提示先运行一次:
sudo apt-get update
再运行上述命令即可。

编译opencv
将openv.zip和opencv_contrib.zip解压、复制到home目录下;

进入opencv文件夹下创建build文件夹并进入build,命令如下:	
4、cd opencv
5、mkdir build && cd build

cmake 编译:
6、cmake -D CMAKE_BUILD_TYPE=Release -D OPENCV_EXTRA_MODULES_PATH=~/opencv_contrib/modules/ -D CMAKE_INSTALL_PREFIX=/usr/local ..
“-D”后面接的是参数,如有需要可自行查找含义添加,等待完成;

这里会遇到一个坑,就是cmake过程会卡在一个地方不动(其实是下载一个文件很慢),这时按Ctrl+z终止程序,把安装包里面的ippicv_linux_20151201.tgz复制到/opencv/3rdparty/ippicv/downloads/linux-808b791a6eac9ed78d32a7666804320e替换里面原有的文件,再执行上面语句6即可。

继续执行:
7、make -j4 && sudo make install
等待完成即可。

三、安装cuda8.0

将cuda包cuda-repo-ubuntu1604-8-0-local-ga2_8.0.61-1_amd64.deb复制到home下,执行:

1、sudo dpkg -i cuda-repo-ubuntu1604-8-0-local-ga2_8.0.61-1_amd64.deb
2、sudo apt-get update
3、sudo apt-get install cuda

等待安装完成,检验安装信息,终端输入:
4、nvidia-smi

弹出相关GPU信息,安装成功。
ubuntu16.04+caffe+GTX1060+DIGITS安装方法_第3张图片

四、安装cudnn5.1

终端输入:cd 到home目录下;
将cudnn-8.0-linux-x64-v5.1-tgz复制到home。执行如下代码解压:
1、tar zxvf cudnn-8.0-linux-x64-v5.1-tgz

解压在下载目录下产生一个cuda目录 
2、cd cuda/include/ 
3、sudo cp cudnn.h /usr/local/cuda/include/         复制头文件 
4、cd ../lib64                                      打开lib64目录 
5、sudo cp lib* /usr/local/cuda/lib64/             复制库文件 
6、sudo chmod a+r /usr/local/cuda/include/cudnn.h /usr/local/cuda/lib64/libcudnn*          

五、建立软链接

终端输入 
1、cd /usr/local/cuda/lib64/ 
2、sudo rm -rf libcudnn.so libcudnn.so.5 
3、sudo ln -s libcudnn.so.5.1.10 libcudnn.so.5 
4、sudo ln -s libcudnn.so.5 libcudnn.so 

设置环境变量,终端输入 
5、sudo gedit /etc/profile 
在末尾加入 
PATH=/usr/local/cuda/bin:$PATH 
export PATH 
保存后,创建链接文件 
6、sudo vim /etc/ld.so.conf.d/cuda.conf 

按a进入插入模式,增加下面一行 
/usr/local/cuda/lib64 
按esc退出插入模式,按:wq保存退出 
最后在终端输入
7、sudo ldconfig
使链接生效 

六、准备工作。

先安装依赖项,终端输入:
1、sudo apt-get install build-essential 

2、sudo apt-get install libprotobuf-dev libleveldb-dev libsnappy-dev libhdf5-serial-dev protobuf-compiler
(注意:如果之前没有安装opencv3.1的,这里需要加入libopencv-dev,加的这个包默认是2.4.9版本的,如果同时安装了两个版本的opencv,后面编译caffe会有opencv版本冲突,所以暂时二选一,有同时管理不同版本的方法,请自行百度)

3、sudo apt-get install --no-install-recommends libboost-all-dev

4、sudo apt-get install libatlas-base-dev

5、sudo apt-get install libgflags-dev libgoogle-glog-dev liblmdb-dev

安装python的pip和easy_install,方便安装软件包,终端输入:
6、wget --no-check-certificate https://bootstrap.pypa.io/ez_setup.py 
7、sudo python ez_setup.py --insecure 
8、wget https://bootstrap.pypa.io/get-pip.py 
9、sudo python get-pip.py

安装科学计算和python所需的部分库
10、sudo apt-get install libblas-dev liblapack-dev libatlas-base-dev gfortran python-numpy

将安装包里的caffe文件夹copy到home下;或者网上下载caffe源码:
11、sudo apt-get install git 
12、git clone https://github.com/BVLC/caffe.git

安装python依赖,终端输入:
13、sudo apt-get install python-pip
14、sudo su 
15、for req in $(cat caffe/python/requirements.txt); do pip install -i https://pypi.tuna.tsinghua.edu.cn/simple $req; done
按Ctrl+D退出sudo su模式

七、编译caffe

) 1、cd caffe
2、cp Makefile.config.example Makefile.config
3、gedit Makefile.config
①将USE_CUDNN := 1取消注释,
②INCLUDE_DIRS := $(PYTHON_INCLUDE) /usr/local/include后面打上一个空格 然后添加/usr/include/hdf5/serial如果没有这一句可能会报一个找不到hdf5.h的错误

在计算机中搜索libhdf5_serial.so.10.1.0,找到后右键点击打开项目位置 
该目录下空白处右键点击在终端打开,打开新终端输入 
4、sudo ln libhdf5_serial.so.10.1.0 libhdf5.so 
5、sudo ln libhdf5_serial_hl.so.10.0.2 libhdf5_hl.so 

最后在终端输入
6、sudo ldconfig
使链接生效

编译:
7、make all -j4
8、make test -j4 
9、make runtest -j4 
10、make pycaffe -j4 
11、make distribute 生成发布安装包 

将caffe加入环境:
12、sudo gedit ~/.bashrc 

在文件最后写入
13、export PYTHONPATH=/home/yj/caffe/python:$PYTHONPATH(yj是我的电脑用户名,注意改成自己的) 

终端运行:
14、source ~/.bashrc  

检验pycaffe:
python
输入import caffe

如下,说明安装成功(若有问题,先参考九)。
ubuntu16.04+caffe+GTX1060+DIGITS安装方法_第4张图片

八、安装DIGITS

1、cd 
2、git clone https://github.com/NVIDIA/DIGITS.git digits
3、cd digits
4、sudo apt-get install graphviz gunicorn
5、二选一:
for req in $(cat requirements.txt); do sudo pip install $req; done #若使用linux系统环境下的python,请使用该语句
pip install -r requirements.txt #若使用Anaconda环境下的python,使用该语句进行更新

运行:
6、./digits-devserver

如下,启动成功(若有问题,先参考九):
ubuntu16.04+caffe+GTX1060+DIGITS安装方法_第5张图片

网址输入:http://0.0.0.0:5000可打开网页进行digits操作。 

九、错误汇总

  • 如果在第一步中安装anaconda提示是否加入path时选择了否,则手动加入path,步骤如下:

      1、sudo gedit ~/.bashrc
      2、export PATH="/home/yj/anaconda2/bin:$PATH"  (这里的/home/yj是我电脑的绝对路径,根据自己anaconda安装目录自行更改)
      3、source ~/.bashrc
    
  • 编译caffe在 make all -j4 时可能有出现这个错误:.build_release/lib/libcaffe.so: undefined reference to cv::imread

     解决方法:
     在caffe目录下找到Makefile文件并打开,  
     找到LIBRARIES += glog gflags protobuf boost_system boost_filesystem m hdf5_hl hdf5这行,
     在后面加上opencv_core opencv_highgui opencv_imgproc opencv_imgcodecs。
     然后
     1、cd caffe
     2、make clean
     再继续执行
     3、make all -j4 
    
  • 在import caffe时可能会有一下错误:

     GLRBCXX3.4.21问题:
     解决方法:
     1、conda install libgcc
    
     问题报错:No module named google.protobuf.internal:
     2、sudo chmod 777 -R anaconda2
     3、conda install protobuf
    
  • 启动digits时可能出现diggits caffe path erro:

     解决方法: 
     1、echo "export CAFFE_ROOT=/home/yj/caffe/" >> ~/.bashrc (这里的/home/yj是我电脑的绝对路径,根据自己caffe安装目录自行更改)
     2、source ~/.bashrc
    
  • digits安装完成之后启动时可能会权限不够

     解决办法:
     cd到digits目录下, 使用chmod +x ./digits-devserver授予权限即可。
    

以上是主要的问题了,可能还有其他问题,我再更新,新手经常苦恼的地方就是路径问题了,一定要注意路径的问题,搞不懂linux路径结构的请自行百度。解决上述问题还有其他方法,如果上述方法不行,请问度娘。问题总会解决,实在不行,重装系统吧; 重新装好的系统建议多重启几次,会神奇的发现能解决一些问题,不要问我为什么,我也不知道。加油吧,骚年,祝你们好运!

你可能感兴趣的:(深度学习实践系列)