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

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

支援的指標和參數:

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

Python 適用的 Vertex AI SDK

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

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

摘要指標

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

一個應用實例是提早停止,在這種情況下,耐心設定可讓您繼續訓練,但候選模型會從較早的步驟還原,且在該步驟為模型計算的指標會以摘要指標表示,因為最新的時間序列指標並不能代表已還原的模型。這時可使用用於摘要指標的 log_metrics API。

Python 適用的 Vertex AI SDK

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:您的專案 ID。您可以在 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 適用的 Vertex AI SDK

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:您的專案 ID。您可以在 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 適用的 Vertex AI SDK

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)。歡迎頁面。
  • location:請參閱「可用位置清單

分類指標

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

Python 適用的 Vertex AI SDK

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:您的專案 ID。您可以在 Google Cloud 控制台的「歡迎」頁面中找到這些資訊。
  • location:請參閱「可用位置清單」。
  • labels:混淆矩陣的標籤名稱清單。如果已設定「matrix」,則必須設定此屬性。
  • 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 實驗清單頁面
詳情請參閱「比較及分析執行作業」。

後續步驟

筆記本教學課程

網誌文章