Tensorflow 模型分析設定

Configuration

TFMA 將其設定儲存在 proto 中,這個 proto 會序列化為 JSON。這個 proto 整合了輸入資料、輸出資料、模型規格、指標規格和切片規格所需的設定。

所有 TFMA 管線都與基準 (主要) 模型以及零或多個候選 (次要) 模型相關聯。基準模型和候選模型由使用者在管線開始時定義,且每個模型都需要一個獨特的名稱。以下是使用者可能會使用的典型設定範例:

  • 單一模型評估
    • 不適用 (亦即沒有名稱)
  • 以驗證為基礎的評估
    • 基準
    • 候選
  • 模型比較評估
    • my_model_a
    • my_model_b

模型規格

模型規格的類型為 tfma.ModelSpec,用於定義模型的位置以及其他模型專屬的參數。例如,以下是在執行評估之前需要設定的典型設定:

  • name - 模型名稱 (如果使用多個模型)
  • signature_name - 用於預測的簽名名稱 (預設為 serving_default)。如果使用 EvalSavedModel,請使用 eval
  • label_key - 與標籤相關聯的功能名稱。
  • example_weight_key - 與範例權重相關聯的功能名稱。

指標規格

指標規格的類型為 tfma.MetricsSpec,用於設定將在評估中計算的指標。不同的機器學習問題使用不同類型的指標,而 TFMA 提供了許多選項來設定和自訂計算的指標。由於指標是 TFMA 非常重要的一部分,因此會在指標中另行詳細討論。

切片規格

切片規格的類型為 tfma.SlicingSpec,用於設定評估期間將使用的切片準則。切片可以透過 feature_keysfeature_values 或兩者來完成。以下是一些切片規格範例:

  • {}
    • 由整體資料組成的切片。
  • { feature_keys: ["country"] }
    • 功能「country」中所有值的切片。例如,我們可能會取得「country:us」、「country:jp」等切片。
  • { feature_values: [{key: "country", value: "us"}] }
    • 由「country:us」組成的切片。
  • { feature_keys: ["country", "city"] }
    • 功能「country」中所有值與功能「city」中所有值交叉的切片 (請注意,這可能會很耗費資源)。
  • { feature_keys: ["country"] feature_values: [{key: "age", value: "20"}] }
    • 功能「country」中所有值與值「age:20」交叉的切片

請注意,功能鍵可以是轉換後的功能或原始輸入功能。如需詳細資訊,請參閱 tfma.SlicingSpec

EvalSharedModel

除了設定之外,TFMA 也要求建立 tfma.EvalSharedModel 的執行個體,以便在同一程序中的多個執行緒之間共用模型。共用模型執行個體包含模型類型 (keras 等) 以及如何從模型在磁碟上的儲存位置 (例如標記等) 載入和設定模型的相關資訊。tfma.default_eval_shared_model API 可用於在指定路徑和標記集的情況下建立預設執行個體。