小白玩Caffe——基于Ubuntu14.04+CUDA8.0+cudnn5.1的Caffe安装与MNIST实验

来源:互联网 发布:伤感网络歌曲 编辑:程序博客网 时间:2024/06/06 15:50

作者:七月在线老宅
时间:2017年3月23日

硬件:Core i7-6700;16GB;Nvidia GeForce GTX1070;500G SSD

(多说一句——老宅血泪感悟:搞DL没有好硬件是不行的)

平台:台式PC

软件:Linux 对应的GTX1070驱动;cuda8.0;cudnn 5.1;Linux 14.04 LTS,,,用git安装caffe

网络:必须


首先,是鸣谢。

前人栽树,后人乘凉,这次实验的成功完成和教程的多项细节的完善,得到了原CSDN算法大神——结构之法、算法之道博主,现七月在线CEO兼创始人——July的鼎力支持。

本教程借鉴了他的团队在去年完成的《手把手教你搭建caffe及手写数字识别》。

另外,在此鸣谢如下几篇博客:

http://www.jianshu.com/p/9e0a18608527

http://www.cnblogs.com/empty16/p/4828476.html

http://www.cnblogs.com/yizhichun/p/6339789.html

老宅在此表示感谢~!


——————————分割线——————————

写在教程之前(个人体会):

笔者在本次实验之前,已经对机器学习、深度学习产生了极为浓厚的兴趣,经过数月的接触和学习,笔者认为,基于深度神经网络的机器学习策略,必将在人工智能领域为技术的进步贡献出推动性的力量,也必将在行业的未来发展中释放出夺目的光芒!

首先,心理及经验准备。

就Linux的使用而言,刚刚如坑的Linux小白,包括从windows的温室里成长起来的带有一定cmd经验的小白(包括曾经的笔者),解决内心对于命令行的抵触心理是学习Linux的必经之路,借助Google工程师赵智沉的这条博文里的一句话:相信我,克服这个障碍,你将打开新世界的大门。何况,用命令行工作才显得更酷更极客,不是吗?

不管你信不信,反正我是信了。。。这坑,哥们儿我先跳为敬。

 

前期环境搭建:

本文实验基于的环境:Ubuntu14.04LTS+CUDA8.0+cudnn5.1的安装和调试请读者查看本博之前的博文:

《(Ubuntu+Tensorflow+CUDA8.0+cudnn,新鲜靠谱版)利用DL学梵高作画---实战记录和心得》,本文不再赘述。


——————————再次割——————————

确保网络畅通!好,开始。

一、加装依赖环境,执行如下操作

点击Terminal,输入 sudo -i 回车

输入开机密码(输入时屏幕不显示输入内容),回车

然后,做如下操作:

输入:apt-get install libprotobuf-dev libleveldb-dev libsnappy-dev libopencv-dev libhdf5-serial-dev protobuf-compiler  回车

输入:apt-get install --no-install-recommends libboost-all-dev  回车

输入:apt-get install libgflags-dev libgoogle-glog-dev liblmdb-dev  回车

上面的操作在执行中,你会看到屏幕作如下显示:



全部代码执行完毕后,笔者的机器显示如下:



二、安装BLAS(别问为什么,在你还是个小白的时候,老老实实听话,先装先用,后问)

继续在Terminal中做如下操作

输入:sudo apt-get install libatlas-base-dev  回车然后屏幕显示如下:

关键一步——clone Caffe

继续执行下面操作:

在Terminal中输入:git clone git://github.com/BVLC/caffe.git   回车,然后,等待,如果发现执行慢,屏幕中有error显示,说明出现问题,

(这里要PS:前文提到,本次安装操作要求网络必须畅通,原因就在这里。这次安装caffe的方式为github克隆的方式,笔者在执行该操作的时候,前后失败多次,最终安装成功,整个过程显示如下)



上述操作完成后

需要做如下操作:

1.修改位于caffe目录下的classification.cpp,操作如下:

在Terminal中输入:cd ~/caffe/examples/cpp_classification/  回车

输入: ls 回车

输入 vi classificaton.cpp 回车  会出现如下屏幕显示:


此时,再次 回车

会进入如下界面:


这个时候,小白要注意:在这个界面的上方:也就是显示有如下代码的地方

#include <caffe/caffe.hpp>                                                  
#ifdef USE_OPENCV
#include <opencv2/core/core.hpp>
#include <opencv2/highgui/highgui.hpp>
#include <opencv2/imgproc/imgproc.hpp>
#endif  // USE_OPENCV
#include <algorithm>
#include <iosfwd>
#include <memory>
#include <string>
#include <utility>
#include <vector>

在最后一行“#include<vector>”后面,添加下面两行:

 #include <opencv2/imgproc/types_c.h>
 #include <opencv2/objdetect/objdetect.hpp>

(这里PS:对于超级小白来说,输入操作如下:在键盘上按 i 键,这时界面左下角显示 INSERT 或 插入 字样,表示界面可以输入,然后,按键盘的上下左右键将光标移动到#include<vector>后,输入上面两行代码,输入完成后,不需要 回车 操作,此时点击 Esc 键,再同时按 shift 和:键,然后,在界面的左下角输入小写的wq  回车)

操作界面显示如下:


然后,修改一个文件,叫做  Makefile.config,操作如下:

在Terminal中继续操作:

输入:cd ~/caffe  回车

输入:cp  Makefile.config.example Makefile.config 回车

输入:sudo vi Makefile.config 回车

注意页面中的内容,按照刚才对超级小白的提示操作,修改这个界面内的文本,如果本机已经安装了OpenCV 3.x,需要将界面中的OPENCV_VERSION :=3  这行代码前的 # 删掉,然后,按Esc,再按 Shift 和 :,在输入 wq,回车

上述操作的显示界面如下:



在上述操作完成候,即可开始编译操作。

编译操作如下:

在Terminal中继续:

输入:cd ~/caffe 回车

输入:make all 回车  然后,等待

输入:make test 回车  然后,等待

输入:make runtest 回车  然后,等待

全部显示页面如下:


在编译结束时,有可能会报错,如果出现报错,如下页面中给出了一定的解决提示,笔者就是参考了该页面的提示进行了修改,最终编译成功:

http://www.jianshu.com/p/9e0a18608527

问题及解决办法如图:


然后,就是激动人心的时刻——MNIST训练实战:

首先,提出一个问题:在前文要求的环境全部配好的情况下,使用Caffe进行MNIST训练总共分几步?答,四步!操作如下:

在Terminal中,

输入:cd  ~/caffe  回车

输入:sh data/mnist/get_mnist.sh  回车   等待

输入:sh examples/mnist/create_mnist.sh  回车   等待

输入:sh examples/mnist/train_lenet.sh 回车  等待

然后,全过程页面显示如下:


 然后,训练时页面,就是下面的样子:


至此,我们想看到的MNIST训练,全部完成。撒花~~~




0 0
原创粉丝点击