Caffe Blob测试
本例子来源于《21天实战Caffe》
代码如下:
#include <vector>
#include <iostream>
#include <caffe/blob.hpp>
using namespace caffe;
using namespace std;
int main(void)
{
Blob<float> a;
cout<<"Size : "<< a.shape_string()<<endl;
a.Reshape(, , , );
cout<<"Size : "<< a.shape_string()<<endl; // 续上面代码
float * p = a.mutable_cpu_data();
for(int i = ; i < a.count(); i++)
{
p[i] = i;
}
for(int u = ; u < a.num(); u++)
{
for(int v = ; v < a.channels(); v++)
{
for(int w = ; w < a.height(); w++)
{
for(int x = ; x < a.width(); x++)
{
cout<<"a["<<u<<"]["<<v<<"]["<<w<<"]["<<x<<"] = "<< a.data_at(u, v, w, x)<<endl;
}
}
}
} // 续上面代码
cout<<"ASUM = "<<a.asum_data()<<endl;
cout<<"SUMSQ = "<<a.sumsq_data()<<endl; return ;
}
本机的caffe目录为/home/jourluohua/src/caffe,因此编译命令为:
g++ -o test blob_demo.cpp -I/home/jourluohua/src/caffe/include/ -D CPU_ONLY -I/home/jourluohua/src/caffe/.build_release/src/ -L/home/jourluohua/src/caffe/build/lib/ -lcaffe
但是却报
/usr/bin/ld: /tmp/cckoNotB.o: undefined reference to symbol '_ZN6google4base21CheckOpMessageBuilder7ForVar2Ev'
//usr/lib/x86_64-linux-gnu/libglog.so.0: error adding symbols: DSO missing from command line
collect2: error: ld returned 1 exit status
猜想是找不到libglog的问题,但是之前是使用apt安装过的,因此,加入对glog库的链接后正常:
g++ -o test blob_demo.cpp -I/home/jourluohua/src/caffe/include/ -D CPU_ONLY -I/home/jourluohua/src/caffe/.build_release/src/ -L/home/jourluohua/src/caffe/build/lib/ -lcaffe -lglog
之后加入运行库后(和Halide的使用方式一致)
export LD_LIBRARY_PATH=/home/jourluohua/src/caffe/build/lib/:$LD_LIBRARY_PATH
使用./test可得到结果
Caffe Blob测试的更多相关文章
- 【caffe Blob】caffe中与Blob相关的代码注释、使用举例
首先,Blob使用的小例子(通过运行结果即可知道相关功能): #include <vector> #include <caffe/blob.hpp> #include < ...
- Caffe 单独测试添加的layer
转载请注明出处,楼燚(yì)航的blog,http://home.cnblogs.com/louyihang-loves-baiyan/ 一般我们在使用Caffe的时候,可能需要根据自己的任务需求添加 ...
- 使用caffe模型测试图片(python接口)
1.加载相关模块 1.1 加载numpy import numpy as np 1.2 加载caffe 有两种方法. 方法一(静态导入): 找到当前环境使用的python的site-packages目 ...
- caffe blob
Blob,包括输入数据.输出数据.权值等: Blob是Caffe中处理和传递实际数据的数据封装包,并且在CPU与GPU之间具有同步处理能力.从数学意义上说,blob是按C风格连续存储的N维数组. ca ...
- Caffe Blob针对图像数据在内存中的组织方式
Caffe使用Blob结构在CNN网络中存储.传递数据.对于批量2D图像数据,Blob的维度为 图像数量N × 通道数C × 图像高度H × 图像宽度W 显然,在此种场景下,Blob使用4维坐标定位数 ...
- caffe blob理解
blob数据结构是caffe中基本的数据存储单元,它主要存储的数据是网络中的中间数据变量,比如各层的输入和输出:代价函数关于网络各层参数的梯度. blob中除了存储数据外,还有一些标记数据的参数,以下 ...
- 深度学习-Caffe编译测试的小总结
1. 搭建的环境和代码:win7 64bit + vs2013+CUDA7.5 http://blog.csdn.net/thesby/article/details/50880802 2. 编译,制 ...
- caffe/blob.hpp:9:34: fatal error: caffe/proto/caffe.pb.h: 没有那个文件或目录
You need to generate caffe.pb.h manually using protoc as follows. # In the directory you installed C ...
- 使用caffe自动测试模型top5的结果
方法很简单,直接在定义网络的prototxt里面最后加一层就可以了. 这一层定义如下 layer { name: "accuracy_5" type: "Accuracy ...
随机推荐
- 前端与后台可能需要使用交互的表单form,input标签
前端与后台可能需要使用交互的表单标签 form表单和input标签 textarea文本域表单 select,option下拉列表表单 fieldset和legend组合表单 label标签 form ...
- Kettle源码学习(一)——把Kettle项目跑起来
kettle(pentaho data integration),是一款开源的C/S版的ETL工具,最近打算学习一下kettle源码,并自己写一个mini kettle,并改造成基于事件触发的流处理模 ...
- Oracle 对某张表中的某一列进行取余,将结果集分为多个集合
比如分为 5个集合,那么就用某一列和5 取余 ,分别可以取 余数为 0.1.2.3.4 的结果集,那么就把集合分为5个小的集合了 1.取余数为 0 的集合 select * from (select ...
- 由DBCursor的“can't switch cursor access methods”异常引发的思考
先谈谈我是怎么用的: DBCollection dbcollection = XXXXXXXXXX(); //连接mongo DBCursor dbCursor = mergeVideoDB.find ...
- 数学建模python matlab 编程(随机游走问题)
1 (1). 随机游走问题.在-10到10的一维线段上,质点以1/5的概率用左运动1单位,以2/5的概率停止不动,以2/5的概率向右运动2单位,且碰到-10时向右运动3单位,碰到10时向左运动4单位. ...
- JAVA 基础编程练习题15 【程序 15 排序】
15 [程序 15 排序] 题目:输入三个整数 x,y,z,请把这三个数由小到大输出. 程序分析:我们想办法把最小的数放到 x 上,先将 x 与 y 进行比较,如果 x>y 则将 x 与 y 的 ...
- curl配置host
//要配置的虚拟域名$host = array( 'Host: demo-local.com' );$ch = curl_init();//要配置的ip 例如本机localhostcurl_setop ...
- Java内部类(5):应用例
例1-闭包(Closure) 闭包是一个可调用的对象(通过Callback),它记录了一些信息,这些信息来自于创建它的作用域 interface Incrementable { void increm ...
- 鸟哥私房菜基础篇:Linux 账号管理与 ACL 权限配置习题
猫宁!!! 参考:http://cn.linux.vbird.org/linux_basic/0410accountmanager.php 1-root 的 UID 与 GID 是多少?而基于这个理由 ...
- 高性能Linux服务器
TCP/IP协议族——高性能Linux服务器编程 现在 Internet 使用的主流协议族是 TCP/IP 协议族,它是一个分层.多协议的通信体系. TCP/IP 协议族体系结构以及主要协议 TC ...