Windows.AI.MachineLearning Espacio de nombres

Permite a las aplicaciones cargar modelos de aprendizaje automático, enlazar características y evaluar los resultados.

Clases

ImageFeatureDescriptor

Describe las propiedades de la imagen que espera el modelo.

ImageFeatureValue

Describe las propiedades de la imagen usadas para pasar a un modelo.

LearningModel

Representa un modelo de aprendizaje automático entrenado.

LearningModelBinding

Se usa para enlazar valores a características de entrada y salida con nombre.

LearningModelDevice

Dispositivo que se usa para evaluar el modelo de Machine Learning.

LearningModelEvaluationResult

Obtenga los resultados de la evaluación.

LearningModelSession

Se usa para evaluar los modelos de Machine Learning.

LearningModelSessionOptions

Describe las opciones de inferencia que se usan durante la creación de objetos LearningModelSession .

MapFeatureDescriptor

Un mapa es una colección de pares (clave, valor).

SequenceFeatureDescriptor

Una secuencia es una matriz de elementos.

TensorBoolean

Un objeto tensor booleano.

TensorDouble

Un objeto tensor float de 64 bits.

TensorFeatureDescriptor

Los tensores son matrices multidimensionales de valores.

TensorFloat

Un objeto tensor float de 32 bits.

TensorFloat16Bit

Un objeto tensor float de 16 bits.

TensorInt16Bit

Un objeto tensor entero de 16 bits con signo.

TensorInt32Bit

Un objeto tensor entero de 32 bits con signo.

TensorInt64Bit

Un objeto tensor entero de 64 bits con signo.

TensorInt8Bit

Un objeto tensor entero de 8 bits con signo.

TensorString

Objeto tensor de cadena.

TensorUInt16Bit

Un objeto de tensor entero de 16 bits sin signo.

TensorUInt32Bit

Un objeto de tensor entero de 32 bits sin signo.

TensorUInt64Bit

Un objeto de tensor entero de 64 bits sin signo.

TensorUInt8Bit

Un objeto tensor entero de 8 bits sin signo.

Interfaces

ILearningModelFeatureDescriptor

Describe las propiedades comunes que tienen todas las características.

ILearningModelFeatureValue

Valor de instancia de una característica.

ILearningModelOperatorProvider

Describe los operadores de un modelo de aprendizaje.

ITensor

Los tensores son valores multidimensionales.

Enumeraciones

LearningModelDeviceKind

Define la lista de tipos de dispositivos que pueden evaluar un modelo de Machine Learning.

LearningModelFeatureKind

Tipos de características de entrada y salida para un modelo de Machine Learning.

LearningModelPixelRange

Define la lista de intervalos nominales de píxeles de imagen que windows ML supone. El valor adecuado se especifica en los metadatos de un modelo de Machine Learning.

TensorKind

Define la lista de tipos de datos tensor admitidos.

Ejemplos

En el ejemplo siguiente se carga un modelo, se crea una sesión de evaluación, se obtienen las características de entrada y salida del modelo, se enlazan esas características y se evalúan.

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

Comentarios

Windows Server

Para usar esta API en Windows Server, debe usar Windows Server 2019 con experiencia de escritorio.

Seguridad para subprocesos

Esta API es segura para subprocesos.

Consulte también