在ubuntu14.04下使用codeblocks(C++)调试caffe

最近需要用c++caffe的代码,笔者希望使用codeblocks调试caffe。然而自己十分小白,所以折腾了很长一段时间才出来。在这篇博客

里我会总结一下从安装caffe到成功在codeblocks上运行官方提供的cpp例程的全过程。希望可以帮到大家。




笔者开始调试时,已经有了配置好的ubuntu14.04Opencv3.1.0。使用的是CPU_ONLY的模式。



1.caffe的安装



这里不得不说caffe官网上说的十分详细。基本照这他来就不会出问题。

首先是caffe的下载,笔者是从caffegithub上克隆下来的。

git clonehttps://github.com/BVLC/caffe

下载好后参考caffe官网上的Installation部分

先安装依赖项

sudo apt-get install libprotobuf-dev libleveldb-dev libsnappy-dev libopencv-dev libhdf5-serial-dev protobuf-compiler
sudo apt-get install --no-install-recommends libboost-all-dev

再安装BLASPython(笔者用Python进行模型的训练)

BLAS:

sudo apt-get install libatlas-base-dev

Python:

笔者下载并安装了ipthon notebook

CUDA:

笔者装了CUDA8.0,不过其实根本就不需要装。我用CPU_ONLY,我装个蛋蛋。

更可恶的是,可能是由于我电脑没有独立显卡得缘故。我装完竟然登陆不了系统了

w(Д)w

最后我才发现是更改了环境变量的原因,并且用了这篇博客上的说明解决了问题,感谢这位博主http://www.cnblogs.com/zhcncn/p/3989572.html



然后进入编译环节。首先打开Makefile.config.example。由于我的是CPU_ONLYOPENCV使用的是3.1.0版本。于是需要将里面得CPU_ONLY:= 1

OPENCV_VERSION:= 3取消注释。

然后cd到你克隆下来的caffe中。执行下列命令

cp Makefile.config.example Makefile.config
make all
make test
make runtest

如果runtest通过了,就完成了。但是如果没过的话,就需要在网上根据bug找解决方案了。不过不用担心,网上资源还是很足的。


为了使用python,需要运行

make pycaffe


最后,按照官网上的说明,运行

make distribute



到此为止,caffe就安装完成了。



2.codeblocks的配置



有关codeblocks的配置的资源网上比较少,主要是需要配置编译器。由于笔者先前使用codeblocks进行opencv的编译。关于opencv

codeblocks中的配置不再赘述。有需要的同学可以参考网上的博客,有很多写的很棒。(๑•̀ㅂ•́)و✧



笔者首先在ipython上运行了00-classification.ipynb,一来是把运行cpp例程的一些文件下载下来,二来是确认一下caffer是好使的。



现在,先创建一个opencvproject。把其中的main函数换为官方提供的.cpp例程。为了在codeblocks中直接运行。我将需要的文件拷贝到了

这个project的文件夹下,并且将main函数前几句稍微改了一下

int main(int argc, char** argv) {
  if (argc != 1) {
    std::cerr << "Usage: " << argv[0]
              << " deploy.prototxt network.caffemodel"
              << " mean.binaryproto labels.txt img.jpg" << std::endl;
    return 1;
  }

  ::google::InitGoogleLogging(argv[0]);

  string model_file   = "deploy.prototxt";
  string trained_file = "bvlc_reference_caffenet.caffemodel";
  string mean_file    = "imagenet_mean.binaryproto";
  string label_file   = "synset_words.txt";

然后我开始配置codeblocks的编译器,我搜到了一个比较不错的博客,虽然完全按照这种方法我没能成功,但是这篇博客还是帮了我很多。

http://blog.csdn.net/u012938704/article/details/52885879

好了,废话不多说,直接上配置方法


1)头文件的搜索位置


Searchdirectories ->Compile中添加:

(CAFFE_ROOT)/include
(CAFFE_ROOT)/build/src (caffe.pb.h 的位置)



2)链接库的搜索位置


Searchdirectories ->Linker中添加:

(CAFFE_ROOT)/build/lib (libcaffe 的位置)



3)添加需要的链接库名


Linkersettings->linker libraries中添加:


(CAFFE_ROOT)/build/lib/libcaffe.so

Linkersettings->Other linker options中添加:

-pthread
-lcaffe -lglog -lgflags -lprotobuf -lboost_system -lboost_filesystem
-lm -lhdf5_hl -lhdf5 -lleveldb -lsnappy -llmdb -lboost_thread
-lstdc++ -lcblas -latlas

4.添加相关宏定义

Compilesettings->#defines中添加:

CPU_ONLY
USE_OPENCV
USE_LEVELDB
USE_LMDB
注意,我的配置方法和原博有出入。首先第三步需要添加
libcaffe.so
其次,第四步中不能写。

-lopencv_core -lopencv_highgui -lopencv_imgproc
最后,不需要添加任何cpp文件到自己的工程中


现在可以编译通过了。运行,发现还是有错误


error while loading shared libraries: cannot open shared object file: No such file or director



参考这篇博文即可解决问题

http://blog.csdn.net/sahusoft/article/details/7388617

最后,运行成功φ(≧ω≦*)♪


第一次编辑博文,排版好麻烦 TAT

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值