Udostępnij za pośrednictwem


OnnxScoringEstimator Klasa

Definicja

IEstimator<TTransformer> w celu oceniania modeli ONNX w strukturze 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)
Dziedziczenie
OnnxScoringEstimator

Uwagi

Charakterystyka narzędzia do szacowania

Czy ten narzędzie do szacowania musi przyjrzeć się danym, aby wytrenować jego parametry? Nie
Typ danych kolumny wejściowej Znany wektor Single lub Double typy
Typ danych kolumny wyjściowej Zgodnie z modelem ONNX
Wymagane narzędzie NuGet oprócz Microsoft.ML Microsoft.ML.OnnxTransformer (zawsze), Microsoft.ML.OnnxRuntime 1.6.0 (na potrzeby przetwarzania procesora CPU) lub Microsoft.ML.OnnxRuntime.Gpu 1.6.0 (w przypadku przetwarzania procesora GPU, jeśli procesor GPU jest dostępny)
Eksportowanie do pliku ONNX Nie

Aby utworzyć ten narzędzie do szacowania, użyj następujących interfejsów API: ApplyOnnxModel

Obsługuje wnioskowanie modeli w formacie ONNX 1.6 (opset 11) przy użyciu biblioteki Microsoft.ML.OnnxRuntime . Modele są oceniane na procesorze CPU, jeśli projekt odwołuje się do microsoft.ML.OnnxRuntime i na procesorze GPU, jeśli projekt odwołuje się do microsoft.ML.OnnxRuntime.Gpu. Każdy projekt korzystający z narzędzia OnnxScoringEstimator musi odwoływać się do jednego z powyższych dwóch pakietów.

Aby uruchomić na procesorze GPU, użyj pakietu NuGet Microsoft.ML.OnnxRuntime.Gpu zamiast nuget Microsoft.ML.OnnxRuntime (który jest przeznaczony do przetwarzania procesora CPU). Microsoft.ML.OnnxRuntime.Gpu wymaga obsługiwanego procesora GPU CUDA, zestawu narzędzi CUDA 10.2 icuDNN 8.0.3 (zgodnie z dokumentacją Onnxruntime). Podczas tworzenia narzędzia do szacowania za pomocą elementu ApplyOnnxModel ustaw parametr "gpuDeviceId" na prawidłową nie ujemną liczbę całkowitą. Typowe wartości identyfikatora urządzenia to 0 lub 1. Jeśli urządzenie GPU nie zostanie znalezione, ale "fallbackToCpu = true", narzędzie do szacowania zostanie uruchomione na procesorze CPU. Jeśli urządzenie GPU nie zostanie znalezione, ale "fallbackToCpu = false", narzędzie do szacowania zgłosi wyjątek

Dane wejściowe i wyjściowe modeli ONNX muszą być typu Tensor. Sekwencja i mapy nie są jeszcze obsługiwane.

Wewnętrznie element OnnxTransformer (wartość zwracana w elemencie OnnxScoringEstimator.Fit()) zawiera odwołanie do sesji wnioskowania, która wskazuje na niezarządzaną pamięć należącą do OnnxRuntime.dll. Za każdym razem, gdy w potoku występuje wywołanie elementu ApplyOnnxModel , zaleca się rzutowanie wartości zwracanej wywołania Fit() do wywołania IDisposable i wywołania Dispose(), aby upewnić się, że nie ma przecieków pamięci.

OnnxRuntime działa na platformach Windows, MacOS i Ubuntu 16.04 Linux 64-bitowych. Odwiedź stronę ONNX Models (Modele ONNX ), aby wyświetlić listę łatwo dostępnych modeli, z których można rozpocząć pracę. Aby uzyskać więcej informacji, zobacz ONNX .

Metody

Fit(IDataView)

IEstimator<TTransformer> w celu oceniania modeli ONNX w strukturze ML.NET.

(Odziedziczone po TrivialEstimator<TTransformer>)
GetOutputSchema(SchemaShape)

SchemaShape Zwraca schemat, który zostanie wygenerowany przez transformator. Służy do propagacji schematu i weryfikacji w potoku.

Metody rozszerzania

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

Dołącz punkt kontrolny buforowania do łańcucha narzędzia do szacowania. Zapewni to, że narzędzia do szacowania podrzędnego zostaną wytrenowane względem buforowanych danych. Warto mieć punkt kontrolny buforowania, zanim trenerzy przejmą wiele danych.

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

Biorąc pod uwagę narzędzie do szacowania, zwróć obiekt opakowujący, który wywoła delegata po Fit(IDataView) wywołaniu. Często ważne jest, aby narzędzie do szacowania zwracało informacje o tym, co było odpowiednie, dlatego Fit(IDataView) metoda zwraca specjalnie wpisany obiekt, a nie tylko ogólną ITransformerwartość . Jednak w tym samym czasie IEstimator<TTransformer> często są tworzone w potoki z wieloma obiektami, więc może być konieczne utworzenie łańcucha narzędzi do szacowania za pośrednictwem EstimatorChain<TLastTransformer> miejsca, w którym narzędzie do szacowania, dla którego chcemy uzyskać transformator jest pochowany gdzieś w tym łańcuchu. W tym scenariuszu możemy za pomocą tej metody dołączyć delegata, który zostanie wywołany po wywołaniu dopasowania.

Dotyczy