TensorFlowEstimator 類別

定義

會在 TensorFlowTransformer 下列兩個案例中使用 。

  1. 使用預先定型 的 TensorFlow 模型評分:在此模式中,轉換會從預先定型的 Tensorflow 模型中擷取隱藏層的值,並使用輸出作為 ML.Net 管線中的功能。
  2. 重新定型 TensorFlow 模型:在此模式中,轉換會使用透過 ML.Net 管線傳遞的使用者資料重新定型 TensorFlow 模型。 模型定型之後,就可以將輸出當做評分的功能使用。
public sealed class TensorFlowEstimator : Microsoft.ML.IEstimator<Microsoft.ML.Transforms.TensorFlowTransformer>
type TensorFlowEstimator = class
    interface IEstimator<TensorFlowTransformer>
Public NotInheritable Class TensorFlowEstimator
Implements IEstimator(Of TensorFlowTransformer)
繼承
TensorFlowEstimator
實作

備註

TensorFlowTransform 會使用預先定型的 Tensorflow 模型擷取指定的輸出。 或者,它可以進一步重新定型使用者資料的 TensorFlow 模型,以調整使用者資料上的模型參數, (也稱為「傳輸學習」) 。

針對評分,轉換會採用預先定型的 Tensorflow 模型輸入、輸入節點的名稱,以及我們想要擷取其值之輸出節點的名稱。 若要重新定型,轉換也需要定型相關參數,例如 TensorFlow 圖形中的優化作業名稱、圖形中的學習速率作業名稱及其值、圖形中運算的名稱,以計算遺失和效能計量等。

此轉換需要安裝 Microsoft.ML.TensorFlow nuget。 TensorFlowTransform 具有下列關於輸入、輸出、資料處理和重新定型的假設。

  1. 針對輸入模型,TensorFlowTransform 目前同時支援 凍結模型 格式和 SavedModel 格式。 不過,只有 SavedModel 格式才能重新定型模型。 目前不支援評分或重新定型檢查點格式,因為沒有 TensorFlow C-API 支援載入它。
  2. 轉換一次僅支援評分一個範例。 不過,可以批次執行重新定型。
  3. 進階傳輸學習/微調案例 (例如將更多層新增至網路、變更輸入的形狀、凍結在重新定型程式期間不需要更新的圖層等等。) 目前無法使用,因為不支援使用 TensorFlow C-API 在模型中進行網路/圖形操作。
  4. 輸入資料行的名稱 (s) 應該符合 TensorFlow 模型中輸入 (s) 的名稱。
  5. 每個輸出資料行的名稱都應該符合 TensorFlow 圖形中的其中一個作業。
  6. 目前,double、float、long、int、short、sbyte、ulong、uint、ushort、byte 和 bool 是輸入/輸出可接受的資料類型。
  7. 成功時,轉換會在 中 IDataView 導入新的資料行,對應至指定的每個輸出資料行。

您可以使用 或summarize_graph工具來取得 GetModelSchema() TensorFlow 模型的輸入和輸出。

方法

Fit(IDataView)

定型並傳 TensorFlowTransformer 回 。

GetOutputSchema(SchemaShape)

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

擴充方法

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

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

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

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

適用於