我試圖使用caffenet.caffemodel
來提取功能。我在Visual Studio中實現了extract_features.cpp
。我的咖啡庫也是作爲靜態庫建立的,並鏈接到extract_features.exe
。當我運行的代碼,我有錯誤的在layer_factory.hpp上創建圖層錯誤
E0906 02:10:00.842056 4356 extract_features.cpp:74] Using CPU
F0906 02:10:04.035171 4356 layer_factory.hpp:88] Check failed: registry.count(t
ype) == 1 (0 vs. 1) Unknown layer type: ImageData (known types:)
*** Check failure stack trace: ***
錯誤發生在layer_factory.hpp
static shared_ptr<Layer<Dtype> > CreateLayer(const LayerParameter& param)
{
if (Caffe::root_solver()) {
LOG(INFO) << "Creating layer " << param.name();
}
const string& type = param.type();
CreatorRegistry& registry = Registry();
CHECK_EQ(registry.count(type), 1) << "Unknown layer type: " << type
<< " (known types: " << LayerTypeListString() << ")";
return registry[type](param);
}
最初我以爲鏈接錯誤。現在我更仔細地看,並意識到不是鏈接器問題。什麼可能是錯誤?
我認爲問題在於你的caffe是靜態庫。我記得mac-os中的類似問題,你必須在那裏尋找解決方案。 – Shai
是的他們(http://stackoverflow.com/questions/30325108/caffe-layer-creation-failure)也有相同的問題,並考慮到靜態庫問題,因爲層註冊代碼不包含在鏈接中。但在調試時,我可以運行layer_factory.hpp中的所有源代碼。謝謝,我會深入研究。 – batuman
在調試期間通過頭文件中的代碼運行並不一定意味着它在發行版中可用。 – Shai