Poznámka
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Jakmile navážete hodnoty na vstupy a výstupy modelu, jste připraveni vyhodnotit vstupy modelu a získat jeho předpovědi.
Chcete-li model spustit, zavolejte kteroukoli z metod Evaluate* na LearningModelSession. Pomocí LearningModelEvaluationResult se můžete podívat na výstupní funkce.
Příklad
V následujícím příkladu spustíme vyhodnocení relace, předáme vazbu a jedinečné ID korelace. Pak analyzujeme výstup jako seznam pravděpodobností, porovnáme ho se seznamem štítků pro různé věci, které náš model dokáže rozpoznat, a výsledky zapíšeme do konzole:
// 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}");
}
}
Odebrání zařízení
Pokud se zařízení stane nedostupným nebo pokud chcete použít jiné zařízení, musíte relaci zavřít a vytvořit novou.
V některých případech může být nutné grafická zařízení uvolnit a znovu načíst, jak je vysvětleno v dokumentaci k rozhraní DirectX.
Pokud používáte Windows ML, budete muset tento případ zjistit a ukončit relaci. Chcete-li se zotavit z odebrání nebo opětovné inicializace zařízení, vytvoříte novou relaci, která znovu spustí logiku výběru zařízení.
Nejběžnějším případem, kdy se tato chyba zobrazí, je během LearningModelSession.Evaluate. V případě odebrání nebo resetování zařízení LearningModelEvaluationResult.ErrorStatus bude DXGI_ERROR_DEVICE_REMOVED nebo DXGI_ERROR_DEVICE_RESET.
Viz také
- Předchozí: Vytvoření vazby modelu
Poznámka:
Pomoc s Windows ML vám poskytnou následující zdroje:
- Pokud chcete pokládat nebo odpovídat na technické otázky týkající se Windows ML, použijte značku windows-machine-learning ve službě Stack Overflow.
- Pokud chcete nahlásit chybu, zapište prosím problém na našem GitHubu .