Windows.AI.MachineLearning Espacio de nombres
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
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.