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


OnnxScoringEstimator Класс

Определение

IEstimator<TTransformer> для оценки моделей ONNX на платформе ML.NET.

public sealed class OnnxScoringEstimator : Microsoft.ML.Data.TrivialEstimator<Microsoft.ML.Transforms.Onnx.OnnxTransformer>
type OnnxScoringEstimator = class
    inherit TrivialEstimator<OnnxTransformer>
Public NotInheritable Class OnnxScoringEstimator
Inherits TrivialEstimator(Of OnnxTransformer)
Наследование
OnnxScoringEstimator

Комментарии

Характеристики оценщика

Должен ли этот оценщик просмотреть данные для обучения его параметров? нет
Тип данных входного столбца Вектор известных размеров Single или Double типов
Тип данных выходного столбца Как указано в модели ONNX
Требуется NuGet в дополнение к Microsoft.ML Microsoft.ML.OnnxTransformer (всегда), Microsoft.ML.OnnxRuntime 1.6.0 (для обработки ЦП) или Microsoft.ML.OnnxRuntime.Gpu 1.6.0 (для обработки GPU, если gpu доступен)
Экспортируемый в ONNX нет

Чтобы создать этот оценщик, используйте следующие API: ApplyOnnxModel

Поддерживает вывод моделей в формате ONNX 1.6 (opset 11), используя библиотеку Microsoft.ML.OnnxRuntime . Модели оцениваются на ЦП, если проект ссылается на Microsoft.ML.OnnxRuntime и на GPU, если проект ссылается на Microsoft.ML.OnnxRuntime.Gpu. Каждый проект, использующий OnnxScoringEstimator, должен ссылаться на один из указанных выше двух пакетов.

Чтобы запустить на GPU, используйте пакет NuGet Microsoft.ML.OnnxRuntime.Gpu вместо nuget Microsoft.ML.OnnxRuntime (который предназначен для обработки ЦП). Для Microsoft.ML.OnnxRuntime.Gpu требуется поддерживаемый GPU CUDA, набор средств CUDA 10.2 и cuDNN 8.0.3 (как указано в документации Onnxruntime). При создании оценщика с помощью ApplyOnnxModel задайте для параметра gpuDeviceId допустимое неотрицательное целое число. Типичные значения идентификатора устройства : 0 или 1. Если устройство GPU не найдено, но "fallbackToCpu = true", средство оценки будет выполняться на ЦП. Если устройство GPU не найдено, но "fallbackToCpu = false", средство оценки вызовет исключение

Входные и выходные данные моделей ONNX должны быть типа Tensor. Последовательности и карты пока не поддерживаются.

На внутреннем языке OnnxTransformer (возвращаемое значение OnnxScoringEstimator.Fit()) содержит ссылку на сеанс вывода, который указывает на неуправляемую память, принадлежающую OnnxRuntime.dll. При каждом вызове ApplyOnnxModel в конвейере рекомендуется привести возвращаемое значение вызова Fit() к IDisposable и вызвать Dispose(), чтобы убедиться, что утечки памяти отсутствуют.

OnnxRuntime работает на 64-разрядных платформах Windows, MacOS и Ubuntu 16.04 Linux. Посетите страницу ONNX Models , чтобы просмотреть список доступных моделей, с которыми можно приступить к работе. Дополнительные сведения см. в onNX .

Методы

Fit(IDataView)

IEstimator<TTransformer> для оценки моделей ONNX на платформе ML.NET.

(Унаследовано от TrivialEstimator<TTransformer>)
GetOutputSchema(SchemaShape)

Возвращает схему SchemaShape , которая будет производиться преобразователем. Используется для распространения и проверки схемы в конвейере.

Методы расширения

AppendCacheCheckpoint<TTrans>(IEstimator<TTrans>, IHostEnvironment)

Добавьте "контрольную точку кэширования" в цепочку оценщика. Это гарантирует, что подчиненные оценщики будут обучены на основе кэшированных данных. Рекомендуется использовать контрольную точку кэширования перед обучением, которые принимают несколько данных.

WithOnFitDelegate<TTransformer>(IEstimator<TTransformer>, Action<TTransformer>)

Учитывая оценщик, верните объект-оболочку, который будет вызывать делегат один раз Fit(IDataView) . Часто важно, чтобы оценщик возвращал сведения о том, что было положено, поэтому Fit(IDataView) метод возвращает специально типизированный объект, а не просто общий ITransformer. Однако в то же время часто IEstimator<TTransformer> формируются в конвейеры со многими объектами, поэтому нам может потребоваться создать цепочку оценщиков, где EstimatorChain<TLastTransformer> оценщик, для которого мы хотим получить преобразователь, похоронен где-то в этой цепочке. В этом сценарии мы можем подключить делегат, который будет вызываться после вызова соответствия.

Применяется к