Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Une fois que vous avez des valeurs liées aux entrées et sorties d’un modèle, vous êtes prêt à évaluer les entrées du modèle et à obtenir ses prédictions.
Pour exécuter le modèle, vous appelez l’une des méthodes Evaluate* sur votre LearningModelSession. Vous pouvez utiliser LearningModelEvaluationResult pour examiner les fonctionnalités de sortie.
Exemple :
Dans l’exemple suivant, nous exécutons une évaluation sur la session, en transmettant la liaison et un ID de corrélation unique. Ensuite, nous analysons la sortie en tant que liste de probabilités, la mettre en correspondance avec une liste d’étiquettes pour les différentes choses que notre modèle peut reconnaître et écrire les résultats dans la console :
// 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}");
}
}
Suppression de l’appareil
Si l’appareil devient indisponible ou si vous souhaitez utiliser un autre appareil, vous devez fermer la session et créer une session.
Dans certains cas, les appareils graphiques peuvent avoir besoin d’être déchargés et rechargés, comme expliqué dans la documentation DirectX.
Lorsque vous utilisez Windows ML, vous devez détecter ce cas et fermer la session. Pour effectuer une récupération à partir d’une suppression ou d’une réinitialisation d’un appareil, vous allez créer une nouvelle session, ce qui déclenche l’exécution de la logique de sélection de l’appareil.
Le cas le plus courant où vous verrez cette erreur est pendant LearningModelSession.Evaluate. Dans le cas de la suppression ou de la réinitialisation de l’appareil, LearningModelEvaluationResult.ErrorStatus est DXGI_ERROR_DEVICE_REMOVED ou DXGI_ERROR_DEVICE_RESET.
Voir aussi
- Précédent : Lier un modèle
Remarque
Utilisez les ressources suivantes pour obtenir de l’aide sur Windows ML :
- Pour poser ou répondre à des questions techniques sur Windows ML, utilisez la balise windows-machine-learning sur Stack Overflow.
- Pour signaler un bogue, veuillez signaler un problème sur notre GitHub.