Оценка входных данных модели
Выполнив привязку значений к входам и выходам модели, вы можете оценить входные данные модели и получить результаты прогнозирования.
Чтобы запустить модель, вызовите любой метод Evaluate* из LearningModelSession. Выходные признаки можно проверить с помощью LearningModelEvaluationResult.
Пример
В следующем примере мы выполним оценку в сеансе, передавая ему привязку и уникальный идентификатор корреляции. Затем мы проанализируем выходные данные, которые содержат список вероятностей, сопоставим их со списком меток для распознаваемых моделью сущностей, и выведем результаты в консоль.
// How many times an evaluation has been run
private int runCount = 0;
private void EvaluateModel(
LearningModelSession session,
LearningModelBinding binding,
string outputName,
List<string> labels)
{
// Process the frame with the model
var results =
await session.EvaluateAsync(binding, $"Run {++runCount}");
// Retrieve the results of evaluation
var resultTensor = results.Outputs[outputName] as TensorFloat;
var resultVector = resultTensor.GetAsVectorView();
// Find the top 3 probabilities
List<(int index, float probability)> indexedResults = new List<(int, float)>();
for (int i = 0; i < resultVector.Count; i++)
{
indexedResults.Add((index: i, probability: resultVector.ElementAt(i)));
}
// Sort the results in order of highest probability
indexedResults.Sort((a, b) =>
{
if (a.probability < b.probability)
{
return 1;
}
else if (a.probability > b.probability)
{
return -1;
}
else
{
return 0;
}
});
// Display the results
for (int i = 0; i < 3; i++)
{
Debug.WriteLine(
$"\"{labels[indexedResults[i].index]}\" with confidence of {indexedResults[i].probability}");
}
}
Удаление устройства
Если устройство становится недоступным или вы хотите использовать другое устройство, необходимо закрыть текущий сеанс и создать новый.
В некоторых случаях нужно выгрузить и перезагрузить графическое устройство, как описано в документации по DirectX.
При использовании Windows ML нужно отслеживать такую ситуацию, чтобы корректно закрыть сеанс. Чтобы возобновить работу после удаления или повторной инициализации устройства, создайте новый сеанс. Это действие приводит к повторному применению логики выбора устройства.
Такая ошибка чаще всего возникает при выполнении LearningModelSession.Evaluate. После удаления или сброса настроек устройства параметр LearningModelEvaluationResult.ErrorStatus принимает значение DXGI_ERROR_DEVICE_REMOVED или DXGI_ERROR_DEVICE_RESET.
См. также
- Следующий: Привязка модели
Примечание.
Используйте следующие ресурсы для получения справки по машинному обучению в Windows:
- Чтобы задать технические вопросы о машинном обучении в Windows или ответить на них, используйте тег windows-machine-learning в Stack Overflow.
- Сообщить об ошибке можно в нашем репозитории GitHub.