手動將資料記錄到實驗執行記錄

如要記錄,請使用 Python 適用的 Vertex AI SDK。

支援的指標和參數:

  • 摘要指標
  • 時間序列指標
  • parameters
  • 分類指標

Python 適用的 Vertex AI SDK

注意:如果選用 resume 參數指定為 TRUE,系統會繼續執行先前啟動的作業。如未指定,resume 會預設為 FALSE,並建立新的執行作業。

下列範例使用 aiplatform 函式中的 init 方法。

摘要指標

摘要指標是儲存在時間序列指標旁的單一值純量指標,代表實驗執行的最終摘要。

舉例來說,在提早停止訓練的應用情境中,耐心設定可讓訓練持續進行,但候選模型會從先前的步驟還原,且該步驟中計算的模型指標會以摘要指標表示,因為最新的時間序列指標無法代表還原的模型。這項作業會使用摘要指標的 log_metrics API。

Python

from typing import Dict

from google.cloud import aiplatform


def log_metrics_sample(
    experiment_name: str,
    run_name: str,
    metrics: Dict[str, float],
    project: str,
    location: str,
):
    aiplatform.init(experiment=experiment_name, project=project, location=location)

    aiplatform.start_run(run=run_name)

    aiplatform.log_metrics(metrics)

  • experiment_name:為實驗命名。如要查看實驗清單,請在 Google Cloud 控制台選取區段導覽中的「實驗」
  • run_name:指定執行名稱 (請參閱 start_run)。
  • metric:指標鍵/值組合。例如: {'learning_rate': 0.1}
  • project:。您可以在 Google Cloud 控制台 歡迎頁面中找到這些資訊。
  • location:請參閱「支援的地區清單

時間序列指標

如要記錄時間序列指標,Vertex AI Experiments 需要支援的 Vertex AI TensorBoard 執行個體。

為時間序列指標記錄指派支援的 Vertex AI TensorBoard 資源。

透過 log_time_series_metrics 記錄的所有指標都會儲存為時間序列指標。 Vertex AI TensorBoard 是支援的時間序列指標儲存庫。

experiment_tensorboard 可在實驗實驗執行層級設定。在執行層級設定 experiment_tensorboard 會覆寫實驗層級的設定。一旦在執行中設定 experiment_tensorboard,就無法變更該執行的 experiment_tensorboard

  • 在實驗層級設定 experiment_tensorboard
      aiplatform.init(experiment='my-experiment',
                   experiment_tensorboard='projects/.../tensorboard/my-tb-resource')
  • 在執行層級設定 experiment_tensorboard: 注意:會覆寫實驗層級的設定。
      aiplatform.start_run(run_name='my-other-run',
                        tensorboard='projects/.../.../other-resource')
    aiplatform.log_time_series_metrics(...)

Python

from typing import Dict, Optional

from google.cloud import aiplatform
from google.protobuf import timestamp_pb2


def log_time_series_metrics_sample(
    experiment_name: str,
    run_name: str,
    metrics: Dict[str, float],
    step: Optional[int],
    wall_time: Optional[timestamp_pb2.Timestamp],
    project: str,
    location: str,
):
    aiplatform.init(experiment=experiment_name, project=project, location=location)

    aiplatform.start_run(run=run_name, resume=True)

    aiplatform.log_time_series_metrics(metrics=metrics, step=step, wall_time=wall_time)

  • experiment_name:提供實驗名稱。 如要查看實驗清單,請在控制台中選取區段導覽中的「實驗」 Google Cloud
  • run_name:指定執行名稱 (請參閱 start_run)。
  • metrics:字典,其中鍵為指標名稱,值為指標值。
  • step:選用。這個資料點在執行中的步驟索引。
  • wall_time:選用。這個資料點由使用者產生時的實際時間戳記。如未提供,系統會根據 time.time() 的值產生 wall_time
  • project:。您可以在 Google Cloud 控制台 歡迎頁面中找到這些資訊。
  • location:請參閱「支援的地區清單

步驟和實際時間

log_time_series_metrics API 會視需要接受 stepwalltime

  • step:選用。這個資料點在執行中的步驟索引。如未提供,系統會使用所有已記錄時間序列指標中,最新步驟的增量。如果提供的任何指標鍵已存在步驟,系統會覆寫該步驟。
  • wall_time:選用。記錄指標的 Epoch 後秒數。如未提供,預設值為 Python 的 time.time

例如:

aiplatform.log_time_series_metrics({"mse": 2500.00, "rmse": 50.00})
記錄特定步驟
aiplatform.log_time_series_metrics({"mse": 2500.00, "rmse": 50.00}, step=8)
納入 wall_time
aiplatform.log_time_series_metrics({"mse": 2500.00, "rmse": 50.00}, step=10)

參數

參數是鍵入的輸入值,可設定執行作業、控管執行作業的行為,以及影響執行作業的結果。例如學習率、捨棄率和訓練步驟數。使用 log_params 方法記錄參數。

Python

from typing import Dict, Union

from google.cloud import aiplatform


def log_params_sample(
    experiment_name: str,
    run_name: str,
    params: Dict[str, Union[float, int, str]],
    project: str,
    location: str,
):
    aiplatform.init(experiment=experiment_name, project=project, location=location)

    aiplatform.start_run(run=run_name, resume=True)

    aiplatform.log_params(params)

aiplatform.log_params({"learning_rate": 0.01, "n_estimators": 10})
  • experiment_name:為實驗命名。 如要查看實驗清單,請在控制台中選取區段導覽中的「實驗」 Google Cloud
  • run_name:指定執行名稱 (請參閱 start_run)。
  • params:參數鍵/值組合 例如:{'accuracy': 0.9} (請參閱 log_params)。 welcome 頁面。
  • location:請參閱「支援的地區清單

分類指標

除了摘要指標和時間序列指標,混淆矩陣和 ROC 曲線也是常用的指標。您可以使用 log_classification_metrics API 將這些指標記錄到 Vertex AI Experiments。

Python

from typing import List, Optional

from google.cloud import aiplatform


def log_classification_metrics_sample(
    experiment_name: str,
    run_name: str,
    project: str,
    location: str,
    labels: Optional[List[str]] = None,
    matrix: Optional[List[List[int]]] = None,
    fpr: Optional[List[float]] = None,
    tpr: Optional[List[float]] = None,
    threshold: Optional[List[float]] = None,
    display_name: Optional[str] = None,
) -> None:
    aiplatform.init(experiment=experiment_name, project=project, location=location)

    aiplatform.start_run(run=run_name, resume=True)

    aiplatform.log_classification_metrics(
        labels=labels,
        matrix=matrix,
        fpr=fpr,
        tpr=tpr,
        threshold=threshold,
        display_name=display_name,
    )

  • experiment_name:為實驗命名。 如要查看實驗清單,請在 Google Cloud 控制台中選取區段導覽中的「實驗」
  • run_name:指定執行名稱 (請參閱 start_run)。
  • project:。您可以在 Google Cloud 控制台 歡迎頁面中找到這些資訊。
  • location:請參閱「可用位置清單」。
  • labels:混淆矩陣的標籤名稱清單。如果設定了「矩陣」,則必須設定這個值。
  • matrix:混淆矩陣的值。如果設定「labels」,則必須設定此屬性。
  • fpr:ROC 曲線的偽陽率清單。如果設定「tpr」或「thresholds」,則必須設定此值。
  • tpr:ROC 曲線的真陽率清單。如果設定「fpr」或「thresholds」,則必須設定此值。
  • threshold:ROC 曲線的閾值清單。如果設定「fpr」或「tpr」,則必須設定此欄位。
  • display_name:使用者定義的分類指標構件名稱。

在 Google Cloud 控制台中查看實驗執行清單

  1. 前往 Google Cloud 控制台的「Experiments」頁面。
    前往「實驗」
    系統會顯示實驗清單。
  2. 選取要查看的實驗。
    系統會顯示執行作業清單。

Vertex AI 實驗清單頁面
詳情請參閱「比較及分析執行作業」。

後續步驟

筆記本教學課程

網誌文章