次の方法で共有


LearningModelSession.EvaluateAsync(LearningModelBinding, String) メソッド

定義

バインドに既にバインドされている機能値を使用して、機械学習モデルを非同期的に評価 します

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)

パラメーター

bindings
LearningModelBinding

名前付き入力および出力機能にバインドされた値。

correlationId
String

Platform::String

winrt::hstring

出力結果を接続するための省略可能なユーザー指定の文字列。

戻り値

評価からの LearningModelEvaluationResult

属性

次の例では、モデルから最初の入力フィーチャと出力フィーチャを取得し、出力フレームを作成し、入力フィーチャと出力フィーチャをバインドして、モデルを評価します。

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;
    }
}

注釈

Windows Server

Windows Server でこの API を使用するには、Windows Server 2019 とデスクトップ エクスペリエンスを使用する必要があります。

スレッド セーフ

この API はスレッド セーフです。

適用対象