前言:
首先说一下博主是本科生,因为毕设是相关的题目,所以没办法硬着头皮学,以前可从来没有接触过这方面,纯正小白,尤其是环境配置,网上大量教程都是关于GPU的配置,无奈博主的电脑配置太渣,没有英伟达的显卡,没办法,只能cpu跑了,环境最好是Ubuntu,问题关键是不懂这个操作系统啊,还要学习装双系统,各种懵逼,各种出问题,于是各种重装系统,最后总算是搞出来了,这次主要纪念一下我这苦逼的环境配置历程,也希望能够帮到小白,大神自动忽略。
环境:Ubuntu16.04 ,电脑配置没要求,不需要英伟达显卡,cpu配置
第一步:安装Ubuntu系统
博主这里给个双系统的链接,当然自行百度也行,这类教程很多。
http://jingyan.baidu.com/article/76a7e409bea83efc3b6e1507.html
第二步:配置caffe环境
声明:博主大部分采用了下面这篇博客的方法,
http://blog.csdn.net/u010193446/article/details/53259294,只是在此基础上自行安装,遇到了一些问题,在原作者博客基础上加入了自己遇到的问题以及解决方案,另外由于我是在window上写的博客,所以有的图片直接使用的是原作者的,尊重原创作者,特此声明!
1、检查自己的电脑是否具有GPU
输入:
lspci | grep -i nvidia
结果一:
如果未显示任何内容,则证明你的电脑不支持GPU,也就是没有英伟达显卡,其实稍微懂点电脑知识的自己的电脑配置应该还是知道的,这一步其实可以跳过去
结果二:
显示类似下图的内容:
则表明显卡版本GTX650,支持GPU,可以去http://developer.nvidia.com/cuda-gpus
验证,可以自行百度或者Googl相关教程,这里只介绍CPU环境配置。
2、依次安装依赖包
依次输入下列语句:
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
遇到的问题:后面会出现error,提示没发现boost
解决方法:安装依赖项boost
sudo apt-get install libboost-all-dev
PS:caffe配置需要好多依赖项,如果提示少哪些依赖项,安装上即可
推荐博客:http://blog.csdn.net/u010402483/article/details/51506616
3、下载caffe
方法1>:使用git安装
安装git
sudo apt-get install git
安装结束后,下载caffe
git clone git://github.com/BVLC/caffe.git
这样你会在跟目录下看到有个caffe目录
PS:博主亲测,这种方法下载速度特别慢,明明打开网页速度特别快,网速挺快的,但就是通过终端下载caffe特别慢,不给网速,所以我采取第二种方式。
方式2:直接下载
下载地址:https://github.com/BVLC/caffe
此种方式下载得到caffe-master.zip
配置步骤:默认你下载完的caffe-master.zip会保存在下载目录下,将caffe-master.zip 这个文件拷贝到主文件夹下,即/home/*(您的服务器名字)文件夹下,点击鼠标右键,选择提取到此处(即是解压)。
PS:切记,方式一得到的文件夹名为caffe,方式二得到的文件夹名caffe-master,两个的内容是一样的,只是在后续步骤中注意匹配对应的文件名。博主使用的是方式2,所以后续文件夹为caffe-master。
4、编译caffe
1>进入caffe目录
cd caffe/
如果是方式2下载的caffe,那么进入caffe-master目录
cd caffe-master/
2>生成Makefile.config文件
这里是将caffe-master目录下自带的Makefile.config.example文件复制一份并更名为Makefile.config,命令如下:
cp Makefile.config.example Makefile.config
此时目录下就会有Makefile.config文件,如下图:
3>修改Makefile.config文件中的配置
1>>以记事本方式打开Makefile.config文件
sudo gedit Makefile.config
2>>去掉CPU_ONLY前面的#号,如下图
#号代表注释,把#号去掉就代表该行代码运行。
3>>配置引用文件路径(主要是HDF5的路径问题)
PS:这个很重要,我也试过其他方法,都失败了,博主亲测该方法可行。
原来的路径配置如下图:
修改为下图:
增加的内容为:
/usr/include/hdf5/serial
/usr/lib/x86_64-linux-gnu/hdf5/serial
注意中间有个空格。
4>>有的教程上说要把 # BLAS := atlas 前面的#号去掉,博主配置的时候发现前面本来就没有#号,自己还是看一下吧,有的话就去掉。
5>>执行编译
sudo make clean
sudo make all -j8
sudo make test -j8
sudo make runtest -j8
PS:最好先make clearn一下,后面的-j8可加可不加,加上只是为了多核运行提高速度。
执行完 make all,如下图
执行完runtest之后,效果如下:
5、编译Python接口
caffe具有Python和C++接口,这里只展示如何编译Python接口
1>安装pip
sudo apt-get install python-pip
2>安装Python接口依赖库
在caffe-master根目录下,有个python文件夹,文件夹里面有个requirements.txt,里面有需要的依赖库和版本信息,按照其安装即可,在安装前,需要先安装fortran编辑器(gfrotran),因为安装scipy库时需要它,命令如下:
sudo apt-get install gfortran
cd ~/caffe-master/python
for req in $(cat requirements.txt); do pip install $req; done
PS:这个地方需要下载好多package,不给网速,很慢,最后博主用手机4G开的热点。。。
安装结束后,可以执行如下语句验证:
sudo pip install -r requirements.txt
可以看到,安装成功的,都会显示Requirement already satisfied,没安装成功的,会继续进行安装。
PS:博主装的时候显示的是继续安装。。
3>将caffe-master根目录下的python文件夹加入到环境变量
1>>打开配置文件bashrc
sudo gedit ~/.bashrc
2>>在文件的最下面添加
export PYTHONPATH=/home/heimu/caffe-master/python:$PYTHONPATH
如下图:
PS:这里注意路径的选择,我的路径为/home/heimu/caffe-master/python。
查看路径的方式1:
终端输入:
cd ~/caffe-master/python
pwd
方式2:
直接在可视化文档找到该文件,CTRL+T即可显示当前路径。
3>>执行更新配置(有时更新不起作用时,可以重启电脑就会有效):
sudo ldconfig
PS:博主重启了一下,似乎并没有什么反应,不过似乎不影响
4>编译Python接口
cd ~/caffe-master
make pycaffe -j8
PS:这个地方一定要先进入caffe-master的当前目录
这个地方出错了:
fatal error: numpy/arrayobject.h: No such file or directory.
解决方案1:
打开Makefile.config文件
sudo gedit 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
其实就是加入了local
PS:用这种方法并没有解决我的问题,每个人电脑不一样,可能能解决你的问题,我用的方案二
方案2:推荐博客http://blog.csdn.net/wuzuyu365/article/details/52430657
终端输入
sudo apt-get install python-numpy
然后重新编译:
sudo make pycaffe -j8
显示结果如下图:
然后编译成功了!!!
5>验证Python接口
进入python环境,终端输入
cd ~
python
导入caffe
import caffe
没有出错,证明导入成功!
PS:这个地方你也可以导入一下numpy,scipy
import numpy
import scipy
结果如下图:
至此为止,caffe的CPU环境配置成功!!!
第三步:验证Mnist数据集
这个步骤可以忽略,想要验证的话推荐博客
http://blog.csdn.net/u010193446/article/details/53259856
很详细的步骤。
PS:真不容易啊,我是搞了好多天才成功的,不懂linux啊,另外提醒一下,不同的电脑配置不一样,安装的ubuntu版本也不一样,所以可能会出现各种各样的问题,那么只能自行百度Google了,我按照好多教程来,结果各种出错,实在解决不了就重装系统吧,感觉ubuntu总是出现各种问题,哎,终于成功了,写篇博客纪念一下,再次特别感谢博主《莫欺丶少年穷》!!!
特别感谢的博客:
http://blog.csdn.net/u010193446/article/details/53259294
http://blog.csdn.net/u010402483/article/details/51506616
http://blog.csdn.net/samylee/article/details/50935943