ubuntu16.04+gtx1060+cuda8.0+caffe安装教程
第一步:安装nvidia显卡驱动
由于是台式机,显示器屏幕比较大,所以刚装好Ubantu16.04系统后分辨率比较
低,看起来很不舒服,所以可以手动修改一下grub文件从而来提高分辨率,所以我们可以在终端输入
sudo vim/etc/default/grub
找到下面这几行:
# The resolution used on graphicalterminal
# note that you can use only modeswhich your graphic card supports via VBE
# you can see them in real GRUB withthe command 'vbeinfo'
# GRUB_GFXMODE=640×480
往最后添加一行设置自己想要的分辨率,推荐1920x1080,只需要增加下面一行: GRUB_GFXMODE=1920×1080
#这里分辨率自行设置
理论上设置完以后只需要在终端编辑
sudo update-grub
从而进行更新grub,重新启动Ubuntu系统后就能生效了,但是,我们现在还没有安装显卡驱动,所以该次分辨率设置不能生效,所以现在我们应该做的工作是下载显卡驱动进行安装。
我们打算直接使用Ubuntu命令进行安装,要使用Ubuntu的命令进行安装,首先要做的就是更新Ubuntu16.04的源,终端输入
cd /etc/apt/ #进入Ubuntu高级软件包工具目录
sudo cp sources.list sources.list.bak #先备份原来的源
sudo vi sources.list #编辑sources.list
把下面的源添加到source.list中:
deb http://mirrors.ustc.edu.cn/ubuntu/ xenial mainrestricted universe multiverse
deb http://mirrors.ustc.edu.cn/ubuntu/ xenial-securitymain restricted universe multiverse
deb http://mirrors.ustc.edu.cn/ubuntu/ xenial-updatesmain restricted universe multiverse
deb http://mirrors.ustc.edu.cn/ubuntu/ xenial-proposedmain restricted universe multiverse
deb http://mirrors.ustc.edu.cn/ubuntu/ xenial-backportsmain restricted universe multiverse
deb-src http://mirrors.ustc.edu.cn/ubuntu/ xenial mainrestricted universe multiverse
deb-src http://mirrors.ustc.edu.cn/ubuntu/xenial-security main restricted universe multiverse
deb-src http://mirrors.ustc.edu.cn/ubuntu/ xenial-updatesmain restricted universe multiverse
deb-src http://mirrors.ustc.edu.cn/ubuntu/xenial-proposed main restricted universe multiverse
deb-src http://mirrors.ustc.edu.cn/ubuntu/xenial-backports main restricted universe multiverse
最后更新源和更新已安装的包,在终端中输入:
sudo apt-get update
sudo apt-get upgrade
我们继续来使用add-apt-repository脚本添加英伟达驱动ppa到当前库中并且自动导入公钥。
sudo add-apt-repositoryppa:graphics-drivers/ppa
回车后继续
sudo apt-get update
sudo apt-get install nvidia-367
sudo apt-get install mesa-common-dev
sudo apt-get install freeglut3-dev
安装完成后就可以重启系统,然后GTX1060显卡驱动就会生效,由于先前我们设置好了分辨率,所以重新启动后我们的显示器显示的图像就会舒服多了。
重启完以后进行测试:
终端输入:
nvidia-smi
出现下面这种效果就表示安装成功了。
第二步:cuda安装
所需文件:cuda_8.0.27_linux.run、cudnn-8.0-linux-x64-v5.1.tgz
我的百度云盘链接:http://pan.baidu.com/s/1boC8NAB 密码:sbzk
安装cuda8.0
进入到cuda_8.0.27_linux.run所在目录,在终端执行命令如下:
sh cuda_8.0.27_linux.run -override
按下上面命令后,安装程序随即便启动了。接下来执行这几步操作:
1、一直按空格到最后,然后输入accept接受条款。
2、输入n不安装nvidia图像驱动,因为我们先前已经安装过了。
3、输入y安装cuda8.0工具。
4、回车确认cuda默认安装路径:/user/local/cuda-8.0。
5、输入y用sudo权限运行安装,输入密码。
6、可以输入y或者n安装或者不安装指向/usr/local/cuda的符号链接。
7、输入y安装CUDA8.0Samples,以便后面进行测试。
8、回车确认CUDA8.0Samples默认安装路径:/home/自己的用户名,该安装路径测试完就可以删除了。
安装cudnnv5.1
先进入到cudnn-8.0-linux-x64-v5.1.tgz所在目录,然后解压该文件:
tar zxvf cudnn-8.0-linux-x64-v5.1.tgz
解压后会产生一个cuda目录,进入cuda/include目录下,执行如下操作:
cd cuda/include/
sudo cp cudnn.h /usr/local/cuda/include/ #复制头文件
再进入cuda/lib64目录下,执行如下操作:
cd ../lib64 #打开lib64目录
sudo cp lib* /usr/local/cuda/lib64/ #复制库文件
给所有用户增加这些文件的读权限
sudo chmod a+r/usr/local/cuda/include/cudnn.h
sudo chmod a+r /usr/local/cuda/lib64/libcudnn*
建立软链接
首先在终端输入如下命令:
cd /usr/local/cuda/lib64/
sudo rm -rf libcudnn.so libcudnn.so.5
sudo ln -s libcudnn.so.5.1.5 libcudnn.so.5
sudo ln -s libcudnn.so.5 libcudnn.so
设置环境变量,终端输入
sudo gedit /etc/profile
在末尾加入
PATH=/usr/local/cuda/bin:$PATH
export PATH
保存后,创建链接文件
sudo vim /etc/ld.so.conf.d/cuda.conf
按a进入插入模式,增加下面一行
/usr/local/cuda/lib64
最后在终端输入sudo ldconfig使链接生效
ldconfig原理为如下链接
链接:http://blog.csdn.net/huangjin0507/article/details/50372721
注意:我在执行ldconfig命令时候遇到下面的错误:
/sbin/ldconfig.real: /usr/lib/nvidia-375/libEGL.so.1 不是符号连接
/sbin/ldconfig.real: /usr/lib32/nvidia-375/libEGL.so.1 不是符号连接
原因为:系统找的是一个符号连接,而不是一个文件。这应该是个bug。
解决方法:
1、对这两个文件更名
2、重新建立符号连接
在终端执行下面的命令
sudo mv /usr/lib/nvidia-375/libEGL.so.1 /usr/lib/nvidia-375/libEGL.so.1.org
sudo mv /usr/lib32/nvidia-375/libEGL.so.1
/usr/lib32/nvidia-375/libEGL.so.1.org
sudo ln -s /usr/lib/nvidia-375/libEGL.so.375.39 /usr/lib/nvidia-375/libEGL.so.1
sudo ln -s /usr/lib32/nvidia-375/libEGL.so.375.39 /usr/lib32/nvidia-375/libEGL.so.1
cuda Samples测试
打开cuda 8.0 Samples默认安装路径,终端输入
cd /home/username/NVIDIA_CUDA-8.0_Samples #username是自己的用户名
sudo make all -j4 #4核
小技巧:
查看CPU核心数:grep "cpu cores" /proc/cpuinfo|uniq
查看CPU个数:grep "physical id"/proc/cpuinfo|sort -u|wc -l
每个物理CPU上逻辑CPU个数:grep "siblings"/proc/cpuinfo|uniq
用上面的命令查看自己电脑的CPU核数。
执行完上面的make all –j4命令后会出现“unsupported GNU version! gcc versions later than 5.3 arenot supported!”的错误。这是由于GCC版本过高导致的。
解决办法:
终端执行如下命令
cd /usr/local/cuda-8.0/include
sudo cp host_config.h host_config.h.bak
sudo gedit host_config.h
接着可以通过ctrl+f寻找有“5.3”的地方,因为该文件只有一处5.3,如下
# if __GNUC__ > 5 || (__GNUC__ == 5&& __GNUC_MINOR__ > 3)
#error -- unsupported GNU version! gccversions later than 5.3 are not supported!
将两个5改成6,即
#if __GNUC__ > 6 || (__GNUC__ == 6&& __GNUC_MINOR__ > 3)
保存退出,继续在终端输入
cd /home/username/NVIDIA_CUDA-8.0_Samples #username是自己的用户名
sudo make all -j4 #4核
等待编译完成
完成后继续向终端输入
cd bin/x86_64/linux/release
./deviceQuery
然后出现如下场景,表示已经成功安装了cuda了:
三、依赖包安装
终端输入
sudo apt-get install build-essential #必要的编译工具依赖
sudo apt-get install libprotobuf-devlibleveldb-dev libsnappy-dev libopencv-dev libhdf5-serial-dev protobuf-compiler
sudo apt-get install --no-install-recommendslibboost-all-dev
sudo apt-get install libatlas-base-dev
sudo apt-get install libgflags-devlibgoogle-glog-dev liblmdb-dev
四、安装python的pip和easy_install
终端输入
cd
wget --no-check-certificatehttps://bootstrap.pypa.io/ez_setup.py
sudo python ez_setup.py --insecure
wget https://bootstrap.pypa.io/get-pip.py
sudo python get-pip.py
五、安装科学计算和python所需的部分库
终端输入
sudo apt-get install libblas-devliblapack-dev libatlas-base-dev gfortran python-numpy
六、安装git,拉取源码
终端输入
sudo apt-get install git
git clone https://github.com/BVLC/caffe.git
七、安装python依赖
先执行命令
cd /home/username/caffe/python #username是你自己的用户名
终端输入
sudo apt-get install python-pip 安装pip
sudo su
for req in $(cat"requirements.txt"); do pip install -ihttps://pypi.tuna.tsinghua.edu.cn/simple $req; done
最后按Ctrl+D退出sudo su模式
八、编译caffe
终端输入
cd /home/pawn/caffe
cp Makefile.config.example Makefile.config
gedit Makefile.config
然后将USE_CUDNN := 1取消注释,
然后将INCLUDE_DIRS :=$(PYTHON_INCLUDE) /usr/local/include后面打上一个空格 然后添加/usr/include/hdf5/serial如果没有这一句可能会报一个找不到hdf5.h的错误
接着在终端输入
make all -j4
make过程中出现找不到lhdf5_hl和lhdf5的错误,
解决方案:
在计算机中搜索libhdf5_serial.so.10.1.0,在终端执行如下命令:
sudo find -name libhdf5_serial.so.10.1.0
找到后进入所在目录下
sudo ln libhdf5_serial.so.10.1.0 libhdf5.so
sudo ln libhdf5_serial_hl.so.10.0.2libhdf5_hl.so
最后在终端输入sudo ldconfig使链接生效
原终端中输入make clean清除第一次编译结果
再次输入make all -j4重新编译
最后在终端输入
make test -j4
make runtest -j4
make pycaffe -j4
make distribute 生成发布安装包
这时候可以测试一下python,终端输入
cd /home/pawn/caffe/python
python
import caffe
如果不报错就说明编译成功
九、设置python路径
在使用make pycaffe -j4命令完成caffe的python接口生成之后,还需要将python接口的路径进行设置。
终端执行
gedit ~/.bashrc
来对路径进行设置,在文件最后一行加入路径:
exportPYTHONPATH=/home/startag/caffe/python/:/home/startag/caffe/python/caffe/
注销或者重启,路径生效。
解释:PYTHONPATH是Python搜索路径,默认我们import的模块都会从PYTHONPATH里面寻找。
敲下import urllib后,Python解释器会逐个从上面的路径列表选出一个路径然后搜索urllib模块直到找到为止。这里最后在 D:\Python3\lib 下找到(ubuntu自带python3)
十、mnist测试
下载mnist数据集,终端输入
cd /home/pawn/caffe/data/mnist/
/get_mnist.sh #获取mnist数据集
在/home/pawn/caffe/data/mnist/目录下会多出训练集图片、训练集标签、测试集图片和测试集标签等4个文件
mnist数据格式转换,终端输入
cd /home/pawn/caffe/
./examples/mnist/create_mnist.sh
必须要在第一行之后运行第二行,即必须要在caffe根目录下运行create_mnist.sh
此时在/caffe/examples/mnist/目录下生成mnist_test_lmdb和mnist_train_lmdb两个LMDB格式的训练集和测试集
LeNet-5模型描述在/caffe/examples/mnist/lenet_train_test.prototxt
Solver配置文件在/caffe/examples/mnist/lenet_solver.prototxt
训练mnist,执行文件在/caffe/examples/mnist/train_lenet.sh
终端输入
cd /home/pawn/caffe/
./examples/mnist/train_lenet.sh