Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Sobald Sie Werte an die Eingaben und Ausgaben eines Modells gebunden haben, können Sie die Eingaben des Modells auswerten und die zugehörigen Vorhersagen abrufen.
Zum Ausführen des Modells rufen Sie eine der Evaluate*-Methoden für Ihre LearningModelSession auf. Sie können das LearningModelEvaluationResult verwenden, um sich die Ausgabefeatures anzusehen.
Beispiel
Im folgenden Beispiel führen wir eine Evaluierung der Sitzung durch, mit Angabe der Bindung und einer eindeutigen Korrelations-ID. Anschließend analysieren wir die Ausgabe als Eine Liste der Wahrscheinlichkeiten, stimmen sie mit einer Liste von Bezeichnungen für die verschiedenen Elemente überein, die unser Modell erkennen kann, und schreiben die Ergebnisse in die Konsole:
// 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}");
}
}
Geräteentfernung
Wenn das Gerät nicht verfügbar ist oder Sie ein anderes Gerät verwenden möchten, müssen Sie die Sitzung schließen und eine neue Sitzung erstellen.
In einigen Fällen müssen Grafikgeräte möglicherweise entladen und neu geladen werden, wie in der DirectX-Dokumentation erläutert.
Bei Verwendung von Windows ML müssen Sie diesen Fall erkennen und die Sitzung schließen. Wenn Sie sich von der Entfernung oder Neuinitialisierung eines Geräts erholen möchten, erstellen Sie eine neue Sitzung, die die Geräteauswahllogik erneut ausführt.
Der häufigste Fall, in dem dieser Fehler angezeigt wird, ist während LearningModelSession.Evaluate. Im Fall des Entfernens oder Zurücksetzens des Geräts weist LearningModelEvaluationResult.ErrorStatus den Wert DXGI_ERROR_DEVICE_REMOVED oder DXGI_ERROR_DEVICE_RESET.
Siehe auch
- Zurück: Binden eines Modells
Hinweis
Verwenden Sie die folgenden Ressourcen für Hilfe zu Windows ML:
- Um technische Fragen zu Windows ML zu stellen oder zu beantworten, verwenden Sie bitte das Windows-Machine-Learning--Tag auf Stack Overflow-.
- Um einen Fehler zu melden, melden Sie bitte ein Problem in unserem GitHub.