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

1001 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范数
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值