您的位置:首页 > 理论基础 > 数据结构算法

【Caffe】数据结构之Blob详细讲解

2016-11-25 21:53 435 查看

1001 Caffe数据结构之Blob

本文记录了Caffe数据结构的Blob学习,欢迎交流:

Caffe数据结构之Blob

代码块

运行步骤

输出结果

代码块

#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(1, 2, 3, 4);
cout<<"Size : "<< a.shape_string()<<endl;
// 续上面代码
float * p = a.mutable_cpu_data();
for(int i = 0; i < a.count(); i++)
{
p[i] = i;
}
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;
}
}
}
}

// 续上面代码
cout<<"ASUM = "<<a.asum_data()<<endl;  //打印L1 范数
cout<<"SUMSQ = "<<a.sumsq_data()<<endl; //打印L2 范数
return 0;
}


运行步骤

将blob_demo.cpp复制到/home/hdu/caffe/include下:

编译文件:

g++ -o blob_demo blob_demo.cpp -I ../include/ -D CPU_ONLY -I ../.build_release/src/ -L ../build/lib/ -lcaffe -lglog -lboost_system

导入路径:

export LD_LIBRARY_PATH=../build/lib/:$LD_LIBRARY_PATH

运行程序:

./blob_demo

输出结果

Size : 1 2 3 4 (24)
a[0][0][0][0] = 0
a[0][0][0][1] = 1
a[0][0][0][2] = 2
a[0][0][0][3] = 3
a[0][0][1][0] = 4
a[0][0][1][1] = 5
a[0][0][1][2] = 6
a[0][0][1][3] = 7
a[0][0][2][0] = 8
a[0][0][2][1] = 9
a[0][0][2][2] = 10
a[0][0][2][3] = 11
a[0][1][0][0] = 12
a[0][1][0][1] = 13
a[0][1][0][2] = 14
a[0][1][0][3] = 15
a[0][1][1][0] = 16
a[0][1][1][1] = 17
a[0][1][1][2] = 18
a[0][1][1][3] = 19
a[0][1][2][0] = 20
a[0][1][2][1] = 21
a[0][1][2][2] = 22
a[0][1][2][3] = 23
ASUM = 276      //输出L1范数
SUMSQ = 4324    //输出L2范数
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: