caffe入门----Blob(一)(含各种编译错误解决)
来源:互联网 发布:如何入驻淘宝服务商 编辑:程序博客网 时间:2024/06/08 04:42
Blob是caffe最基础的数据结构。它有4维[num_,channels_,height_,width_]
我们通过代码来看看
#include <vector>#include <iostream>#include <caffe/blob.hpp>using namespace caffe;using namespace std;int main(void){ //声明一个Blob变量 Blob<float> a; //打印形状,是0现在 cout<<"Size:"<<a.shape_string()<<endl; //reshape成1,2,3,4 a.Reshape(1,2,3,4); cout<<"Size:"<<a.shape_string()<<endl; //创建Blob对象之后,可以通过mutable_cpu_data函数改变其值 float *p = a.mutable_cpu_data(); for (int i = 0; i < a.count(); ++i) { p[i]= i; } // int u = a.num(); for(int u = 0; u<a.num(); u++){ for(int v = 0; v < a.channels(); v++){ for(int w=0; w<a.height(); w++){ for(int x=0; x<a.width(); x++){ cout<<"a["<<u<<"]["<<v<<"]["<<w<<"]["<<x<<"]="<<a.data_at(u,v,w,x)<<endl; } } } } return 0;}
命令行编译:
g++ -o app3 blob_demo.cpp -I $CAFFE_ROOT/include/ -D CPU_ONLY -I /home/yui/code/caffe/.build_release/ -I $CAFFE_ROOT/src/ -L $CAFFE_ROOT/bulit/lib -L /home/yui/code/caffe/.build_release/lib/ -L /usr/local/lib/libgflags.so.2 -L /usr/local/lib/libgflags_nothreads.so -L /usr/local/lib/libgflags.so.2 -lcaffe -lglog -lgflags -lboost_system -fPIC -lpthread
就是这短短的代码编译频频出错。解决办法归纳如下:
出现
fatal error: caffe/proto/caffe.pb.h: No such file or directory
解决方法: 用protoc从caffe/src/caffe/proto/caffe.proto生成caffe.pb.h和caffe.pb.cc
wuliwei@wulw:~/caffe/src/caffe/proto$ protoc --cpp_out=/home/wuliwei/caffe/include/caffe/ caffe.proto
然后出现了:
undefined reference to symbol ‘_ZN6google4base21CheckOpMessageBuilder7ForVar2Ev’
出现原因是因为用到了google的glog和gflags,但是找不到所以不认识。解决方法安装glog和gflags。不知道为啥安装高版本的gflags不能兼容低版本的,只好装了gflags2.0才能跑。其中装gflags2.1的时候报错:
找不到config.h
解决办法找到/home/yui/code/reviews/gflags-2.1.1/src下的util.h注释掉#include
// #include <config.h>
编译没有出错,但是运行出现:
./app3: error while loading shared libraries: libgflags.so.2: cannot open shared object file: No such file or directory
原因找libgflags.so.2的时候路径为 /usr/lib, 解决办法:
sudo cp /usr/local/lib/libgflags.so.2 /usr/lib/
出现:
./app3: error while loading shared libraries: libcaffe.so.1.0.0-rc5: cannot open shared object file: No such file or directory
解决办法:
export LD_LIBRARY_PATH=$CAFFE_ROOT/build/lib:$LD_LIBRARY_PATH
至此出结果:
参考:
http://blog.csdn.net/xmzwlw/article/details/48270225
赵永科 《深度学习:21天实战Caffe》
- caffe入门----Blob(一)(含各种编译错误解决)
- caffe入门----Blob(二)
- Caffe入门(一) 运行各种Demo
- Caffe入门(2)——Blob,Net库测试
- (Caffe)基本类Blob,Layer,Net(一)
- (Caffe)基本类Blob,Layer,Net(一)
- (Caffe)基本类Blob,Layer,Net(一)
- Caffe源码使用(一)------Blob基本用法
- Caffe入门(3)——Blob,Layer,and Nets:anatomy of a Caffe model
- Mac10.12+XCode编译caffe(含GPU加速)
- ubuntu16.04下,安装caffe+cuda8.0+cudnn5.1(附各种错误解决)
- pycuda的安装和错误解决(含boost安装编译的详细过程)
- Caffe编译与安装总结(一)
- Caffe源码(二):blob 分析
- caffe(1)基础数据结构-Blob
- caffe源码学习(二) Blob
- Caffe源码(二):blob 分析
- Caffe源码学习(1):Blob
- 日志组件log4j和commons-logging(一)
- Android提高应用的安全性, 禁止屏幕截图
- JAVA程序员要读的书籍
- 无锁类的使用----AtomicReference
- Android进阶之旅
- caffe入门----Blob(一)(含各种编译错误解决)
- 深度学习之图像目标检测(Object Detection)
- 2017腾讯暑期实习生从笔试到面试总结(附带华为、阿里面试经历)
- spark Lost executor on YARN
- C#扩展方法知多少
- HihoCoder
- 读写文本
- 树莓派wifi配置
- STM32定时器时间的计算方法