Windows.AI.MachineLearning Espace de noms

Permet aux applications de charger des modèles Machine Learning, de lier des fonctionnalités et d’évaluer les résultats.

Classes

ImageFeatureDescriptor

Décrit les propriétés de l’image attendue par le modèle.

ImageFeatureValue

Décrit les propriétés de l’image utilisée pour passer dans un modèle.

LearningModel

Représente un modèle Machine Learning entraîné.

LearningModelBinding

Utilisé pour lier des valeurs à des fonctionnalités d’entrée et de sortie nommées.

LearningModelDevice

Appareil utilisé pour évaluer le modèle Machine Learning.

LearningModelEvaluationResult

Obtenez les résultats de l’évaluation.

LearningModelSession

Utilisé pour évaluer des modèles Machine Learning.

LearningModelSessionOptions

Décrit les options d’inférence utilisées lors de la création d’objets LearningModelSession .

MapFeatureDescriptor

Une carte est une collection de paires (clé, valeur).

SequenceFeatureDescriptor

Une séquence est un tableau d’éléments.

TensorBoolean

Objet tensoriel booléen.

TensorDouble

Objet tenseur float 64 bits.

TensorFeatureDescriptor

Les tenseurs sont des tableaux multidimensionnels de valeurs.

TensorFloat

Objet tenseur float 32 bits.

TensorFloat16Bit

Objet tenseur float 16 bits.

TensorInt16Bit

Objet tenseur d’entier signé 16 bits.

TensorInt32Bit

Objet tenseur d’entier signé 32 bits.

TensorInt64Bit

Objet tenseur d’entier signé 64 bits.

TensorInt8Bit

Objet tenseur d’entier signé 8 bits.

TensorString

Objet tensoriel de chaîne.

TensorUInt16Bit

Objet tenseur d’entier non signé 16 bits.

TensorUInt32Bit

Objet tenseur d’entier non signé 32 bits.

TensorUInt64Bit

Objet tenseur d’entier non signé 64 bits.

TensorUInt8Bit

Objet tenseur d’entier non signé 8 bits.

Interfaces

ILearningModelFeatureDescriptor

Décrit les propriétés communes que toutes les fonctionnalités ont.

ILearningModelFeatureValue

Valeur instanciée d’une fonctionnalité.

ILearningModelOperatorProvider

Décrit les opérateurs d’un modèle d’apprentissage.

ITensor

Les tenseurs sont des valeurs multidimensionnelles.

Énumérations

LearningModelDeviceKind

Définit la liste des types d’appareils qui peuvent évaluer un modèle Machine Learning.

LearningModelFeatureKind

Types de fonctionnalités d’entrée et de sortie pour un modèle Machine Learning.

LearningModelPixelRange

Définit la liste de la plage de pixels nominaux d’image supporée par Windows ML. La valeur appropriée est spécifiée dans les métadonnées d’un modèle Machine Learning.

TensorKind

Définit la liste des types de données tensoriels pris en charge.

Exemples

L’exemple suivant charge un modèle, crée une session d’évaluation, obtient les fonctionnalités d’entrée et de sortie du modèle, lie ces fonctionnalités et évalue.

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

Remarques

Windows Server

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

Sécurité des threads

Cette API est thread-safe.

Voir aussi