原文地址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
现象】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路径结构的请自行百度。解决上述问题还有其他方法,如果上述方法不行,请问度娘。问题总会解决,实在不行,重装系统吧; 重新装好的系统建议多重启几次,会神奇的发现能解决一些问题,不要问我为什么,我也不知道。加油吧,骚年,祝你们好运!