Bagikan melalui


Mengevaluasi input model

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 Pembelajaran ModelSession Anda. Anda dapat menggunakan Pembelajaran ModelEvaluationResult untuk melihat fitur output.

Contoh

Dalam contoh berikut, kami menjalankan evaluasi pada sesi, meneruskan pengikatan dan ID korelasi 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 Pembelajaran ModelSession.Evaluate. Dalam kasus penghapusan atau reset perangkat, Pembelajaran ModelEvaluationResult.ErrorStatus akan DXGI_ERROR_DEVICE_REMOVED atau DXGI_ERROR_DEVICE_RESET.

Baca juga

Catatan

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.