Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Dopo aver associato valori agli input e agli output di un modello, è possibile valutare gli input del modello e ottenere le stime.
Per eseguire il modello, chiamare uno dei metodi Evaluate* in LearningModelSession. È possibile usare LearningModelEvaluationResult per esaminare le funzionalità di output.
Esempio
Nell'esempio seguente viene eseguita una valutazione sulla sessione, passando il binding e un ID di correlazione univoco. Quindi, l'output viene analizzato come elenco di probabilità, corrispondente a un elenco di etichette per i diversi elementi che il modello può riconoscere e scrivere 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 se si vuole usare un dispositivo diverso, è necessario chiudere la sessione e creare una nuova sessione.
In alcuni casi, potrebbe essere necessario scaricare e ricaricare i dispositivi grafici, come illustrato nella documentazione di DirectX.
Quando si usa Windows ML, è necessario rilevare questo caso e chiudere la sessione. Per eseguire il ripristino da una rimozione o una nuova inizializzazione del dispositivo, si creerà una nuova sessione che attiva la logica di selezione del dispositivo per l'esecuzione di nuovo.
Il caso più comune in cui verrà visualizzato questo errore è durante LearningModelSession.Evaluate. In caso di rimozione o reimpostazione del dispositivo, LearningModelEvaluationResult.ErrorStatus verrà DXGI_ERROR_DEVICE_REMOVED o DXGI_ERROR_DEVICE_RESET.
Vedere anche
- Precedente: Associare un modello
Annotazioni
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.