2017-05-16 5 views
0

Ich habe ein trained fastrcnn Modell auf einem benutzerdefinierten Satz von Bildern. Ich möchte ein neues Bild mithilfe des Modells und der C++ - Evaluierungs-API auswerten. Ich flachte in dem Bild in einen 1D-Vektor und erwarb rois, um in die Eval-Funktion einzugeben.CNTK C++ Eval für FastRCNN

GetEvalF(&model); 
// Load model with desired outputs 
    std::string networkConfiguration; 

//networkConfiguration += "outputNodeNames=\"h1.z:ol.z\"\n"; 
    networkConfiguration += "modelPath=\"" + modelFilePath + "\""; 
    model->CreateNetwork(networkConfiguration); 



// inputs are features of image: 1000:1000:3 & rois for image: 100 
    std::unordered_map<string, vector<float>> inputs = { { "features", imgVector },{ "rois", roisVector } }; 

//outputs are roiLabels and prediction values for each one: 500 
    std::unordered_map<string, vector<float>*> outputs = { { "roiLabels", &labelsVector }}; 

aber wenn ich mit

model->Evaluate(inputs, outputs); 

zu bewerten versuchen, habe ich eine ‚keine Instanz überladene Funktion Fehler‘

Kennt jemand wie ich in meiner Formatierung falsch bin?

Antwort

0

Haben Sie Ihr Modell mit Python oder BrainScript trainiert? Wenn Sie Python verwenden, sollten Sie die CNTKLibrary-API zur Evaluierung verwenden, nicht jedoch die EvalDll-API (die nur für Modelle funktioniert, die mit BrainScript trainiert wurden). Weitere Informationen zum Unterschied zwischen diesen beiden APIs finden Sie in unserer Wiki-Seite here. Sie können this page über die Verwendung der CNTKLibrary-API für die Modellbewertung und die example code überprüfen. Anweisungen zum Erstellen von Beispielen sind in this page beschrieben.

Sie können auch unsere Nuget packages verwenden, um Ihre Anwendung zu erstellen.

Danke!

+0

Ich benutze jetzt die CNTKLibrary API mit dem Beispiel als Referenz und alles funktioniert perfekt. Danke für Ihre Hilfe! – Gepard