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

来源:互联网 发布:java时间轴代码 编辑:程序博客网 时间:2024/05/16 05:20

鉴于本人安装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
这里写图片描述

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

温馨提示:安装期间可能会出现很多小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,如下情况则安装成功(若有问题,先参考九)。
这里写图片描述

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

安装依赖项,终端输入:1、sudo apt-get install build-essential2、sudo apt-get install cmake git libgtk2.0-dev pkg-config libavcodec-dev libavformat-dev libswscale-dev3、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 opencv5、mkdir build && cd buildcmake 编译: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.deb2、sudo apt-get update3、sudo apt-get install cuda等待安装完成,检验安装信息,终端输入:4、nvidia-smi

弹出相关GPU信息,安装成功。
这里写图片描述

四、安装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-dev4、sudo apt-get install libatlas-base-dev5、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-pip14、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 -j48、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

如下,说明安装成功(若有问题,先参考九)。
这里写图片描述

八、安装DIGITS

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

如下,启动成功(若有问题,先参考九):
这里写图片描述

网址输入: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 caffe2、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 anaconda23、conda install protobuf
  • 启动digits时可能出现diggits caffe path erro:

    解决方法: 1、echo "export CAFFE_ROOT=/home/yj/caffe/" >> ~/.bashrc (这里的/home/yj是我电脑的绝对路径,根据自己caffe安装目录自行更改)2、source ~/.bashrc

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