心酸的Caffe安装之路 环境搭配 Ubuntu16.04+gtx1080+cuda8.0+cudnn5.1+opencv+Anaconda3+caffe
首先安装Ubuntu16.04,系统可以在官网上下载,因为我是安装的双系统,所以出现了很多问题,不过这里最重要的问题就是引导的问题,在我的上一篇博客中已经写了。不请欻的话可以在下面留言。
安装好系统以后,就需要把我们需要的软件包都下载下来,我是在windows上提前下载好然后进入Ubuntu系统的,所有的东西在下图。
软件包依次是Anaconda3(4.2.0) python3版本的, caffe源码, Nvidia显卡驱动 ,cudnn, opencv3.1,cuda8.
在下好这些东西就可以开始配置环境了。
一、安装我们的显卡驱动,在这里要十分注意,不能直接在桌面环境安装我们的显卡驱动,否则会报错。
解决办法:
1、进入tty模式,按下CTRL+ALT+F1进入
2、关闭桌面 sudo lightdm stop
3、进入显卡驱动所在的目录 执行sudo ./xxxxxx.run xxx为你显卡驱动包的名字
在安装的时候,会刷出协议,直接按ctrl+c跳过,然后一直跟觉提示安装即可。
安装完成以后,不要忘记启动桌面
4、sudo lightdm restart
5、reboot
按道理来说,重启之后输出nivida -smi可以看见显卡驱动信息就表示安装成功了。但是我这里因为是技嘉的主板,不知道为什么不能关系sercuriy boot貌似是没有这个选项,所以这个命令识别不了,不过可以通过其他方法查看,比如查看系统的详细信息,能显示显卡就可以。
二、安装CUDA,命令跟上面一样,直接进入目录然后sudo ./xxxxxxxxxx
唯一要注意的就是在跳过阅读协议后,第一个对话会提示你要不要安装低版本的驱动,千万要点No,后面一直yes就够了。
安装完成以后要配置一下环境变量
输入sudo vim ~/.bashrc
在最后加入
export PATH=/usr/local/cuda-8.0/bin${PATH:+:${PATH}}
export LD_LIBRARY_PATH=/usr/local/cuda-8.0/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}
然后退出保存,如果vim命令不熟悉的可以百度一下。
最后生效一下环境变量
sources ~/.bashrc
这时候打开我们的cuda的安装路径,测试一下安装是否成功
cd /usr/local/cuda-8.0/samples/1_Utilities/deviceQuery
make
sudo ./deviceQuery
如果出现下面的信息,则成功了。
三、cudnn安装
将cudnn的包解压,然后进入include目录,执行下面命令
sudo cp cudnn.h /usr/local/cuda/include/ #将头文件复制到cuda的include文件夹
然后进入lib64目录下,执行下面命令
sudo cp lib* /usr/local/cuda/lib64/
cd /usr/local/cuda/lib64/
sudo rm -rf libcudnn.so libcudnn.so.5 #删除原来的动态文件
sudo ln -s libcudnn.so.5.0.5 libcudnn.so.5 #添加链接
sudo ln -s libcudnn.so.5 libcudnn.so
sudo ldconfig #更新链接
到这里就cudnn就安装好了。
四、opecv3.1安装
这里需要安装很多依赖库,包括即将要装的caffe一些依赖库,反正都装就好了。
这个可以参考下另外一个帖子
安装完这些依赖库以后,进入opencv文件夹,执行下面命令
mkdir build
cd build
cmake --D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local..
这里会提示有一个ipptv的包没有安装,可以等他继续下载也可以去网上下载好以后放到文件文件夹里面,具体做法是
建立一个这样的文件夹,名字为:linux-808b791a6eac9ed78d32a7666804320e
路径如下图
cmake成功会出现
Configuring done
Generating done
然后
make -j8 #表示8个任务同时跑
make install
等待安装完成就可以了。完成以后可以输入下列的命令查看版本
pkg-config --modversion opencv
出现对应的版本则安装成功
五、安装Anaconda3
直接进入安装包存在的地方执行
sudo sh xxxxxx.sh
然后按照提示安装就可以。
安装完以后,会提示是否加入环境变量,yes加入就可以。
然后需要更新一下anaconda的各种包,这里用conda update anaconda来执行,因为不更新的话,后面遇到导入caffe的时候会出各种错误,所以提前更新更好。
这里可能遇到提示权限不足的情况,查看了stackflow里面 的解决办法,输入下列命令,然后安装就可以。
sudo chmod 777 -R anaconda3
更新完了后就开始进行caffe的安装
六、caffe编译
解压caffe包,然后更改Makefile.config.example为Makefile.config
然后用gedit打开,这里需要修改几个重要的参数。
第一个
USE_CUDNN=1 #去掉前面的注释
第二个
OPENCV_VERSION=3 #去掉前面的注释,我们使用的是opencv3
第三个
# Anaconda Python distribution is quite popular. Include path:
# Verify anaconda location, sometimes it's in root.
ANACONDA_HOME := $(HOME)/anaconda3
PYTHON_INCLUDE := $(ANACONDA_HOME)/include \
$(ANACONDA_HOME)/include/python3.5m \
$(ANACONDA_HOME)/lib/python3.5/site-packages/numpy/core/include #将原来的修改成这样
第四个
# Uncomment to use Python 3 (default is Python 2)
PYTHON_LIBRARIES := boost_python-py35 python3.5m
# PYTHON_INCLUDE := /usr/include/python3.5m \
# /usr/lib/python3.5/dist-packages/numpy/core/include
去掉第一个注释,并且要修改为这样,不然后面会报未定义的符号的错误。
这里原文是boost_python3 python3.5m,编译会出找不到文件的错误,从stackflow上面得知有一个解决方法
这里是查找自己系统的lboost-python对应的版本,我电脑上的是35,所以将 boost_python3改为 boost_python-py35就可以
第五个参数
# Whatever else you find you need goes here.
INCLUDE_DIRS := $(PYTHON_INCLUDE) /usr/local/include /usr/include/hdf5/serial/ #这一行改为这样
LIBRARY_DIRS := $(PYTHON_LIB) /usr/local/lib /usr/lib
第六个参数
# Uncomment to support layers written in Python (will link against Python libs)
WITH_PYTHON_LAYER := 1 #因为我就是要用Python来写
第七个参数
需要打开makefie文件,第181行
改为LIBRARIES += glog gflags protobuf boost_system boost_filesystem m hdf5_hl hdf5
然后保存退出。在caffe路径下面依次执行下面命令
make all -j8
make test
make runtest
完了以后直接
make pycaffe #编译python接口
到这里caffe基本上就搞定了,只要讲pycaffe的路径添加到Python的环境变量中就可以使用了。
sudo vim ~/.bashrc
在末尾加入
export PYTHONPATH=/home/ubuntu/caffe/caffe-master/python:$PYTHONPATH
前面一段是我电脑上的路径,你们根据caffe文件的路径添加就可以。然后保存退出
最后source ~./bashrc生效路径
如果没问题的话就可以在python 或者jupyter中import caffe了
到这里就完毕了。可以开始caffe的运用了,迫不及待想试试1080ti的威力。