OnnxScoringEstimator Clase

Definición

IEstimator<TTransformer> para puntuar modelos de ONNX en el marco de 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)
Herencia
OnnxScoringEstimator

Comentarios

Características del estimador

¿Este estimador necesita examinar los datos para entrenar sus parámetros? No
Tipo de datos de columna de entrada Vector de tamaño conocido de Single tipos o Double
Tipo de datos de columna de salida Según lo especificado por el modelo DE ONNX
NuGet necesario además de Microsoft.ML Microsoft.ML.OnnxTransformer (siempre), Microsoft.ML.OnnxRuntime 1.6.0 (para el procesamiento de CPU) o Microsoft.ML.OnnxRuntime.Gpu 1.6.0 (para el procesamiento de GPU si la GPU está disponible)
Exportable a ONNX No

Para crear este estimador, use las SIGUIENTES API: ApplyOnnxModel

Admite la inferencia de modelos en formato ONNX 1.6 (opset 11), mediante la biblioteca Microsoft.ML.OnnxRuntime . Los modelos se puntúan en la CPU si el proyecto hace referencia a Microsoft.ML.OnnxRuntime y en la GPU si el proyecto hace referencia a Microsoft.ML.OnnxRuntime.Gpu. Cada proyecto que use OnnxScoringEstimator debe hacer referencia a uno de los dos paquetes anteriores.

Para ejecutarse en una GPU, use el paquete NuGet Microsoft.ML.OnnxRuntime.Gpu en lugar del nuget Microsoft.ML.OnnxRuntime (que es para el procesamiento de CPU). Microsoft.ML.OnnxRuntime.Gpu requiere una GPU compatible con CUDA, el kit de herramientas de CUDA 10.2 y cuDNN 8.0.3 (como se indica en la documentación de Onnxruntime). Al crear el estimador mediante ApplyOnnxModel, establezca el parámetro "gpuDeviceId" en un entero no negativo válido. Los valores típicos de identificador de dispositivo son 0 o 1. Si no se encuentra el dispositivo gpu, pero "fallbackToCpu = true", el estimador se ejecutará en la CPU. Si no se encuentra el dispositivo gpu, pero "fallbackToCpu = false", el estimador producirá una excepción.

Las entradas y salidas de los modelos ONNX deben ser de tipo Tensor. La secuencia y las asignaciones aún no se admiten.

Internamente, OnnxTransformer (el valor devuelto de OnnxScoringEstimator.Fit()) contiene una referencia a una sesión de inferencia que apunta a la memoria no administrada propiedad de OnnxRuntime.dll. Siempre que haya una llamada a ApplyOnnxModel en una canalización, se recomienda convertir el valor devuelto de la llamada Fit() a IDisposable y llamar a Dispose() para asegurarse de que no haya pérdidas de memoria.

OnnxRuntime funciona en plataformas windows, MacOS y Ubuntu 16.04 Linux de 64 bits. Visite Modelos de ONNX para ver una lista de modelos fácilmente disponibles para empezar a trabajar. Consulte ONNX para obtener más información.

Métodos

Fit(IDataView)

IEstimator<TTransformer> para puntuar modelos de ONNX en el marco de ML.NET.

(Heredado de TrivialEstimator<TTransformer>)
GetOutputSchema(SchemaShape)

Devuelve el SchemaShape valor del esquema que generará el transformador. Se usa para la propagación y comprobación de esquemas en una canalización.

Métodos de extensión

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

Anexe un "punto de control de almacenamiento en caché" a la cadena del estimador. Esto garantizará que los estimadores de nivel inferior se entrenarán con los datos almacenados en caché. Resulta útil tener un punto de control de almacenamiento en caché antes de que los instructores tomen varios pases de datos.

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

Dado un estimador, devuelva un objeto de ajuste que llamará a un delegado una vez Fit(IDataView) que se llame. A menudo, es importante que un estimador devuelva información sobre lo que cabe, por lo que el Fit(IDataView) método devuelve un objeto con tipo específico, en lugar de simplemente un general ITransformer. Sin embargo, al mismo tiempo, IEstimator<TTransformer> a menudo se forman en canalizaciones con muchos objetos, por lo que es posible que tengamos que crear una cadena de estimadores a través EstimatorChain<TLastTransformer> de donde el estimador para el que queremos obtener el transformador está enterrado en algún lugar de esta cadena. En ese escenario, podemos a través de este método adjuntar un delegado al que se llamará una vez que se llame a fit.

Se aplica a