Windows.AI.MachineLearning Namespace

Ermöglicht Apps das Laden von Machine Learning-Modellen, das Binden von Features und das Auswerten der Ergebnisse.

Klassen

ImageFeatureDescriptor

Beschreibt die Eigenschaften des Bilds, das das Modell erwartet.

ImageFeatureValue

Beschreibt die Eigenschaften des Bilds, das zum Übergeben an ein Modell verwendet wird.

LearningModel

Stellt ein trainiertes Machine Learning-Modell dar.

LearningModelBinding

Wird verwendet, um Werte an benannte Eingabe- und Ausgabefeatures zu binden.

LearningModelDevice

Das Gerät, das zum Auswerten des Machine Learning-Modells verwendet wird.

LearningModelEvaluationResult

Rufen Sie die Ergebnisse der Auswertung ab.

LearningModelSession

Wird zum Auswerten von Machine Learning-Modellen verwendet.

LearningModelSessionOptions

Beschreibt Rückschlussoptionen, die beim Erstellen von LearningModelSession-Objekten verwendet werden.

MapFeatureDescriptor

Eine Zuordnung ist eine Sammlung von (Schlüssel-, Wert-)Paaren.

SequenceFeatureDescriptor

Eine Sequenz ist ein Array von Elementen.

TensorBoolean

Ein boolesches Tensorobjekt.

TensorDouble

Ein 64-Bit-Float-Tensorobjekt.

TensorFeatureDescriptor

Tensoren sind mehrdimensionale Arrays von Werten.

TensorFloat

Ein 32-Bit-Float-Tensorobjekt.

TensorFloat16Bit

Ein 16-Bit-Float-Tensorobjekt.

TensorInt16Bit

Ein 16-Bit-Ganzzahl-Tensorobjekt mit Vorzeichen.

TensorInt32Bit

Ein 32-Bit-Ganzzahl-Tensorobjekt mit Vorzeichen.

TensorInt64Bit

Ein 64-Bit-Ganzzahl-Tensorobjekt mit Vorzeichen.

TensorInt8Bit

Ein 8-Bit-Ganzzahl-Tensorobjekt mit Vorzeichen.

TensorString

Ein Zeichenfolgen-Tensorobjekt.

TensorUInt16Bit

Ein 16-Bit-Tensorobjekt ohne Vorzeichen.

TensorUInt32Bit

Ein 32-Bit-Tensorobjekt ohne Vorzeichen.

TensorUInt64Bit

Ein 64-Bit-Tensorobjekt ohne Vorzeichen.

TensorUInt8Bit

Ein 8-Bit-Tensorobjekt ohne Vorzeichen.

Schnittstellen

ILearningModelFeatureDescriptor

Beschreibt die allgemeinen Eigenschaften, die alle Features aufweisen.

ILearningModelFeatureValue

Der instanziierte Wert für ein Feature.

ILearningModelOperatorProvider

Beschreibt die Operaatoren für ein Lernmodell.

ITensor

Tensoren sind mehrdimensionale Werte.

Enumerationen

LearningModelDeviceKind

Definiert die Liste der Gerätetypen, die ein Machine Learning-Modell auswerten können.

LearningModelFeatureKind

Eingabe- und Ausgabefeaturetypen für ein Machine Learning-Modell.

LearningModelPixelRange

Definiert die Liste der nominalen Bildpixelbereiche, die von Windows ML unterstützt werden. Der richtige Wert wird in den Metadaten eines Machine Learning-Modells angegeben.

TensorKind

Definiert die Liste der unterstützten Tensor-Datentypen.

Beispiele

Im folgenden Beispiel wird ein Modell geladen, eine Auswertungssitzung erstellt, die Eingabe- und Ausgabefeatures des Modells abgerufen, diese Features gebunden und ausgewertet.

private async Task LoadAndEvaluateModelAsync(VideoFrame _inputFrame, string _modelFileName)
{
    LearningModel _model;
    ImageFeatureDescriptor _inputImageDescription;
    TensorFeatureDescriptor _outputImageDescription;
    LearningModelBinding _binding = null;
    VideoFrame _outputFrame = null;
    LearningModelSession _session;

    try
    {
        // Load and create the model
        var modelFile = 
            await StorageFile.GetFileFromApplicationUriAsync(new Uri($"ms-appx:///Assets/{_modelFileName}"));
        _model = await LearningModel.LoadFromStorageFileAsync(modelFile);

        // Create the evaluation session with the model
        _session = new LearningModelSession(_model);

        //Get input and output features of the model
        List<ILearningModelFeatureDescriptor> inputFeatures = _model.InputFeatures.ToList();
        List<ILearningModelFeatureDescriptor> outputFeatures = _model.OutputFeatures.ToList();

        // 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
        var results = await _session.EvaluateAsync(_binding, "test");
    }
    catch (Exception ex)
    {
        StatusBlock.Text = $"error: {ex.Message}";
        _model = null;
    }
}

Hinweise

Windows Server

Um diese API unter Windows Server verwenden zu können, müssen Sie Windows Server 2019 mit Desktopoberfläche verwenden.

Threadsicherheit

Diese API ist threadsicher.

Weitere Informationen