ubuntu16.04+caffe+Quadro K620+DIGITS安装方法

原文地址https://blog.csdn.net/u011878435/article/details/78628484?utm_source=debugrun&utm_medium=referral

我主要使用了作者安装digits部分,很有用所以分享下,其他部分未验证。在安装过程中遇到了一些新问题,提出了一些解法。我的显卡是Quadro K620

鉴于本人安装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 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10

出现anaconda启动python,如下情况则安装成功(若有问题,先参考九)。
这里写图片描述

二、安装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”后面接的是参数,如有需要可自行查找含义添加,等待完成;
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20

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

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

三、安装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
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9

弹出相关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
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11

五、建立软链接

终端输入 
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
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21

六、准备工作。

先安装依赖项,终端输入:
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模式
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31

七、编译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
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29

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

八、安装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
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11

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

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

九、错误汇总

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

     1、sudo gedit ~/.bashrc
     2、export PATH="/home/yj/anaconda2/bin:$PATH"  (这里的/home/yj是我电脑的绝对路径,根据自己anaconda安装目录自行更改)
     3、source ~/.bashrc
    
    • 1
    • 2
    • 3
    • 4
  • 编译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 
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
  • 在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
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
  • 启动digits时可能出现diggits caffe path erro:

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

.报错解决

在运行./digits-devserver若出现无法找到caffe目录的情况,解决办法是修改对应的python代码(个人认为只有这个办法,代码写的有问题)
打开:~/digits/digits/config/caffe.py
修改如下几行代码,在 load_from_envvar函数中修改代码

    if platform.system() == 'Windows':
        executable_dir = os.path.join(value, 'install', 'bin')
        python_dir = os.path.join(value, 'install', 'python')
    else:
        #executable_dir = os.path.join(value, 'build', 'tools')
        executable_dir = '/home/user/caffe/build/tools'   #对应自己的目录进行修改
        #python_dir = os.path.join(value, 'python')
        python_dir = '/home/user/caffe/python'  #对应自己目录进行修改

注意这里的

#对应自己的目录进行修改
要去掉,不能有汉语,不然会出现下面问题。

Python编码错误的解决办法SyntaxError: Non-ASCII character '\xe5' in file

现象】
在编写Python时,当使用中文输出或注释时运行脚本,会提示错误信息:

SyntaxError: Non-ASCII character '\xe5' in file *******

【原因】

python的默认编码文件是用的ASCII码,而你的python文件中使用了中文等非英语字符。

【解决办法】

在Python源文件的最开始一行,加入一句:

# coding=UTF-8(等号换为”:“也可以)

或者

# -*- coding:UTF-8 -*-


关掉digits终端,试图自定义启动,然而它提示:


1 socket.error: [Errno 98] Address already in use: ('0.0.0.0', 5000)

于是我又去搜如何KILL掉进程。。最终方法如下:

1 sudo su #进入root权限
2 lsof -i:5000  #5000是我的端口号
3 kill -9 <pid>   #pid指进程号

后来我发现上面错误可以忽略,不影响后面训练。

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


猜你喜欢

转载自blog.csdn.net/flowrush/article/details/80232133
今日推荐