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

Schätzeigenschaften

Muss dieser Schätzer die Daten untersuchen, um seine Parameter zu trainieren? No
Eingabespaltendatentyp Vektor oder Typen bekannter SingleDouble Größe
Ausgabespaltendatentyp Wie vom ONNX-Modell angegeben
Erforderliches NuGet zusätzlich zu Microsoft.ML Microsoft.ML.OnnxTransformer (immer), entweder Microsoft.ML.OnnxRuntime 1.6.0 (für DIE CPU-Verarbeitung) oder Microsoft.ML.OnnxRuntime.Gpu 1.6.0 (für GPU-Verarbeitung, wenn 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) mithilfe der Microsoft.ML.OnnxRuntime-Bibliothek. Modelle werden für die 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, das die OnnxScoringEstimator verwendet, muss auf eines der obigen beiden Pakete verweisen.

Verwenden Sie zum Ausführen auf einer GPU das NuGet-Paket Microsoft.ML.OnnxRuntime.Gpu anstelle des Microsoft.ML.OnnxRuntime nuget (das für die CPU-Verarbeitung vorgesehen ist). Microsoft.ML.OnnxRuntime.Gpu erfordert eine CUDA-unterstützte GPU, das CUDA 10.2 Toolkit und cuDNN 8.0.3 (wie in der Dokumentation zu Onnxruntime angegeben). Wenn Sie den Schätzwert über ApplyOnnxModel erstellen, legen Sie 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, aber "fallbackToCpu = true", wird der Schätzwert 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 Rückschlusssitzung, die auf nicht verwalteten Speicher verweist, der im Besitz von OnnxRuntime.dllist. Wenn es einen Aufruf von ApplyOnnxModel in einer Pipeline gibt, wird empfohlen, den Rückgabewert des Fit()-Aufrufs an IDisposable zu umwandeln und Dispose() aufzurufen, um sicherzustellen, dass keine Speicherverluste vorhanden sind.

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

Methoden

Name Beschreibung
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

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

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

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

Geben Sie bei einer Schätzung ein Wrapping-Objekt zurück, das eine Stellvertretung aufruft, sobald Fit(IDataView) sie aufgerufen wird. Es ist häufig wichtig, dass ein Schätzer Informationen zu dem, was passt, zurückgeben, weshalb die Fit(IDataView) Methode ein speziell typiertes Objekt und nicht nur ein allgemeines ITransformerObjekt zurückgibt. IEstimator<TTransformer> Gleichzeitig werden jedoch oft in Pipelines mit vielen Objekten gebildet, daher müssen wir möglicherweise eine Kette von Schätzern bauen, über EstimatorChain<TLastTransformer> die der Schätzer, für den wir den Transformator erhalten wollen, irgendwo in dieser Kette begraben wird. Für dieses Szenario können wir über diese Methode einen Delegat anfügen, der aufgerufen wird, sobald "Fit" aufgerufen wird.

Gilt für: