Partilhar via


Windows.AI.MachineLearning Namespace

Permite que os aplicativos carreguem modelos de machine learning, associem recursos e avaliem os resultados.

Classes

ImageFeatureDescriptor

Descreve as propriedades da imagem que o modelo está esperando.

ImageFeatureValue

Descreve as propriedades da imagem usada para passar para um modelo.

LearningModel

Representa um modelo de machine learning treinado.

LearningModelBinding

Usado para associar valores a recursos nomeados de entrada e saída.

LearningModelDevice

O dispositivo usado para avaliar o modelo de machine learning.

LearningModelEvaluationResult

Obtenha os resultados da avaliação.

LearningModelSession

Usado para avaliar modelos de machine learning.

LearningModelSessionOptions

Descreve as opções de inferência usadas durante a criação de objetos LearningModelSession .

MapFeatureDescriptor

Um mapa é uma coleção de pares (chave, valor).

SequenceFeatureDescriptor

Uma sequência é uma matriz de elementos.

TensorBoolean

Um objeto tensor booliano.

TensorDouble

Um objeto tensor float de 64 bits.

TensorFeatureDescriptor

Tensores são matrizes multidimensionais de valores.

TensorFloat

Um objeto tensor float de 32 bits.

TensorFloat16Bit

Um objeto tensor float de 16 bits.

TensorInt16Bit

Um objeto tensor inteiro com sinal de 16 bits.

TensorInt32Bit

Um objeto tensor inteiro com sinal de 32 bits.

TensorInt64Bit

Um objeto tensor inteiro com sinal de 64 bits.

TensorInt8Bit

Um objeto tensor inteiro com sinal de 8 bits.

TensorString

Um objeto tensor de cadeia de caracteres.

TensorUInt16Bit

Um objeto tensor inteiro sem sinal de 16 bits.

TensorUInt32Bit

Um objeto tensor inteiro sem sinal de 32 bits.

TensorUInt64Bit

Um objeto tensor inteiro sem sinal de 64 bits.

TensorUInt8Bit

Um objeto tensor inteiro sem sinal de 8 bits.

Interfaces

ILearningModelFeatureDescriptor

Descreve as propriedades comuns que todos os recursos têm.

ILearningModelFeatureValue

O valor instanciado para um recurso.

ILearningModelOperatorProvider

Descreve os operadores para um modelo de aprendizado.

ITensor

Tensores são valores multidimensionais.

Enumerações

LearningModelDeviceKind

Define a lista de tipos de dispositivo que podem avaliar um modelo de machine learning.

LearningModelFeatureKind

Tipos de recursos de entrada e saída para um modelo de machine learning.

LearningModelPixelRange

Define a lista de intervalos de pixels nominais de imagem supusados pelo Windows ML. O valor adequado é especificado nos metadados de um modelo de machine learning.

TensorKind

Define a lista de tipos de dados tensores com suporte.

Exemplos

O exemplo a seguir carrega um modelo, cria uma sessão de avaliação, obtém os recursos de entrada e saída do modelo, associa esses recursos e avalia.

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

Comentários

Windows Server

Para usar essa API no Windows Server, você deve usar o Windows Server 2019 com a Experiência desktop.

Acesso thread-safe

Essa API é thread-safe.

Confira também