赞
踩
for(int i =0;i<4;i++)
{
std::cout<<((spCaffeNetOutputBlob.get())->shape())[i]<<std::endl;
}
int shape2 = ((spCaffeNetOutputBlob.get())->shape())[2];
int shape3 = ((spCaffeNetOutputBlob.get())->shape())[3];
((spCaffeNetOutputBlob.get())->cpu_data());
const float* t = ((spCaffeNetOutputBlob.get())->cpu_data());
//std::cout<<sizeof(t)<<std::endl;
//std::cout<<((spCaffeNetOutputBlob.get())->count())<<std::endl;
ofstream file;
file.open("/home/zhoulu/data/txt/file.txt");
int lulu=0;
for(int kk=0;kk<(spCaffeNetOutputBlob.get())->count();kk++)
{
//lulu = lulu+1;
//std:cout<<lulu<<std::endl;
//std::cout<<((spCaffeNetOutputBlob.get())->count())<<std::endl;
//std:cout<<((spCaffeNetOutputBlob.get())->cpu_data())[kk]<<std::endl;
file<<((spCaffeNetOutputBlob.get())->cpu_data())[kk]<<'\n';
}
file.close();
spCaffeNetOutputBlob是由spCaffeNetOutputBlob = ((NetCaffe*)spNet.get())->getOutputBlob()获得的,作为
spResizeAndMergeCaffe->Forward_gpu({spCaffeNetOutputBlob.get()}, {spHeatMapsBlob.get()});
的输入参数,其中
boost::shared_ptr<caffe::Blob<float>> NetCaffe::getOutputBlob() const
NetCaffe::getOutputBlob()返回的是boost::shared_ptr指针,所以
spCaffeNetOutputBlob是这样的一个指针,为了获得普通的c指针,通过get()函数来获得
这样就会获得指向caffe::Blob<blob>的一个指针,然后调用blob的shape()函数,即可输出openpose网络输出的大小。调用count()就是BxCxHxW的大小
要输出所有map的值,因为他们是以一维数组存储的,所以需要遍历,但是以一维形式调用
std:cout<<((spCaffeNetOutputBlob.get())->cpu_data())[kk]<<std::endl;
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。