【问题标题】:Caffe C++ - Access data in other layersCaffe C++ - 访问其他层中的数据
【发布时间】:2017-07-08 14:10:45
【问题描述】:

我正在尝试使用 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;
}

以上是我使用的方法。甚至“数据”层似乎也是空的,向量大小为 0。这是怎么回事?

【问题讨论】:

  • 我认为您正在获取图层的内部参数。 "Data" 层没有内部参数,因此该层的 size 为零。其他层("Conv""InnrrProduct" 层)的大小是否非零?
  • 您应该查看net_.blobs()net_.blob_names()
  • 这似乎行得通!您可以将其发布为答案
  • 请看我的回答

标签: c++ neural-network deep-learning caffe


【解决方案1】:

您的代码检查层的 blob:这些是网络的内部参数(可训练参数)。 "Data" 层没有内部参数,因此你得到的 blob 的 size 为零。

另一方面,如果您想检查网络的数据块(即输入和响应),您应该查看 net_.blob_names()net_.blobs()

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-08-18
    • 2018-01-09
    • 2011-07-20
    • 1970-01-01
    • 1970-01-01
    • 2019-04-17
    • 1970-01-01
    • 2013-09-13
    相关资源
    最近更新 更多