У меня есть обученная модель fastrcnn с пользовательским набором изображений. Я хочу оценить новый образ, используя модель и C ++ Eval API. Я сгладил изображение в одномерном векторе и получил rois для ввода в функцию eval.
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 }};
но когда я пытаюсь оценить с
model->Evaluate(inputs, outputs);
У меня нет ни одного случая ошибки перегруженной функции
Кто-нибудь знает, как я ошибаюсь в своем форматировании?
Вы тренировали свою модель, используя Python или BrainScript? При использовании Python для оценки следует использовать API-интерфейс CNTKLibrary, но не API-интерфейс EvalDll (который работает только для моделей, обученных с использованием BrainScript). Вы можете найти больше информации о разнице между этими двумя API на нашей вики-странице. Вот. Ты можешь проверить эта страница о том, как использовать CNTKLibrary API для оценки модели, и пример кода. Инструкции о том, как создавать примеры, описаны в эта страница.
Вы также можете использовать наш Пакеты Nuget построить ваше приложение.
Спасибо!
Других решений пока нет …