声明:本次博客主要记录自己配置环境的过程以及中间遇到的问题和解决问题的方案,如果能有幸帮助到他人不胜荣幸,如果错误,望指出,以便及时更改。另外本方法是博主在自己的机子上一步一步进行的,确保可行,但是具体到不同的机子可能会有不同的问题,仅供参考。
环境:纯净的ubuntu16.04 显卡: GTX1050
安装流程:
1、安装英伟达显卡驱动
2、安装cuda8.0
3、安装cudnn
4、安装anaconda2
5、配置caffe环境,配置python接口
一:安装英伟达显卡驱动
本人的显卡为GTX1050,在网上看了诸多教程,好多教程都说要提前去官网下载好驱动,然后关闭图形界面,卸载ubuntu自带的驱动之类的,这种方法我亲身实验过几次,效果不好,装不上,总出问题,最明显的就是在登录界面循环,最后不得不把驱动卸载才能进去。本次方法使用ppa源直接安装,如下:
首先先去官网看一下自己GPU对应的驱动的版本号,这个不需要下载。
我使用的版本是375。
1、电脑连上网
2、按下ctrl+alt+F1进入tty模式(黑窗口)
3、输入账户名和密码(建议此处不用小键盘)
4、依次运行下列语句
sudo apt-get purge nvidia-* //删除现有驱动
sudo add-apt-repository ppa:graphics-drivers/ppa //添加源
sudo apt-get update //更新源
sudo apt-get install nvidia-375 //nvidia-后面的数字是版本号
sudo reboot //重启
电脑重启之后,打开终端,输入:
nvidia-smi
出现结果如下图:
或者直接右上角,关于这台计算机,如下
OVER !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
二、安装cuda8.0
2.1 gcc版本问题
cuda8.0在ubuntu16.04中好像支持的gcc版本不超过5.3,提前先查一下自己的gcc版本,如果不符合要求就要降级。
查询方式:
gcc --version
g++ --version
博主的版本如下:
不需要降级。
如果需要降级的话推荐下面这种方式:
(1)下载gcc/g++ 4.7.x
sudo apt-get install -y gcc-4.7
sudo apt-get install -y g++-4.7
(2)链接gcc/g++实现降级
cd /usr/bin
sudo rm gcc
sudo ln -s gcc-4.7 gcc
sudo rm g++
sudo ln -s g++-4.7 g++
2.2 安装cuda8.0
请提前下载好cuda 8.0的runfile安装包,请自行百度,我用的是.run格式,安装包放在下载目录下。
1、cd到下载目录
2、终端输入下列代码
sudo sh cuda_8.0.61_375.26_linux.run --override
3、终端开始安装,一直按空格,直到下面显示100%
4、输入accept,接受协议
5、输入n,不安装驱动,【这个地方一定输入n】
接下来的输入y或者default直接回车就行,具体如下图:
等待完成即可。
OVER !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
三、安装cudnn
3.1安装cudnn8.0
自行百度下载相对应的cudnn版本,博主使用的为cudnn8.0,压缩包在下载目录下。
1、cd 下载,进入下载目录
2、终端输入下列代码:
tar -zxvf cudnn-8.0-linux-x64-v5.1.tgz
3、解压之后下载目录会产生一个cuda文件夹,然后依次输入下面代码。
cd cuda/include/
sudo cp cudnn.h /usr/local/cuda/include/ #复制头文件
cd ../lib64 #打开lib64目录
sudo cp lib* /usr/local/cuda/lib64/ #复制库文件
sudo chmod a+r /usr/local/cuda/include/cudnn.h /usr/local/cuda/lib64/libcudnn* #给所有用户增加这些文件的读权限
3.2 建立软连接
1、终端依次输入下列代码。
cd /usr/local/cuda/lib64/
sudo rm -rf libcudnn.so libcudnn.so.5
sudo ln -s libcudnn.so.5.1.3 libcudnn.so.5
sudo ln -s libcudnn.so.5 libcudnn.so
2、设置环境变量,终端输入下列代码。
sudo gedit /etc/profile
3、在打开的文档最下面加入下面代码。
PATH=/usr/local/cuda/bin:$PATH
export PATH
4、保存退出,接下来创建链接文件,终端输入下列代码。
sudo vim /etc/ld.so.conf.d/cuda.conf
5、按a进入插入模式,输入下面代码。
/usr/local/cuda/lib64
6、按esc退出插入模式,按:wq保存退出。
注意:vim是一个编辑器,没安装的可以输入下面代码进行安装。
sudo apt install vim
如果闲麻烦直接使用gedit编辑器就可以了,也就是将第四条代码换成下面的。
sudo gedit /etc/ld.so.conf.d/cuda.conf
其他同上,保存退出即可。
7、更新,终端输入下列代码。
sudo ldconfig #使链接生效
注意:此处博主出现了一个问题,如下图。
原因:系统找的是一个符号连接,而不是一个文件。这应该是个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
然后重新更新,终端输入。
sudo ldconfig
即可。
3.3 cuda Samples 测试
1、cd 到切换到CUDA 8.0 Samples默认安装路径(即在NVIDIA_CUDA-8.0_Samples目录下)。
2、终端输入。
sudo make all -j8 #8代表8核,可以更改
3、完成后终端依次输入。
cd bin/x86_64/linux/release
./deviceQuery
结果如下图,表明cuda和cudnn配置成功。
四、安装anaconda2
anaconda集成了很多的包,博主使用的是anaconda2,安装包请自行下载。
1、cd 下载目录下
2、终端输入
bash Anaconda2-4.3.1-Linux-x86_64.sh
3、开始安装,按照提示选择yes就行,最后有个关于加入路径的问题,一定选择yes。如下图。
4、终端输入
conda list
会显示anaconda集成的包,如下图
完成安装。
OVER !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
五、配置caffe环境,编辑python接口
博主曾写过一片CPU版本的caffe环境配置,有意这可以查看我的博客http://blog.csdn.net/heimu24/article/details/53375873
5.1 依赖包安装,依次输入下列代码。
sudo apt-get install libprotobuf-dev
sudo apt-get install libleveldb-dev
sudo apt-get install libsnappy-dev
sudo apt-get install libopencv-dev
sudo apt-get install libhdf5-serial-dev
sudo apt-get install protobuf-compiler
sudo apt-get install libgflags-dev
sudo apt-get install libgoogle-glog-dev
sudo apt-get install liblmdb-dev
sudo apt-get install libatlas-base-dev
sudo apt-get install libboost-all-dev
5.2 下载caffe
(1)git安装
依次输入下列代码。
sudo apt-get install git
git clone git://github.com/BVLC/caffe.git
(2)直接下载
下载地址:https://github.com/BVLC/caffe
得到压缩包,然后将其放到home目录下解压即可,便于方面,建议重命名为caffe。
5.3 编译caffe
1、cd caffe目录
cd caffe/
2、生成Makefile.config文件
这里是将caffe-master目录下自带的Makefile.config.example文件复制一份并更名为Makefile.config,命令如下:
cp Makefile.config.example Makefile.config
3、修改Makefile.config文件中的配置
(1)以记事本方式打开Makefile.config文件
sudo gedit Makefile.config
(2)去掉use_CUDNN前面的#号,如下图
(3)配置引用文件路径(主要是HDF5的路径问题)
原来的路径配置如下图:
修改为下图
增加的内容为:
/usr/include/hdf5/serial
/usr/lib/x86_64-linux-gnu/hdf5/serial
注意中间有个空格。
5.4 编译caffe
依次执行下面代码
sudo make clean
sudo make all -j8
sudo make test -j8
sudo make runtest -j8
PS:最好先make clearn一下,后面的-j8可加可不加,加上只是为了多核运行提高速度。另外执行make all的之后会有NVCC警告,这个没影响,直接忽略点就行,看着不舒服的话可自行百度。
最后执行完runtest之后结果如下图。
OVER !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
5.5 编译Python接口
1.sudo apt-get install python-pip
2.sudo apt-get install gfortran
3.cd ~/caffe-master/python
4.for req in $(cat requirements.txt); do pip install $req; done
1、终端输入
sudo gedit ~/.bashrc
2、文档最下面添加下面代码
export PYTHONPATH=/home/heimu/caffe/python:$PYTHONPATH
注意:这里注意填写自己的路径。
3、更新配置
sudo ldconfig
4、编译Python接口
cd caffe/
sudo make pycaffe -j8
这个时候报错,如下图
解决方案:
终端输入下列代码
sudo apt-get install python-numpy
然后重新编译
sudo make pycaffe -j8
结果如下图:
OVER!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
5.6 验证Python接口
1、进入python环境
cd ~
python
2、导入caffe
import caffe
出错如图
解决方案:
重新打开一个新的终端,重复以上步骤,进入python环境,import caffe,出错如图
解决方案如图
然后再重复以上步骤,import caffe,如图
OVER !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
5.7 测试MNIST数据集
1、下载数据集和转化格式
cd ~/caffe/
./data/mnist/get_mnist.sh
./examples/mnist/create_mnist.sh
2、修改配置
cd ~/caffe/
sudo gedit ./examples/mnist/lenet_solver.prototxt
将模式改为CPU,如下图。
3、训练模型
cd ~/caffe/
./examples/mnist/train_lenet.sh
结果如下图
CPU运行时间10分钟左右。
当然好不容易配置了GPU,肯定要用啊,所以将第二步中的模式改回为GPU即可,然后训练模型,结果同上面一样,不过时间为1分钟左右,速度还是相当可以的。
一整套的深度环境配置终于搞完了,谨以此博客纪念我这不易的环境配置经历!!!
参考文献:
http://blog.csdn.net/iotlpf/article/details/54175064
http://blog.csdn.net/u012283902/article/details/66471349
http://blog.csdn.net/u010193446/article/details/53259856