本頁說明如何使用 Google Cloud 控制台或 Vertex AI API,從影片資料集訓練 AutoML 物件追蹤模型。
訓練 AutoML 模型
Google Cloud 控制台
在 Google Cloud 控制台的 Vertex AI 專區,前往「Datasets」頁面。
按一下要用來訓練模型的資料集名稱,開啟詳細資料頁面。
按一下「訓練新模型」。
輸入新模型的顯示名稱。
如要手動設定訓練資料的分割方式,請展開「進階選項」,然後選取資料分割選項。瞭解詳情。
按一下「繼續」。
選取模型訓練方法。
AutoML
適用於多種用途。Seq2seq+
是進行實驗的好選擇。這個演算法的架構較簡單,使用的搜尋空間也較小,因此可能比AutoML
更快收斂。實驗結果顯示,Seq2Seq+ 在時間預算較少,以及資料集大小不到 1 GB 的情況下,都能有良好表現。
按一下「開始訓練」。
模型訓練可能需要數小時,視資料大小和複雜度而定,以及您是否指定訓練預算。您可以關閉這個分頁,稍後再返回查看。模型訓練完成後,您會收到電子郵件通知。
訓練開始幾分鐘後,您就可以從模型的屬性資訊中,查看訓練節點時數估算值。如果取消訓練,目前產品不會收費。
API
選取下方分頁,查看適用於您語言或環境的範例:
REST
使用任何要求資料之前,請先替換以下項目:
- LOCATION:資料集所在區域,也是模型儲存位置。例如:
us-central1
。 - PROJECT:您的專案 ID。
- MODEL_DISPLAY_NAME:新訓練模型的顯示名稱。
- DATASET_ID:訓練資料集的 ID。
-
filterSplit
物件為選用項目,可用於控制資料分割。如要進一步瞭解如何控制資料分割,請參閱「使用 REST 控制資料分割」。 - PROJECT_NUMBER:系統自動為專案產生的專案編號
HTTP 方法和網址:
POST https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT/locations/LOCATION/trainingPipelines
JSON 要求主體:
{ "displayName": "MODE_DISPLAY_NAME", "trainingTaskDefinition": "gs://google-cloud-aiplatform/schema/trainingjob/definition/automl_video_object_tracking_1.0.0.yaml", "trainingTaskInputs": {}, "modelToUpload": {"displayName": "MODE_DISPLAY_NAME"}, "inputDataConfig": { "datasetId": "DATASET_ID", "filterSplit": { "trainingFilter": "labels.ml_use = training", "validationFilter": "labels.ml_use = -", "testFilter": "labels.ml_use = test" } } }
如要傳送要求,請展開以下其中一個選項:
您應該會收到如下的 JSON 回應:
{ "name": "projects/PROJECT_NUMBER/locations/us-central1/trainingPipelines/2307109646608891904", "displayName": "myModelName", "trainingTaskDefinition": "gs://google-cloud-aiplatform/schema/trainingjob/definition/automl_video_object_tracking_1.0.0.yaml", "modelToUpload": { "displayName": "myModelName" }, "state": "PIPELINE_STATE_PENDING", "createTime": "2020-04-18T01:22:57.479336Z", "updateTime": "2020-04-18T01:22:57.479336Z" }
Java
在試用這個範例之前,請先按照Java使用用戶端程式庫的 Vertex AI 快速入門中的操作說明進行設定。 詳情請參閱 Vertex AI Java API 參考說明文件。
如要向 Vertex AI 進行驗證,請設定應用程式預設憑證。 詳情請參閱「為本機開發環境設定驗證」。
Node.js
在試用這個範例之前,請先按照Node.js使用用戶端程式庫的 Vertex AI 快速入門中的操作說明進行設定。 詳情請參閱 Vertex AI Node.js API 參考說明文件。
如要向 Vertex AI 進行驗證,請設定應用程式預設憑證。 詳情請參閱「為本機開發環境設定驗證」。
Python
如要瞭解如何安裝或更新 Python 適用的 Vertex AI SDK,請參閱「安裝 Python 適用的 Vertex AI SDK」。 詳情請參閱 Python API 參考說明文件。
使用 REST 控制資料分割
您可以控制訓練資料在訓練、驗證和測試集之間的分割方式。使用 Vertex AI API 時,請使用 Split
物件判斷資料分割。Split
物件可以做為其中一種物件類型,納入 InputConfig
物件中,每種物件類型都提供不同的訓練資料分割方式。你只能選取一種方法。
-
FractionSplit
:- TRAINING_FRACTION:用於訓練集的訓練資料比例。
- VALIDATION_FRACTION:用於驗證集的訓練資料比例。不適用於影片資料。
- TEST_FRACTION:用於測試集的訓練資料比例。
如果指定了任何分數,就必須指定所有分數。分數加總必須為 1.0。分數的預設值會因資料類型而異。瞭解詳情。
"fractionSplit": { "trainingFraction": TRAINING_FRACTION, "validationFraction": VALIDATION_FRACTION, "testFraction": TEST_FRACTION },
-
FilterSplit
: - TRAINING_FILTER:符合這項篩選條件的資料項目會用於訓練集。
- VALIDATION_FILTER:符合這項篩選條件的資料項目會用於驗證集。影片資料必須為「-」。
- TEST_FILTER:符合這項篩選條件的資料項目會用於測試集。
這些篩選器可與 ml_use
標籤搭配使用,也可以與您套用至資料的任何標籤搭配使用。進一步瞭解如何使用 ml-use 標籤和其他標籤篩選資料。
以下範例說明如何搭配 ml_use
標籤使用 filterSplit
物件,並納入驗證集:
"filterSplit": { "trainingFilter": "labels.aiplatform.googleapis.com/ml_use=training", "validationFilter": "labels.aiplatform.googleapis.com/ml_use=validation", "testFilter": "labels.aiplatform.googleapis.com/ml_use=test" }