Я пытаюсь получить доступ к различным слоям с помощью Caffe C++. Однако я не могу получить никаких данных: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. Что здесь происходит?
Я думаю, что вы получаете внутренние параметры слоев. «Уровень данных« 'не имеет внутренних параметров, и поэтому вы получаете нулевой размер для этого слоя. Получаете ли вы ненулевой размер для других слоев («Conv» и «InnrrProduct»)? – Shai
Вместо этого вы должны посмотреть на 'net_.blobs()' и 'net_.blob_names()'. – Shai
Это похоже на работу! Вы можете опубликовать его как ответ – Raaj