Freigeben über


OnnxScoringEstimator Klasse

Definition

IEstimator<TTransformer> für die Bewertung von ONNX-Modellen im ML.NET-Framework.

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)
Vererbung
OnnxScoringEstimator

Hinweise

Stimatoreigenschaften

Muss dieser Schätzer die Daten untersuchen, um seine Parameter zu trainieren? No
Eingabespaltendatentyp Vektor oder Typen bekannter SingleDouble Größe
Ausgabespaltendatentyp Wie durch das ONNX-Modell angegeben
Erforderliches NuGet zusätzlich zu Microsoft.ML Microsoft.ML.OnnxTransformer (immer), entweder Microsoft.ML.OnnxRuntime 1.6.0 (für CPU-Verarbeitung) oder Microsoft.ML.OnnxRuntime.Gpu 1.6.0 (für GPU-Verarbeitung, falls GPU verfügbar ist)
Exportierbar in ONNX No

Verwenden Sie zum Erstellen dieser Schätzung die folgenden APIs: ApplyOnnxModel

Unterstützt das Ableiten von Modellen im ONNX 1.6-Format (opset 11), indem die Microsoft.ML.OnnxRuntime-Bibliothek verwendet wird. Modelle werden auf CPU bewertet, wenn das Projekt auf Microsoft.ML.OnnxRuntime und auf die GPU verweist, wenn das Projekt auf Microsoft.ML.OnnxRuntime.Gpu verweist. Jedes Projekt mit dem OnnxScoringEstimator muss auf einen der obigen beiden Pakete verweisen.

Verwenden Sie zum Ausführen auf einer GPU das NuGet-Paket "Microsoft.ML.OnnxRuntime.Gpu " anstelle des Nugets "Microsoft.ML.OnnxRuntime" (das für die CPU-Verarbeitung gilt). Microsoft.ML.OnnxRuntime.Gpu erfordert eine CUDA unterstützte GPU, das CUDA 10.2 Toolkit und cuDN 8.0.3 (wie in der Dokumentation zu Onnxruntime angegeben). Legen Sie beim Erstellen des Schätzers über ApplyOnnxModel den Parameter "gpuDeviceId" auf eine gültige nicht negative ganze Zahl fest. Typische Geräte-ID-Werte sind 0 oder 1. Wenn das GPU-Gerät nicht gefunden wird, sondern "fallbackToCpu = true", wird die Schätzung auf der CPU ausgeführt. Wenn das GPU-Gerät nicht gefunden wird, sondern "fallbackToCpu = false", löst der Schätzer eine Ausnahme aus.

Die Eingaben und Ausgaben der ONNX-Modelle müssen Tensor-Typ sein. Sequenz und Karten werden noch nicht unterstützt.

Intern enthält OnnxTransformer (der Rückgabewert von OnnxScoringEstimator.Fit()) einen Verweis auf eine Schlussfolgerungssitzung, die auf nicht verwalteten Arbeitsspeicher verweist, der auf OnnxRuntime.dll gehört. Wenn es einen Aufruf von ApplyOnnxModel in einer Pipeline gibt, wird empfohlen, den Rückgabewert des Fit()-Aufrufs an IDisposable und call Dispose() zu umwandeln, um sicherzustellen, dass keine Speicherlecks vorhanden sind.

OnnxRuntime funktioniert auf Windows-, MacOS- und Ubuntu 16.04 Linux 64-Bit-Plattformen. Besuchen Sie ONNX-Modelle , um eine Liste der leicht verfügbaren Modelle anzuzeigen, mit der Sie beginnen können. Weitere Informationen finden Sie unter ONNX .

Methoden

Fit(IDataView)

IEstimator<TTransformer> für die Bewertung von ONNX-Modellen im ML.NET-Framework.

(Geerbt von TrivialEstimator<TTransformer>)
GetOutputSchema(SchemaShape)

Gibt das SchemaShape Schema zurück, das vom Transformator erzeugt wird. Wird für die Schemaverteilung und Überprüfung in einer Pipeline verwendet.

Erweiterungsmethoden

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

Fügen Sie einen "Zwischenspeicherungsprüfpunkt" an die Schätzkette an. Dadurch wird sichergestellt, dass die nachgelagerten Schätzer anhand zwischengespeicherter Daten trainiert werden. Es ist hilfreich, einen Cache-Prüfpunkt vor Trainern zu haben, die mehrere Datendurchläufe übernehmen.

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

Wenn sie eine Schätzung erhalten, geben Sie ein Umbruchobjekt zurück, das einen Delegaten aufruft, sobald Fit(IDataView) er aufgerufen wird. Es ist häufig wichtig, dass ein Schätzer Informationen darüber zurückgibt, was passt, weshalb die Fit(IDataView) Methode ein speziell typiertes Objekt zurückgibt, anstatt nur ein allgemeines ITransformerObjekt zurückzugeben. IEstimator<TTransformer> Gleichzeitig werden jedoch häufig Pipelines mit vielen Objekten gebildet, daher müssen wir möglicherweise eine Kette von Schätzern erstellen, über EstimatorChain<TLastTransformer> die der Schätzer, für den wir den Transformator erhalten möchten, irgendwo in dieser Kette begraben wird. Für dieses Szenario können wir über diese Methode eine Stellvertretung anfügen, die aufgerufen wird, sobald sie aufgerufen wird.

Gilt für: