Поделиться через


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 является потокобезопасным.

См. также раздел