c++ - Caffe C++ - 访问其他层中的数据

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

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

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

最佳答案

您的代码检查层的 Blob :这些是网络的内部参数(可训练参数)。 “数据” 层没有内部参数,因此您得到的 blob 的大小 为零。

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

关于c++ - Caffe C++ - 访问其他层中的数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42325223/

相关文章:

c++ - 类中的常量?

neural-network - 离散输出的反向传播神经网络

python - 在 TensorFlow 2.3 中规范化 BatchDataset

keras - pytorch 中的 keras.layers.Masking 相当于什么?

python - 在 tensorflow 中训练后如何使用模型(保存/加载图表)

machine-learning - 为什么caffe训练阶段会有准确率输出?

c++ - VS C++ 中 'Windows Console Application' 和 'Empty Project' 的区别

c++ - C++ cout不能以正确的格式显示十六进制字节

c++ - 图增量构建的性能问题

neural-network - 多输出分类神经网络如何工作?