Caffe入门(2)——Blob,Net库测试

版权声明:都是学习笔记,主要给自己看的,有误不负责,欢迎随便用 https://blog.csdn.net/picway/article/details/52404026

编写程序测试caffe的Blob和Net的功能
2016/9/1

Blob测试

1 cd caffe/
2 sudo gedit blob_demo.cpp
3 在gedit编辑器中编辑

#include <vector>
#include <iostream>
#include <caffe/blob.hpp>

using namespace caffe;
using namespace std;

int main(){
    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<<"]["<<w<<"]["<<x<<"]="<<a.data_at(u,v,w,x)<<endl;
                }           
            }
        }
    }
    return 0;

}

4 编译:

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

5 运行:

./app

运行结果:
这里写图片描述

Net测试

1 cd caffe/
2 sudo gedit net_demo.cpp
3 在gedit编辑器中编辑

#include <vector>
#include <iostream>
#include <caffe/net.hpp>

using namespace caffe;
using namespace std;

int main(void){
    std::string proto("deploy.prototxt");
    Net<float> nn(proto,caffe::TEST);   
    vector<string> bn=nn.blob_names();
    for(int i=0;i<bn.size();i++){
        cout<<"Blob #"<<i<<" : "<<bn[i]<<endl;  
    }
    return 0;
}

4 编译

g++ -o netapp net_demo.cpp -I $CAFFE_ROOT/include/ -D CPU_ONLY -I $CAFFE_ROOT/.build_release/src/ -L $CAFFE_ROOT/build/lib/ -lcaffe -lglog -lboost_system -lprotobuf

5 运行

./netapp

此处遇到一个问题:

这里写图片描述

原来是照猫画虎却不仔细,没有把deploy.prototxt复制到当前文件目录中,将$CAFFE_ROOT/models/bvls_reference_caffenet/deploy.prototxt复制过来,就能成功运行了。

运行结果:
运行打印出了很多东西,可以看出是一系列Blob和Layer的信息。

排疑

之前在编译的时候还遇到一个错误:

libcaffe.so.1.0.0-rc3: cannot open shared object file: No such file or directory

发现是caffe库没有链入。

解决办法:

在终端输入:

sudo gedit /etc/profile

在下面加入

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

回到终端,更新环境变量:

source /etc/profile
阅读更多
想对作者说点什么?

博主推荐

换一批

没有更多推荐了,返回首页