Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Po powiązaniu wartości z danymi wejściowymi i wyjściowymi modelu możesz przystąpić do oceny danych wejściowych modelu i uzyskiwania przewidywań.
Aby uruchomić model, należy wywołać dowolną z metod Evaluate* w modelu LearningModelSession. Aby zapoznać się z funkcjami wyjściowymi, możesz użyć elementu LearningModelEvaluationResult .
Przykład
W poniższym przykładzie uruchamiamy ewaluację w sesji, przekazując powiązanie i unikalny identyfikator korelacji. Następnie analizujemy dane wyjściowe jako listę prawdopodobieństwa, dopasujemy je do listy etykiet dla różnych elementów, które nasz model może rozpoznać, i zapiszemy wyniki w konsoli:
// 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}");
}
}
Usuwanie urządzenia
Jeśli urządzenie stanie się niedostępne lub jeśli chcesz użyć innego urządzenia, musisz zamknąć sesję i utworzyć nową sesję.
W niektórych przypadkach urządzenia graficzne mogą wymagać zwolnienia i ponownego załadowania, zgodnie z wyjaśnieniem w dokumentacji directx.
W przypadku korzystania z uczenia maszynowego z systemem Windows należy wykryć ten przypadek i zamknąć sesję. Aby odzyskać dane po usunięciu lub ponownym zainicjowaniu urządzenia, utworzysz nową sesję, która wyzwala logikę wyboru urządzenia do ponownego uruchomienia.
Najczęstszym przypadkiem, w którym ten błąd występuje, jest podczas learningModelSession.Evaluate. W przypadku usunięcia lub zresetowania urządzenia element LearningModelEvaluationResult.ErrorStatus zostanie DXGI_ERROR_DEVICE_REMOVED lub DXGI_ERROR_DEVICE_RESET.
Zobacz także
- Poprzednia: wiązanie modelu
Uwaga / Notatka
Skorzystaj z następujących zasobów, aby uzyskać pomoc dotyczącą uczenia maszynowego z systemem Windows:
- Aby zadać lub odpowiedzieć na pytania techniczne dotyczące uczenia maszynowego z systemem Windows, użyj tagu windows-machine-learning w witrynie Stack Overflow.
- Aby zgłosić usterkę, popełnij zgłoszenie na GitHubie .