Share via


OnnxScoringEstimator Classe

Definizione

IEstimator<TTransformer> per l'assegnazione del punteggio ai modelli ONNX nel framework 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)
Ereditarietà
OnnxScoringEstimator

Commenti

Caratteristiche dello strumento di stima

Questo strumento di stima deve esaminare i dati per eseguire il training dei relativi parametri? No
Tipo di dati della colonna di input Vettore di dimensioni note di Single o Double tipi
Tipo di dati della colonna di output Come specificato dal modello ONNX
NuGet richiesto oltre a Microsoft.ML Microsoft.ML.OnnxTransformer (sempre), Microsoft.ML.OnnxRuntime 1.6.0 (per l'elaborazione della CPU) o Microsoft.ML.OnnxRuntime.Gpu 1.6.0 (per l'elaborazione GPU se la GPU è disponibile)
Esportabile in ONNX No

Per creare questo strumento di stima, usare le API seguenti: ApplyOnnxModel

Supporta l'inferenza dei modelli in formato ONNX 1.6 (opset 11), usando la libreria Microsoft.ML.OnnxRuntime . I modelli vengono assegnati punteggi alla CPU se il progetto fa riferimento a Microsoft.ML.OnnxRuntime e alla GPU se il progetto fa riferimento a Microsoft.ML.OnnxRuntime.Gpu. Ogni progetto che usa OnnxScoringEstimator deve fare riferimento a uno dei due pacchetti precedenti.

Per l'esecuzione in una GPU, usare il pacchetto NuGet Microsoft.ML.OnnxRuntime.Gpu anziché il nuget Microsoft.ML.OnnxRuntime (che è per l'elaborazione della CPU). Microsoft.ML.OnnxRuntime.Gpu richiede una GPU supportata da CUDA, CUDA 10.2 Toolkit e cuDNN 8.0.3 (come indicato nella documentazione di Onnxruntime). Quando si crea lo strumento di stima tramite ApplyOnnxModel, impostare il parametro 'gpuDeviceId' su un numero intero non negativo valido. I valori di ID dispositivo tipici sono 0 o 1. Se il dispositivo GPU non viene trovato ma "fallbackToCpu = true", lo strumento di stima verrà eseguito nella CPU. Se il dispositivo GPU non viene trovato ma "fallbackToCpu = false", lo strumento di stima genererà un'eccezione

Gli input e gli output dei modelli ONNX devono essere di tipo Tensor. Sequenza e mappe non sono ancora supportate.

Internamente, OnnxTransformer (il valore restituito di OnnxScoringEstimator.Fit()) contiene un riferimento a una sessione di inferenza che punta alla memoria non gestita di proprietà di OnnxRuntime.dll. Ogni volta che viene eseguita una chiamata a ApplyOnnxModel in una pipeline, è consigliabile eseguire il cast del valore restituito della chiamata Fit() a IDisposable e chiamare Dispose() per assicurarsi che non siano presenti perdite di memoria.

OnnxRuntime funziona su piattaforme Windows, MacOS e Ubuntu 16.04 Linux a 64 bit. Visitare i modelli ONNX per visualizzare un elenco dei modelli facilmente disponibili per iniziare. Per altre informazioni, vedere ONNX .

Metodi

Fit(IDataView)

IEstimator<TTransformer> per l'assegnazione del punteggio ai modelli ONNX nel framework ML.NET.

(Ereditato da TrivialEstimator<TTransformer>)
GetOutputSchema(SchemaShape)

Restituisce l'oggetto SchemaShape dello schema che verrà prodotto dal trasformatore. Usato per la propagazione e la verifica dello schema in una pipeline.

Metodi di estensione

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

Aggiungere un "checkpoint di memorizzazione nella cache" alla catena di stima. Ciò garantisce che gli estimatori downstream vengano sottoposti a training in base ai dati memorizzati nella cache. È utile avere un checkpoint di memorizzazione nella cache prima che i formatori eseseguono più passaggi di dati.

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

Dato un estimator, restituire un oggetto wrapping che chiamerà un delegato una volta Fit(IDataView) chiamato. È spesso importante che uno strumento di stima restituisca informazioni sull'adattamento, motivo per cui il Fit(IDataView) metodo restituisce un oggetto tipizzato in modo specifico, anziché solo un oggetto generale ITransformer. Tuttavia, allo stesso tempo, IEstimator<TTransformer> vengono spesso formati in pipeline con molti oggetti, quindi potrebbe essere necessario creare una catena di estimatori tramite EstimatorChain<TLastTransformer> dove lo strumento di stima per il quale si vuole ottenere il trasformatore è sepolto in una posizione in questa catena. Per questo scenario, è possibile collegare un delegato che verrà chiamato una volta chiamato fit.

Si applica a