Windows.AI.MachineLearning Пространство имен
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Позволяет приложениям загружать модели машинного обучения, привязывать признаки и оценивать результаты.
Классы
| ImageFeatureDescriptor |
Описывает свойства изображения, ожидаемого моделью. |
| ImageFeatureValue |
Описывает свойства изображения, используемого для передачи в модель. |
| LearningModel |
Представляет обученную модель машинного обучения. |
| LearningModelBinding |
Используется для привязки значений к именованным функциям ввода и вывода. |
| LearningModelDevice |
Устройство, используемое для оценки модели машинного обучения. |
| LearningModelEvaluationResult |
Получение результатов оценки. |
| LearningModelSession |
Используется для оценки моделей машинного обучения. |
| LearningModelSessionOptions |
Описывает параметры вывода, используемые при создании объектов LearningModelSession . |
| MapFeatureDescriptor |
Карта — это коллекция пар (ключ, значение). |
| SequenceFeatureDescriptor |
Последовательность — это массив элементов. |
| TensorBoolean |
Логический объект тензора. |
| TensorDouble |
64-разрядный тензор с плавающей запятой. |
| TensorFeatureDescriptor |
Тензоры — это многомерные массивы значений. |
| TensorFloat |
32-разрядный тензор с плавающей точкой. |
| TensorFloat16Bit |
16-разрядный тензор с плавающей точкой. |
| TensorInt16Bit |
16-разрядный целочисленный тензорный объект со знаком. |
| TensorInt32Bit |
32-разрядный целочисленный тензорный объект со знаком. |
| TensorInt64Bit |
64-разрядный целочисленный тензорный объект со знаком. |
| TensorInt8Bit |
8-разрядный тензорный объект со знаком. |
| TensorString |
Объект строкового тензора. |
| TensorUInt16Bit |
16-разрядный целочисленный тензорный объект без знака. |
| TensorUInt32Bit |
32-разрядный целочисленный тензорный объект без знака. |
| TensorUInt64Bit |
64-разрядный целочисленный тензорный объект без знака. |
| TensorUInt8Bit |
8-разрядный целочисленный тензорный объект без знака. |
Интерфейсы
| ILearningModelFeatureDescriptor |
Описание общих свойств, имеющихся у всех компонентов. |
| ILearningModelFeatureValue |
Значение экземпляра для компонента. |
| ILearningModelOperatorProvider |
Описывает операторы для модели обучения. |
| ITensor |
Тензоры являются многомерными значениями. |
Перечисления
| LearningModelDeviceKind |
Определяет список типов устройств, которые могут оценивать модель машинного обучения. |
| LearningModelFeatureKind |
Типы входных и выходных функций для модели машинного обучения. |
| LearningModelPixelRange |
Определяет список номинального диапазона пикселей изображений, предоставляемых Windows ML. Правильное значение указывается в метаданных модели машинного обучения. |
| TensorKind |
Определяет список поддерживаемых типов данных тензоров. |
Примеры
В следующем примере выполняется загрузка модели, создание сеанса оценки, получение входных и выходных признаков модели, привязка этих признаков и оценка.
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;
}
}
Комментарии
Windows Server
Чтобы использовать этот API в Windows Server, необходимо использовать Windows Server 2019 с возможностями рабочего стола.
Потокобезопасность
Этот API является потокобезопасным.