Aracılığıyla paylaş


Model girişlerini değerlendirme

Değerleri modelin girişlerine ve çıkışlarına bağladıktan sonra modelin girişlerini değerlendirmeye ve tahminlerini almaya hazır olursunuz.

Modeli çalıştırmak için LearningModelSession'ınızdakiEvaluate* yöntemlerinden herhangi birini çağırırsınız. Çıktı özelliklerine bakmak için LearningModelEvaluationResult kullanabilirsiniz.

Örnek

Aşağıdaki örnekte, bağlayıcıyı ve benzersiz bir bağıntı kimliğini geçirerek oturumda bir değerlendirme yapacağız. Ardından çıktıyı olasılık listesi olarak ayrıştırır, modelimizin tanıyabileceği farklı şeyler için bir etiket listesiyle eşleştirip sonuçları konsola yazarız:

// 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}");
    }
}

Cihaz kaldırma

Cihaz kullanılamaz duruma gelirse veya farklı bir cihaz kullanmak istiyorsanız oturumu kapatmanız ve yeni bir oturum oluşturmanız gerekir.

Bazı durumlarda, DirectX belgelerinde açıklandığı gibi grafik cihazlarının kaldırılması ve yeniden yüklenmesi gerekebilir.

Windows ML kullanırken bu olayı algılamanız ve oturumu kapatmanız gerekir. Bir cihazı kaldırma veya yeniden başlatma işleminden kurtarmak için, cihaz seçim mantığını yeniden çalıştırmak üzere tetikleyen yeni bir oturum oluşturacaksınız.

Bu hatayı göreceğiniz en yaygın durum LearningModelSession.Evaluate sırasındadır. Cihazın kaldırılması veya sıfırlanması durumunda LearningModelEvaluationResult.ErrorStatusDXGI_ERROR_DEVICE_REMOVED veya DXGI_ERROR_DEVICE_RESET.

Ayrıca bakınız

Uyarı

Windows ML ile ilgili yardım için aşağıdaki kaynakları kullanın:

  • Windows ML hakkında teknik sorular sormak veya yanıtlamak için lütfen Stack Overflowüzerindeki windows-machine-learning etiketini kullanın.
  • Bir hatayı bildirmek için lütfen GitHubile ilgili bir sorun oluşturun.