Caffe C++ - 访问其他层中的数据
Caffe C++ - Access data in other layers
我正在尝试使用 Caffe C++ 访问各个层。但是,我无法获取任何数据:
net_.Forward();
std::vector<std::string> layerNames = net_.layer_names();
for(int i=0; i<layerNames.size(); i++){
cout << layerNames[i] << endl;
std::vector<boost::shared_ptr<caffe::Blob<float> > >& layer = net_.layer_by_name(layerNames[i])->blobs();
cout << layer.size() << endl;
}
以上是我使用的方法。甚至 "data" 图层似乎也是空的,矢量大小为 0。这是怎么回事?
您的代码检查层的斑点:这些是网络的内部参数(可训练参数)。 "Data"
层没有内部参数,因此你得到的blob的size
是零。
另一方面,如果您想检查网络的数据块(即输入和响应),您应该查看 net_.blob_names()
和 net_.blobs()
。
我正在尝试使用 Caffe C++ 访问各个层。但是,我无法获取任何数据:
net_.Forward();
std::vector<std::string> layerNames = net_.layer_names();
for(int i=0; i<layerNames.size(); i++){
cout << layerNames[i] << endl;
std::vector<boost::shared_ptr<caffe::Blob<float> > >& layer = net_.layer_by_name(layerNames[i])->blobs();
cout << layer.size() << endl;
}
以上是我使用的方法。甚至 "data" 图层似乎也是空的,矢量大小为 0。这是怎么回事?
您的代码检查层的斑点:这些是网络的内部参数(可训练参数)。 "Data"
层没有内部参数,因此你得到的blob的size
是零。
另一方面,如果您想检查网络的数据块(即输入和响应),您应该查看 net_.blob_names()
和 net_.blobs()
。