[深度学习]Ubuntu16.04 + GTX 1050 + cuda8.0 + cuDNN5.1 + caffe安装详解
首先吐个槽,ubuntu + nvidia的显卡驱动简直是反人类,害的我折腾了一天多。
寒假放假回家没事干,正好给家里电脑升级了显卡gtx1050可以跑跑CNN。我在实验室的显卡是560,比较老了,按着实验室的环境配置流程走下来居然不能用,症状就是在Python中不能成功的import caffe,然后重启后无限循环登录。
问题:
不能进入ubuntu的图形界面,在登录界面循环。
解决办法:
Nvidia显卡驱动的锅,卸载显卡驱动,按Ctrl+Alt+F1进入终端模式登录,输入命令
sudo apt-get remove --purge nvidia*卸载显卡驱动,然后重启计算机,命令如下:
sudo reboot现在就可以登录图形界面进行cuda + cudnn + caffe的环境配置了。
2.1 Opencv安装
在caffe中其实是调用了Opencv的一些服务的,因此我们首先需要安装Opencv,安装流程如下: (1)在Opencv官网下载http://opencv.org/downloads.html需要的Opencv linux版的安装包,这里我选择的Opencv 2.4.12; (2)依赖包的安装,主要命令如下:sudo apt-get install build-essential sudo apt-get install libgtk2.0-dev libavcodec-dev libavformat-dev libtiff4-dev libswscale-dev libjasper-dev sudo apt-get install cmake sudo apt-get install pkg-config(3)把Opencv安装包解压,放到某目录下,这里我是放到了home目录下,在Opencv的目录下新建文件夹为release,在终端中进入Opencv的release目录,运行如下命令:
cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local ..(4)使用如下命令编译Opencv并安装:
make sudo make install至此Opencv已经安装完成,可以使用codeblocks建工程使用Opencv进行测试,方法见我的一篇博文《Ubuntu下codeblocks安装配置方法及opencv配置方法》
2.2 配置其他依赖
这里我有一个shell脚本文件,可以把它复制到一个新的.sh文件中,并使用如下命令给该.sh文件赋予运行的权限(xxx表示文件名)sudo chmod a+x xxx.sh运行该shell脚本
sh ./xxx.shshell脚本内容如下:
#!/bin/bash # ATLAS echo "===========atlas==============" apt-get -y install libatlas-base-dev # snappy echo "===========snappy==============" # apt-get -y install snappy apt-get -y install libsnappy-dev # boost echo "===========boost==============" apt-get -y install libboost-dev apt-get -y install libboost-filesystem-dev apt-get -y install libboost-system-dev apt-get -y install libboost-thread-dev apt-get -y install libboost-python-dev # protobuf echo "===========protobuf==============" apt-get -y install libprotobuf-dev apt-get -y install protobuf-compiler apt-get -y install python-protobuf # leveldb echo "===========leveldb==============" apt-get -y install libleveldb-dev # lmdb echo "===========lmdb==============" apt-get -y install liblmdb-dev # hdf5 echo "===========hdf5==============" apt-get -y install libhdf5-dev # glog echo "===========glog==============" apt-get -y install libgoogle-glog-dev # gflag echo "===========gflag==============" apt-get -y install libgflags-dev # cython echo "===========cython==============" apt-get -y install cython # scipy echo "===========scipy==============" apt-get -y install python-scipy # scikit-image echo "===========scikit-image==============" apt-get -y install python-skimage # pyyaml echo "===========pyyaml==============" apt-get -y install python-yaml # easydict echo "===========easydict==============" apt-get -y install python-pip # 指定使用科大镜像源安装easydict pip install easydict -i https://pypi.mirrors.ustc.edu.cn/simple ## 错误排查 # 修复一个比较奇怪的一定要检查这个目录是否存在的问题 mkdir -p /usr/lib64 # 修复cuda链接库找不到的问题 echo "/usr/local/cuda/lib64" > cuda.conf cp cuda.conf /etc/ld.so.conf.d ldconfig这个shell脚本是我师兄写的,在这里鸣谢我师兄!
2.3 caffe源码下载及编译
(1)安装gitsudo apt-get install git(2)拉取caffe源码
git clone https://github.com/BVLC/caffe.git(3)设置Makefile.config文件 把Makefile.config.example文件中内容进行复制,复制到新建的文件Makefile.config中,修改以下几项: i:把USE_CUDNN := 1这一行的注释取消掉,因为gtx1050的算力是6.1高于3.0,是可以使用cuDNN加速的,这里具体看自己的显卡配置; ii:在INCLUDE_DIRS := $(PYTHON_INCLUDE) /usr/local/include行后加空格,然后添加/usr/include/hdf5/serial (4)编译caffe i:在计算机中搜寻libhdf5_serial.so.10.1.0文件,找到其所在目录,在终端中进入该目录,并执行以下命令:
sudo ln libhdf5_serial.so.10.1.0 libhdf5.so sudo ln libhdf5_serial_hl.so.10.0.2 libhdf5_hl.so sudo ldconfig make all -j4ii:执行以下命令,其中-j4是表示使用4个线程进行编译
make test -j4 make runtest -j4 make pycaffe -j4 make distribute至此,caffe已经安装完成。
2.4 Nvidia驱动安装
这里注意,一定要去Nvidia官网上去下载驱动,特别是针对10系的显卡!!! 其他的老显卡,比如我实验室的GTX 560不用这么麻烦就可以,我也只配置过这两个显卡,10系显卡最好按照我这里的方法进行操作。 (1)去Nvidia官网下载GTX 1050驱动,网址如下:http://www.geforce.cn/drivers (2)给下载的驱动程序赋予可执行权限,这里的.run文件是显卡的驱动程序,安装时注意换成自己的文件名sudo chmod a+x NVIDIA-Linux-x86_64-375.26.run(3)关闭Ubuntu图形界面
sudo service lightdm stop使用Ctrl + Alt + F1进入终端界面并登录 (4)安装Nvidia驱动 在终端中进入之前下载的驱动程序所在的目录并执行以下命令:
sudo ./NVIDIA-Linux-x86_64-375.26.run --no-x-check --no-nouveau-check --no-opengl-files安装好驱动程序以后开启Ubuntu图形界面
sudo service lightdm start按Ctrl + Alt + F7进入图形界面。 至此Nvidia驱动安装完成。
2.5 Cuda安装
同样,这里的Cuda安装时也不要使用命令行直接安装,去Nvidia官网https://developer.nvidia.com/cuda-downloads下载cuda进行安装 这里同样要注意,下载时要选择runfile类型文件,具体的选择类型如下图所示:文件有1.4G大小,最好用迅雷下会快一些。 下载好Cuda,安装过程如下:
sh cuda_8.0.27_linux.run --override首先会提醒你看一些它的使用协议,一直按空格直到出现是否同意,选择Accept 程序会问你要不要安装Nvidia驱动,这里千万不要选择安装,因为我们已经安装过了,而且GTX1050这里安装的驱动与我们之前安装的驱动版本是不一样的,如果选择安装又会出现无限循环登录的问题(血的教训);
接下来的安装过程一路选择yes,然后按照默认的来就可以了。
2.6 cuDNN安装
去Nvidia官网https://developer.nvidia.com/rdp/cudnn-download下载cuDNN安装包,选择这个:Download cuDNN v5.1 (August 10, 2016), for CUDA 8.0 版本 解压安装包以后会出现cuda的目录,进入该目录cd cuda/include/ sudo cp cudnn.h /usr/local/cuda/include/ cd ../lib64 sudo cp lib* /usr/local/cuda/lib64/ sudo chmod a+r /usr/local/cuda/include/cudnn.h/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 gedit /etc/ld.so.conf.d/cuda.conf在该文件中,插入/usr/local/cuda/lib64并保存,然后使用sudo ldconfig使之生效。
2.7 测试
在终端中进入CUDA 8.0 Samples默认安装路径,输入命令:sudo make all -j4此步可能会出错,出错处理见最下面的参考链接4,我这里没有出错。完成后继续输入
cd bin/x86_64/linux/release ./deviceQuery出现下图则表示cuda安装完成
在已经配置好的eclipse + pydev环境中,新建python工程和源程序,并在工程名下右键——Properties——PyDev-PYTHONPATH——External Libraries中Add Source folder中选择/home/hanchao/caffe/python路径 在源程序中输入
import caffe print "hello world"若编译运行后没有错误,则环境已经配置好。
-------------------------------------------------------------------------------更新的分割线------------------------------------------------------------------- 如果在编辑pycaffe时出现”python/caffe/_caffe.cpp:10:31: fatal error: numpy/arrayobject.h: 没有这样的文件或目录“问题时,注意修改Makefile.config文件 把
PYTHON_INCLUDE := /usr/include/python2.7 /usr/lib/python2.7/dist-packages/numpy/core/include修改为
PYTHON_INCLUDE := /usr/include/python2.7 /usr/local/lib/python2.7/dist-packages/numpy/core/include即可
参考链接: surgewong—— Opencv 2.4.9在Ubuntu下的配置安装
余昌黔|书山有路——【解决】Ubuntu安装NVIDIA驱动后桌面循环登录问题 Ubuntu 14.04安装NVIDIA英伟达显卡驱动 WoPawn的博客——ubuntu16.04+gtx1060+cuda8.0+caffe安装、测试经历
声明:该文观点仅代表作者本人,牛骨文系教育信息发布平台,牛骨文仅提供信息存储空间服务。
- 上一篇: CSS 清除默认样式模版
- 下一篇: CUDA进阶第五篇-如何估算出程序的GPU加速比