Windows.AI.MachineLearning Namespace
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
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.