Partager via


LearningModelSession.EvaluateAsync(LearningModelBinding, String) Méthode

Définition

Évaluez de manière asynchrone le modèle Machine Learning à l’aide des valeurs de fonctionnalité déjà liées dans les liaisons.

public:
 virtual IAsyncOperation<LearningModelEvaluationResult ^> ^ EvaluateAsync(LearningModelBinding ^ bindings, Platform::String ^ correlationId) = EvaluateAsync;
/// [Windows.Foundation.Metadata.RemoteAsync]
IAsyncOperation<LearningModelEvaluationResult> EvaluateAsync(LearningModelBinding const& bindings, winrt::hstring const& correlationId);
[Windows.Foundation.Metadata.RemoteAsync]
public IAsyncOperation<LearningModelEvaluationResult> EvaluateAsync(LearningModelBinding bindings, string correlationId);
function evaluateAsync(bindings, correlationId)
Public Function EvaluateAsync (bindings As LearningModelBinding, correlationId As String) As IAsyncOperation(Of LearningModelEvaluationResult)

Paramètres

bindings
LearningModelBinding

Valeurs liées aux fonctionnalités d’entrée et de sortie nommées.

correlationId
String

Platform::String

winrt::hstring

Chaîne facultative fournie par l’utilisateur pour connecter les résultats de sortie.

Retours

LearningModelEvaluationResult de l’évaluation.

Attributs

Exemples

L’exemple suivant récupère les premières fonctionnalités d’entrée et de sortie du modèle, crée un cadre de sortie, lie les fonctionnalités d’entrée et de sortie, et évalue le modèle.

private async Task EvaluateModelAsync(
    VideoFrame _inputFrame, 
    LearningModelSession _session, 
    IReadOnlyList<ILearningModelFeatureDescriptor> _inputFeatures, 
    IReadOnlyList<ILearningModelFeatureDescriptor> _outputFeatures,
    LearningModel _model)
{
    ImageFeatureDescriptor _inputImageDescription;
    TensorFeatureDescriptor _outputImageDescription;
    LearningModelBinding _binding = null;
    VideoFrame _outputFrame = null;
    LearningModelEvaluationResult _results;

    try
    {
        // Retrieve the first input feature which is an image
        _inputImageDescription =
            _inputFeatures.FirstOrDefault(feature => feature.Kind == LearningModelFeatureKind.Image)
            as ImageFeatureDescriptor;

        // Retrieve the first output feature which is a tensor
        _outputImageDescription =
            _outputFeatures.FirstOrDefault(feature => feature.Kind == LearningModelFeatureKind.Tensor)
            as TensorFeatureDescriptor;

        // Create output frame based on expected image width and height
        _outputFrame = new VideoFrame(
            BitmapPixelFormat.Bgra8, 
            (int)_inputImageDescription.Width, 
            (int)_inputImageDescription.Height);

        // Create binding and then bind input/output features
        _binding = new LearningModelBinding(_session);

        _binding.Bind(_inputImageDescription.Name, _inputFrame);
        _binding.Bind(_outputImageDescription.Name, _outputFrame);

        // Evaluate and get the results
        _results = await _session.EvaluateAsync(_binding, "test");
    }
    catch (Exception ex)
    {
        StatusBlock.Text = $"error: {ex.Message}";
        _model = null;
    }
}

Remarques

Windows Server

Pour utiliser cette API sur Windows Server, vous devez utiliser Windows Server 2019 avec Expérience de bureau.

Sécurité des threads

Cette API est thread-safe.

S’applique à