OnnxScoringEstimator 類別

定義

IEstimator<TTransformer> 用於在 ML.NET 架構中評分 ONNX 模型。

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)
繼承
OnnxScoringEstimator

備註

估算器特性

此估算器是否需要查看資料來定型其參數?
輸入資料行資料類型 Double 類型的已知大小向量 Single
輸出資料行資料類型 由 ONNX 模型指定
除了 Microsoft.ML 之外,還需要 NuGet Microsoft.ML.OnnxTransformer (一律) Microsoft.ML.OnnxRuntime 1.6.0 (,以用於 CPU 處理) 或 Microsoft.ML.OnnxRuntime.Gpu 1.6.0 (,如果 GPU)
可匯出至 ONNX

若要建立此估算器,請使用下列 API: ApplyOnnxModel

支援使用 Microsoft.ML.OnnxRuntime 程式庫,以 ONNX 1.6 格式推斷 (opset 11) 。 如果專案參考 Microsoft.ML.OnnxRuntime,且專案參考 Microsoft.ML.OnnxRuntime.Gpu,則模型會以 CPU 計分。 使用 OnnxScoringEstimator 的每個專案都必須參考上述兩個套件的其中一個。

若要在 GPU 上執行,請使用 NuGet 套件 Microsoft.ML.OnnxRuntime.Gpu ,而不是 Microsoft.ML.OnnxRuntime nuget (,這是用於 CPU 處理) 。 Microsoft.ML.OnnxRuntime.Gpu 需要 CUDA 支援的 GPUCUDA 10.2 ToolkitcuDNN 8.0.3 (,如 Onnxruntime 的檔) 所述。 透過 ApplyOnnxModel建立估算器時,請將參數 'gpuDeviceId' 設定為有效的非負整數。 一般裝置識別碼值為 0 或 1。 如果找不到 GPU 裝置,但 'fallbackToCpu = true',則估算器會在 CPU 上執行。 如果找不到 GPU 裝置,但 'fallbackToCpu = false',估算器將會擲回例外狀況

ONNX 模型的輸入和輸出必須是 Tensor 類型。 尚不支援序列和地圖。

在內部,OnnxTransformer (OnnxScoringEstimator.Fit () ) 的傳回值會保留推斷會話的參考,指向OnnxRuntime.dll所擁有的 Unmanaged 記憶體。 每當管線中呼叫 ApplyOnnxModel 時,建議將 Fit () 呼叫的傳回值轉換成 IDisposable,並呼叫 Dispose () 以確保沒有記憶體流失。

OnnxRuntime 適用于 Windows、MacOS 和 Ubuntu 16.04 Linux 64 位平臺。 請流覽 ONNX 模型 ,以查看可開始使用的立即可用模型清單。 如需詳細資訊,請參閱 ONNX

方法

Fit(IDataView)

IEstimator<TTransformer> 用於在 ML.NET 架構中評分 ONNX 模型。

(繼承來源 TrivialEstimator<TTransformer>)
GetOutputSchema(SchemaShape)

SchemaShape 回架構的 ,該架構將由轉換器產生。 用於管線中的架構傳播和驗證。

擴充方法

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

將「快取檢查點」附加至估算器鏈結。 這可確保下游估算器會針對快取的資料定型。 在接受多個資料通過的定型器之前,先有快取檢查點會很有説明。

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

指定估算器時,傳回包裝物件,一旦 Fit(IDataView) 呼叫委派即可。 估算器通常務必傳回符合專案的相關資訊,這就是 Fit(IDataView) 方法傳回特定型別物件的原因,而不是只傳回一般 ITransformer 。 不過,同時, IEstimator<TTransformer> 通常會形成具有許多物件的管線,因此我們可能需要透過建置估算器的鏈結,而我們想要取得轉換器的估算器 EstimatorChain<TLastTransformer> 會在此鏈結的某處放置。 在該案例中,我們可以透過這個方法附加呼叫一次會呼叫的委派。

適用於