Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Setelah Anda memiliki nilai terikat ke input dan output model, Anda siap untuk mengevaluasi input model dan mendapatkan prediksinya.
Untuk menjalankan model, Anda memanggil salah satu metode Evaluasi* di LearningModelSession Anda. Anda dapat menggunakan LearningModelEvaluationResult untuk melihat fitur output.
Contoh
Dalam contoh berikut, kami melakukan evaluasi pada sesi dengan menyertakan pengikatan dan ID korelasi yang unik. Kemudian kami mengurai output sebagai daftar probabilitas, mencocokkannya dengan daftar label untuk berbagai hal yang dapat dikenali model kami, dan menulis hasilnya ke konsol:
// 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}");
}
}
Penghapusan perangkat
Jika perangkat menjadi tidak tersedia, atau jika Anda ingin menggunakan perangkat lain, Anda harus menutup sesi dan membuat sesi baru.
Dalam beberapa kasus, perangkat grafis mungkin perlu dibongkar dan dimuat ulang, seperti yang dijelaskan dalam dokumentasi DirectX.
Saat menggunakan Windows ML, Anda harus mendeteksi kasus ini dan menutup sesi. Untuk memulihkan dari penghapusan perangkat atau inisialisasi ulang, Anda akan membuat sesi baru, yang memicu logika pemilihan perangkat untuk dijalankan lagi.
Kasus paling umum di mana Anda akan melihat kesalahan ini adalah selama LearningModelSession.Evaluate. Dalam kasus penghapusan atau reset perangkat, LearningModelEvaluationResult.ErrorStatus akan DXGI_ERROR_DEVICE_REMOVED atau DXGI_ERROR_DEVICE_RESET.
Lihat juga
- Sebelumnya: Mengikat model
Nota
Gunakan sumber daya berikut untuk bantuan dengan Windows ML:
- Untuk mengajukan atau menjawab pertanyaan teknis tentang Windows ML, silakan gunakan tag windows-machine-learning di Stack Overflow.
- Untuk melaporkan bug, silakan ajukan masalah di GitHub kami.