Valutare gli input del modello
Dopo aver associato valori agli input e agli output di un modello, puoi valutare gli input del modello e ottenere le previsioni.
Per eseguire il modello, chiama uno dei metodi Evaluate* in LearningModelSession. Puoi usare LearningModelEvaluationResult per esaminare le caratteristiche di output.
Esempio
Nell'esempio seguente viene eseguita una valutazione della sessione, passando l'associazione e un ID di correlazione univoco. L'output viene quindi analizzato come elenco di probabilità e associato a un elenco di etichette per i diversi elementi che il modello è in grado di riconoscere. Infine vengono scritti i risultati nella 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}");
}
}
Rimozione del dispositivo
Se il dispositivo non è più disponibile o preferisci usarne uno diverso, devi chiudere la sessione e crearne una nuova.
In alcuni casi, potrebbe essere necessario scaricare e ricaricare i dispositivi grafici, come illustrato nella documentazione di DirectX.
Quando usi Windows ML, devi rilevare se questo caso è applicabile e chiudere la sessione. Per eseguire il ripristino dopo la rimozione o la reinizializzazione di un dispositivo, devi creare una nuova sessione, che attiva la logica di selezione del dispositivo per una nuova esecuzione.
Il caso più comune in cui puoi visualizzare questo errore è durante LearningModelSession.Evaluate. In caso di rimozione o reimpostazione di un dispositivo, il valore di LearningModelEvaluationResult.ErrorStatus sarà DXGI_ERROR_DEVICE_REMOVED o DXGI_ERROR_DEVICE_RESET.
Vedi anche
- Precedente: Associare un modello
Nota
Per informazioni su Windows Machine Learning, usa le risorse seguenti:
- Per porre domande tecniche o rispondere a domande tecniche su Windows Machine Learning, usa il tag windows-machine-learning in Stack Overflow.
- Per segnalare un bug, registra il problema in GitHub.