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)
- Наследование
Комментарии
Характеристики оценщика
Должен ли этот оценщик просмотреть данные для обучения его параметров? | нет |
Тип данных входного столбца | Вектор известных размеров 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> оценщик, для которого мы хотим получить преобразователь, похоронен где-то в этой цепочке. В этом сценарии мы можем подключить делегат, который будет вызываться после вызова соответствия. |