ubuntu 系统下的Caffe环境搭建
原文地址:http://blog.csdn.net/hjimce/article/details/48781693
作者:hjimce
对于caffe的系统一般使用linux系统,当然也有windows版本的caffe,不过如果你一开始使用了windows下面的caffe,后面学习的过程中,会经常遇到各种错误,网上下载的一些源码、模型也往往不能快速的跑起来,因为貌似caffe的官方只提供了linux版本,而且caffe在不断的快速迭代更新中,如果不使用原版的话,后面编译出现什么问题,自己怎么错的,自己都不知道。本篇博文主要讲解快速搭建caffe环境:
电脑系统:ubuntu 14.04
显卡:GTX 850
在ubuntu下要完整的搭建caffe,个人感觉最难的一步就是cuda的安装了,特别是对于双显卡的电脑来说,很容易黑屏、无法登陆图形界面,这个我安装了n久,都没装成功,因为我的电脑笔记本双显卡,每次装完cuda就黑屏,网上的教程一大堆,但都中看不中用,导致我重装了二三十次的系统,最后才成功。这里为了讲caffe的安装,我们先不使用GPU,进行安装测试,因为没有GPU我们依旧可以跑caffe,只是速度比较慢而已。
1、安装caffe所需要的依赖库
命令:
- sudo apt-get install libatlas-base-dev
- sudo apt-get install libprotobuf-dev libleveldb-dev libsnappy-dev libopencv-dev libboost-all-dev libhdf5-serial-dev
- sudo apt-get install libgflags-dev libgoogle-glog-dev liblmdb-dev protobuf-compiler
2、下载caffe。
到github上下载caffe:https://github.com/BVLC/caffe。下载完成后,解压caffe源码包。解压后,我们打开文件,可以看到caffe的源码包如下:
3、配置Make.config 文件。caffe文件解压后,文件夹下面有一个Makefile.config.example文件,我们需要对这个文件进行重命名为:Make.config 。也就是去掉后缀example。然后我们打开这个文件,可以看到如下内容:
然后我们把:#CPU_ONLY:=1,那一行的注释符号去掉:CPU_ONLY:=1。这是因为我们没有安装CUDA,还不能使用gpu,所以我们把配置改为只使用cpu。
4、编译caffe。
(1)在完成Make.config配置后,我们输入命令:
- make all
(2)编译完成后,在安装python接口,输入命令:
- make pycaffe
这个文件夹下面的工具可是个好东西啊,以后我们会经常用到这些可执行文件,最常用的就是可执行文件:caffe,我们只要调用这个工具,就可以进行训练。
(3)接着编译test文件夹下面的源码。命令如下:
- make test
- make runtest
安装完了,自然要测试一下能不能用咯。首先cd到caffe目录,然后输入命令:
- sh data/mnist/get_mnist.sh
- sh examples/mnist/create_mnist.sh
- vim examples/mnist/lenet_solver.prototxt
把lenet_solver.prototxt里面的solver_mode 改为 CPU。因为我们还没装GPU,暂时只使用CPU就好了。
然后我们运行脚本:
- ./examples/mnist/train_lenet.sh
说明:如果在使用caffe、或者编译安装caffe过程中,出现如下错误:
- CXX/LD -o .build_release/tools/convert_imageset.bin
- .build_release/lib/libcaffe.so: undefined reference tocv::imread(cv::String const&, int)'.build_release/lib/libcaffe.so: undefined reference tocv::imencode(cv::String const&, cv::_InputArray const&, std::vector >&, std::vector > const&)'
- LIBRARIES += glog gflags protobuf leveldb snappy \
- lmdb boost_system hdf5_hl hdf5 m \
- opencv_core opencv_highgui opencv_imgproc opencv_imgcodecs
接着就开始caffe搞起吧,推荐个caffe模型网站:https://github.com/BVLC/caffe/wiki/Model-Zoo。本来个人不是很喜欢caffe的,就是因为这个网站吸引了我,这个网站可以搞到好多caffe模型、源码,非常适合于我们学习。
二、在Eclipse中使用编译调试caffe
1、首先就是安装Eclipse,然后安装c++开发插件,这个可以百度搜一下,eclipse下面怎么进行c++开发。
2.导入caffe makefile工程到eclipse (由于是英文版,下面描述也用英文,省的翻译,方便大家调试)
(1)File→New→Project→C/C++ →Makefile Project with Existing Code.
(2)Create a new Makefile Project from existing code
Projectname: caffe-master
Existing code location:/home/user/caffe-workspace/caffe-master
Language: choose C and C++
Toolchain:choose Linux GCC
(3)Then click on caffe-master in Project Explorer (set Window→Open Perspective → C/C++).
(4)Now go File → Properties → Run/Debug settings.Click New.., and choose C/C++ application
(5)Fill launch configurationproperties
· Arguments:
fill train –solver=examples/mnist/lenet_solver.prototxt
and change working directory from default to /home/user/caffe-workspace/caffe-master(change to your own directory)
(6)Now you can use debug caffe code: Run-> Debug
三、C++函数调用相关路径,makefile
- CC=g++
- CXXFLAGS = -O2 -Wall -D__STDC_CONSTANT_MACROS
- INCLUDE = -I/usr/local/cuda/include -I. -I/usr/local/cuda/include -I/home/hjimce/caffe/include/ -I/home/hjimce/caffe/src/
- LIBRARY = -L/usr/local/x86_64-linux-gnu/ -lprotobuf \
- -L/usr/lib/x86_64-linux-gnu/ -lglog \
- -L/usr/local/cuda/lib64/ -lcudart -lcublas -lcurand \
- -L/usr/local/lib/ -lm -lpthread -lavutil -lavformat -lavcodec -lswscale -lopencv_core -lopencv_imgproc -lopencv_highgui \
- -L/usr/lib/python2.7/config-x86_64-linux-gnu/ -lpython2.7 \
- -L/sur/lib32/ -lrt \
- -L../../caffe/build/lib/ -lcaffe
- all:
- $(CC) $(INCLUDE) $(OBJS) testcpp.cpp -o exercise $(LIBRARY)
最近在ubuntu搞了一个月的caffe,总感觉很不爽,因为ubuntn下面的c++集成开发工具,eclipse用起来没有vs爽,因为对caffe的函数名不是很熟悉,所以需要借助vs的c++助手。然后前一个月大部分也是调用pycaffe,但是最近感觉需要对caffe的c++函数比较熟悉,才能把自己的能力进一步提高,于是就开始搞起了windows 下的caffe,借助vs的强大功能,快速学习caffe。一开始采用vs2012,最后各种错误,最后改成vs2013很容易就编译成功了。
最后推荐一个windows下caffe安装网站:http://thirdeyesqueegee.com/deepdream/2015/07/13/running-deep-dream-on-windows-with-full-cuda-acceleration/ 这个包含了python的集成开发环境anaconda,caffe的全套功能。
************作者:hjimce 时间:2015.10.10 联系QQ:1393852684 地址:http://blog.csdn.net/hjimce 原创文章,版权所有,转载请保留本行信息***********