準備したデータセットを使用してモデルをトレーニングし、カスタムモデルを作成します。AutoML API では、データセットの項目を使用してモデルをトレーニングしてテストし、パフォーマンスを評価します。その結果を確認し、必要に応じてトレーニング データセットを調整して、改善されたデータセットで新しいモデルをトレーニングします。
モデルのトレーニングが完了するまで数時間かかることがあります。AutoML API を使用すると、トレーニングのステータスを確認できます。
AutoML Vision ではトレーニングを開始するたびに新しいモデルが作成されるため、プロジェクトに多数のモデルが含まれる場合があります。プロジェクト内のモデルの一覧表示や、不要になったモデルの削除が可能です。また、Cloud AutoML Vision UI を使用して、AutoML API で作成したモデルを一覧表示し、不要なモデルを削除することもできます。
モデルのトレーニング
ラベル付きトレーニング アイテムを含むデータセットがある場合は、カスタムモデルを作成してトレーニングできます。
ウェブ UI
Vision Dashboard を開きます。
[データセット] ページに、現在のプロジェクトで使用可能なデータセットが表示されます。
カスタムモデルのトレーニングに使用するデータセットを選択します。
選択したデータセットの表示名がタイトルバーに表示され、データセット内の個々の項目がラベルと一緒にページに一覧表示されます。
データセットの確認を終えたら、タイトルバーのすぐ下にある [トレーニング] タブを選択します。
トレーニング ページにデータセットの基本的な分析が表示され、データセットがトレーニングに適しているかどうかが示されます。(このオプションがすぐに表示されない場合は、ラベルの統計データを選択します。)AutoML Vision によって変更が提案される場合は、[イメージ] ページに戻って項目やラベルを追加することを検討してください。
データセットの準備ができたら、[トレーニングを開始] を選択します。既存のモデルがある場合は、[新しいモデルをトレーニング] を選択します。
サイド ウィンドウにモデル トレーニング オプションが表示されます。[モデルの定義] セクションで [モデル名] を指定します(または、デフォルト名をそのまま使用します)。指定されていない場合は、radio_button_checked [クラウドでホスト] モデルタイプとして選択します。クラウドでホストされるモデルのトレーニングを選択した後、[続行] を選択します。
サイド ウィンドウの [ノード時間の予算を設定] セクションで、データセット サイズに基づいて適切なトレーニング予算値を選択します。
ほとんどのデータセットでは、モデルをトレーニングするのに 24 ノード時間で十分です。この推奨値は、モデルを完全に統合するための推定値です。ただし、別の値を選択することもできます。画像分類の最小ノード時間は 8 です。オブジェクト検出の場合、この最小値は 20 です。
省略可: トレーニング完了後に自動モデルデプロイにオプトインするには、[check_box トレーニング後にモデルを 1 ノードにする] チェックボックスを選択します。
自動モデルデプロイは、トレーニング後すぐにモデルを予測に使用できることを意味します。デプロイ中に発生したモデルの料金は、料金ページに表示されます。
[トレーニングを開始] を選択します。
REST
リクエストのデータを使用する前に、次のように置き換えます。
- project-id: GCP プロジェクト ID
- dataset-id: データセットの IDこの ID は、データセットの名前の最後の要素です。例:
- データセット名:
projects/project-id/locations/location-id/datasets/3104518874390609379
- データセット ID:
3104518874390609379
- データセット名:
- display-name: 選択した文字列の表示名。
HTTP メソッドと URL:
POST https://automl.googleapis.com/v1/projects/PROJECT_ID/locations/us-central1/models
リクエストの本文(JSON):
{ "displayName": "DISPLAY_NAME", "datasetId": "DATASET_ID", "imageClassificationModelMetadata": { "trainBudget": "1", "modelType": "cloud" } }
リクエストを送信するには、次のいずれかのオプションを選択します。
curl
リクエスト本文を request.json
という名前のファイルに保存して、次のコマンドを実行します。
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "x-goog-user-project: project-id" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://automl.googleapis.com/v1/projects/PROJECT_ID/locations/us-central1/models"
PowerShell
リクエスト本文を request.json
という名前のファイルに保存して、次のコマンドを実行します。
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred"; "x-goog-user-project" = "project-id" }
Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://automl.googleapis.com/v1/projects/PROJECT_ID/locations/us-central1/models" | Select-Object -Expand Content
出力は次のようになります。タスクのステータスは、オペレーション ID(この場合は ICN3819960680614725486
)を使用して取得できます。例については、長時間実行オペレーションによる作業をご覧ください。
{ "name": "projects/PROJECT_ID/locations/us-central1/operations/ICN3819960680614725486", "metadata": { "@type": "type.googleapis.com/google.cloud.automl.v1.OperationMetadata", "createTime": "2019-10-29T19:06:38.048492Z", "updateTime": "2019-10-29T19:06:38.048492Z", "createModelDetails": {} } }
Go
このサンプルを試す前に、クライアント ライブラリ ページを参照して、この言語の設定手順を完了してください。
Java
このサンプルを試す前に、クライアント ライブラリ ページを参照して、この言語の設定手順を完了してください。
Node.js
このサンプルを試す前に、クライアント ライブラリ ページを参照して、この言語の設定手順を完了してください。
Python
このサンプルを試す前に、クライアント ライブラリ ページを参照して、この言語の設定手順を完了してください。
その他の言語
C#: クライアント ライブラリ ページの C# の設定手順を行ってから、.NET 用の AutoML Vision リファレンス ドキュメントをご覧ください。
PHP: クライアント ライブラリ ページの PHP の設定手順を行ってから、PHP 用の AutoML Vision リファレンス ドキュメントをご覧ください。
Ruby: クライアント ライブラリ ページの Ruby の設定手順を行ってから、Ruby 用の AutoML Vision リファレンス ドキュメントをご覧ください。
オペレーションを一覧表示する
モデル トレーニングなどの同時オペレーションを実行している場合は、API を使用して現在のすべてのオペレーションを表示できます。
次のコードサンプルでは、プロジェクトのオペレーションを一覧表示して、結果をフィルタリングします。
REST
リクエストのデータを使用する前に、次のように置き換えます。
- project-id: GCP プロジェクト ID
HTTP メソッドと URL:
GET https://automl.googleapis.com/v1/projects/PROJECT_ID/locations/us-central1/operations
リクエストを送信するには、次のいずれかのオプションを選択します。
curl
次のコマンドを実行します。
curl -X GET \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "x-goog-user-project: project-id" \
"https://automl.googleapis.com/v1/projects/PROJECT_ID/locations/us-central1/operations"
PowerShell
次のコマンドを実行します。
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred"; "x-goog-user-project" = "project-id" }
Invoke-WebRequest `
-Method GET `
-Headers $headers `
-Uri "https://automl.googleapis.com/v1/projects/PROJECT_ID/locations/us-central1/operations" | Select-Object -Expand Content
表示される出力は、リクエストしたオペレーションによって異なります。
select クエリ パラメータ(operationId
、done
、worksOn
)を使用して返されるオペレーションをフィルタすることもできます。たとえば、実行を終了したオペレーションのリストを返すには、URL を次のように変更します。
GET https://automl.googleapis.com/v1/projects/PROJECT_ID/locations/us-central1/operations?filter="done=true"
Go
このサンプルを試す前に、[API とリファレンス] > [クライアント ライブラリ] ページを参照して、この言語の設定手順を完了してください。
Java
このサンプルを試す前に、[API とリファレンス] > [クライアント ライブラリ] ページを参照して、この言語の設定手順を完了してください。
Node.js
このサンプルを試す前に、[API とリファレンス] > [クライアント ライブラリ] ページを参照して、この言語の設定手順を完了してください。
Python
このサンプルを試す前に、[API とリファレンス] > [クライアント ライブラリ] ページを参照して、この言語の設定手順を完了してください。
その他の言語
C#: クライアント ライブラリ ページの C# の設定手順を行ってから、.NET 用の AutoML Vision Object Detection リファレンス ドキュメントをご覧ください。
PHP: クライアント ライブラリ ページの PHP の設定手順を行ってから、PHP 用の AutoML Vision Object Detection リファレンス ドキュメントをご覧ください。
Ruby: クライアント ライブラリ ページの Ruby の設定手順を行ってから、Ruby 用の AutoML Vision Object Detection リファレンス ドキュメントをご覧ください。
オペレーションのステータスの取得
特定のオペレーションの ID を使用して、そのステータス情報を取得できます。
REST
リクエストのデータを使用する前に、次のように置き換えます。
- project-id: GCP プロジェクト ID
- operation-id: オペレーションの IDこの ID は、オペレーションの名前の最後の要素です。例:
- オペレーション名:
projects/project-id/locations/location-id/operations/IOD5281059901324392598
- オペレーション ID:
IOD5281059901324392598
- オペレーション名:
HTTP メソッドと URL:
GET https://automl.googleapis.com/v1/projects/PROJECT_ID/locations/us-central1/operations/OPERATION_ID
リクエストを送信するには、次のいずれかのオプションを選択します。
curl
次のコマンドを実行します。
curl -X GET \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "x-goog-user-project: project-id" \
"https://automl.googleapis.com/v1/projects/PROJECT_ID/locations/us-central1/operations/OPERATION_ID"
PowerShell
次のコマンドを実行します。
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred"; "x-goog-user-project" = "project-id" }
Invoke-WebRequest `
-Method GET `
-Headers $headers `
-Uri "https://automl.googleapis.com/v1/projects/PROJECT_ID/locations/us-central1/operations/OPERATION_ID" | Select-Object -Expand Content
{ "name": "projects/PROJECT_ID/locations/us-central1/operations/OPERATION_ID", "metadata": { "@type": "type.googleapis.com/google.cloud.automl.v1.OperationMetadata", "createTime": "2018-10-29T15:56:29.176485Z", "updateTime": "2018-10-29T16:10:41.326614Z", "importDataDetails": {} }, "done": true, "response": { "@type": "type.googleapis.com/google.protobuf.Empty" } }
完了したモデル作成オペレーションの場合、出力は次のようになります。
{ "name": "projects/PROJECT_ID/locations/us-central1/operations/OPERATION_ID", "metadata": { "@type": "type.googleapis.com/google.cloud.automl.v1.OperationMetadata", "createTime": "2019-07-22T18:35:06.881193Z", "updateTime": "2019-07-22T19:58:44.972235Z", "createModelDetails": {} }, "done": true, "response": { "@type": "type.googleapis.com/google.cloud.automl.v1.Model", "name": "projects/PROJECT_ID/locations/us-central1/models/MODEL_ID" } }
Go
このサンプルを試す前に、[API とリファレンス] > [クライアント ライブラリ] ページを参照して、この言語の設定手順を完了してください。
Java
このサンプルを試す前に、[API とリファレンス] > [クライアント ライブラリ] ページを参照して、この言語の設定手順を完了してください。
Node.js
このサンプルを試す前に、[API とリファレンス] > [クライアント ライブラリ] ページを参照して、この言語の設定手順を完了してください。
Python
このサンプルを試す前に、[API とリファレンス] > [クライアント ライブラリ] ページを参照して、この言語の設定手順を完了してください。
その他の言語
C#: クライアント ライブラリ ページの C# の設定手順を行ってから、.NET 用の AutoML Vision リファレンス ドキュメントをご覧ください。
PHP: クライアント ライブラリ ページの PHP の設定手順を行ってから、PHP 用の AutoML Vision リファレンス ドキュメントをご覧ください。
Ruby: クライアント ライブラリ ページの Ruby の設定手順を行ってから、Ruby 用の AutoML Vision リファレンス ドキュメントをご覧ください。
オペレーションのキャンセル
オペレーション ID を使用して、インポート タスクやトレーニング タスクをキャンセルできます。
REST
このサンプルを試す前に、クライアント ライブラリ ページを参照して、この言語の設定手順を完了してください。
リクエストのデータを使用する前に、次のように置き換えます。
- project-id: GCP プロジェクト ID
- operation-id: オペレーションの IDこの ID は、オペレーションの名前の最後の要素です。例:
- オペレーション名:
projects/project-id/locations/location-id/operations/IOD5281059901324392598
- オペレーション ID:
IOD5281059901324392598
- オペレーション名:
HTTP メソッドと URL:
POST https://automl.googleapis.com/v1/projects/PROJECT_ID/locations/us-central1/operations/OPERATION_ID:cancel
リクエストを送信するには、次のいずれかのオプションを選択します。
curl
次のコマンドを実行します。
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "x-goog-user-project: project-id" \
-H "Content-Type: application/json; charset=utf-8" \
-d "" \
"https://automl.googleapis.com/v1/projects/PROJECT_ID/locations/us-central1/operations/OPERATION_ID:cancel"
PowerShell
次のコマンドを実行します。
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred"; "x-goog-user-project" = "project-id" }
Invoke-WebRequest `
-Method POST `
-Headers $headers `
-Uri "https://automl.googleapis.com/v1/projects/PROJECT_ID/locations/us-central1/operations/OPERATION_ID:cancel" | Select-Object -Expand Content
{}
モデルに関する情報の取得
次のコードサンプルを使用して、特定のトレーニング済みモデルに関する情報を取得します。このリクエストから返された情報を使用して、モードの変更や予測リクエストの送信を行うことができます。
REST
リクエストのデータを使用する前に、次のように置き換えます。
- project-id: GCP プロジェクト ID
- model-id: モデルを作成したときにレスポンスで返されたモデルの ID。この ID は、モデルの名前の最後の要素です。例:
- モデル名:
projects/project-id/locations/location-id/models/IOD4412217016962778756
- モデル ID:
IOD4412217016962778756
- モデル名:
HTTP メソッドと URL:
GET https://automl.googleapis.com/v1/projects/project-id/locations/us-central1/models/model-id
リクエストを送信するには、次のいずれかのオプションを選択します。
curl
次のコマンドを実行します。
curl -X GET \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "x-goog-user-project: project-id" \
"https://automl.googleapis.com/v1/projects/project-id/locations/us-central1/models/model-id"
PowerShell
次のコマンドを実行します。
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred"; "x-goog-user-project" = "project-id" }
Invoke-WebRequest `
-Method GET `
-Headers $headers `
-Uri "https://automl.googleapis.com/v1/projects/project-id/locations/us-central1/models/model-id" | Select-Object -Expand Content
次のような JSON レスポンスが返されます。
{ "name": "projects/project-id/locations/us-central1/models/model-id", "displayName": "display-name", "datasetId": "dataset-id", "createTime": "2019-10-29T19:06:38.048492Z", "deploymentState": "UNDEPLOYED", "updateTime": "2019-10-29T19:35:19.104716Z", "imageClassificationModelMetadata": { "trainBudget": "1", "modelType": "cloud", "nodeQps": 3.2 } }
Go
このサンプルを試す前に、クライアント ライブラリ ページを参照して、この言語の設定手順を完了してください。
Java
このサンプルを試す前に、クライアント ライブラリ ページを参照して、この言語の設定手順を完了してください。
Node.js
このサンプルを試す前に、クライアント ライブラリ ページを参照して、この言語の設定手順を完了してください。
Python
このサンプルを試す前に、クライアント ライブラリ ページを参照して、この言語の設定手順を完了してください。
その他の言語
C#: クライアント ライブラリ ページの C# の設定手順を行ってから、.NET 用の AutoML Vision Object Detection リファレンス ドキュメントをご覧ください。
PHP: クライアント ライブラリ ページの PHP の設定手順を行ってから、PHP 用の AutoML Vision Object Detection リファレンス ドキュメントをご覧ください。
Ruby: クライアント ライブラリ ページの Ruby の設定手順を行ってから、Ruby 用の AutoML Vision Object Detection リファレンス ドキュメントをご覧ください。
再開可能なトレーニング
これで、大規模なデータセット(1,000 個を超える画像)でカスタムモデルのトレーニングを一時停止し、再開できるようになりました。モデルのトレーニングの一時停止は、一時停止ボタンを使用した手動によるアクションではありません。代わりに、ノード時間予算を特定の時間(2 時間など)に設定します。設定した時間に達すると、モデルのステータスに関係なく、トレーニングは自動的に停止します。
再開可能なトレーニングには次の制限があります。
- 基本モデルの時間制限 - トレーニングを再開できるのは、直近の 14 日間にトレーニングされたモデルのみです。リクエストの 14 日以上前に作成されたベースモデルは再開可能なトレーニングの対象外です。
- ラベルの変更なし - ベースモデルのデータセットでラベルを変更すると、再開可能なトレーニングは失敗します。
- パフォーマンスの向上は保証されません - モデルで再開可能なトレーニングを使用しても、モデルのパフォーマンスが向上するとは限りません。
ウェブ UI
このサンプルを試す前に、クライアント ライブラリ ページを参照して、この言語の設定手順を完了してください。
-
AutoML Vision UI を開きます。
[データセット] ページに、現在のプロジェクトで使用可能なデータセットが表示されます。
カスタムモデルのトレーニングに使用するデータセットを選択します。
選択したデータセットの表示名がタイトルバーに表示され、データセット内の個々の項目がラベルと一緒にページに一覧表示されます。
データセットの確認を終えたら、タイトルバーのすぐ下にある [トレーニング] タブを選択します。
以前にトレーニングしたモデルは、このタブのリストに表示されます。
モデルで再開可能なトレーニングが利用可能な場合、[評価全体を見る] の近くにオプションが表示されます。
[トレーニングを再開] を選択して、該当するモデルでトレーニングを再開します。
元のモデルのトレーニングと同様に、[トレーニングを再開] を選択すると、[新しいモデルのトレーニング] サイド ウィンドウが表示されます。[モデルの定義] セクションで、新しいモデルの名前を変更できます。また、このモデルのトレーニングに使用されたベースモデルの名前も表示されます。
モデルを定義したら、[続行] を選択して次のセクションに進みます。
[ノード時間予算の設定] セクションで、ノード時間予算を指定します。この予算には、初期モデル トレーニングと同様の料金体系と割り当て制限が適用されます。
トレーニング予算を指定したら、[トレーニングを開始] を選択します。再開可能なトレーニングが終了すると、メールが届きます。
REST
リクエストのデータを使用する前に、次のように置き換えます。
- base-model-id: 基本(既存)モデルの ID。新しいモデルは、この基本モデルに基づいて作成されます。次の新規モデルの仕様は、基本モデルに一致する必要があります。
- プロジェクト
- ロケーション
modelType
*
* 新しいモデルのリクエストでこのフィールドが省略されていても、基本と新しい
modelType
はチェックされます。 - project-id: GCP プロジェクト ID
- display-name: 選択した文字列の表示名。
- dataset-id: データセットの IDこの ID は、データセットの名前の最後の要素です。例:
- データセット名:
projects/project-id/locations/location-id/datasets/3104518874390609379
- データセット ID:
3104518874390609379
- データセット名:
HTTP メソッドと URL:
POST https://automl.googleapis.com/v1/projects/PROJECT_ID/locations/us-central1/models
リクエストの本文(JSON):
{ "baseModelId": BASE_MODEL_ID, "displayName": "DISPLAY_NAME", "datasetId": "DATASET_ID", "imageClassificationModelMetadata": { "trainBudget": "1", "modelType": "mobile-low-latency-1" } }
リクエストを送信するには、次のいずれかのオプションを選択します。
curl
リクエスト本文を request.json
という名前のファイルに保存して、次のコマンドを実行します。
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "x-goog-user-project: project-id" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://automl.googleapis.com/v1/projects/PROJECT_ID/locations/us-central1/models"
PowerShell
リクエスト本文を request.json
という名前のファイルに保存して、次のコマンドを実行します。
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred"; "x-goog-user-project" = "project-id" }
Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://automl.googleapis.com/v1/projects/PROJECT_ID/locations/us-central1/models" | Select-Object -Expand Content
出力は次のようになります。タスクのステータスは、オペレーション ID(この場合は ICN2106290444865378475
)を使用して取得できます。例については、長時間実行オペレーションによる作業をご覧ください。
{ "name": "projects/PROJECT_ID/locations/us-central1/operations/ICN2106290444865378475", "metadata": { "@type": "type.googleapis.com/google.cloud.automl.v1.OperationMetadata", "createTime": "2019-10-30T20:06:08.253243Z", "updateTime": "2019-10-30T20:06:08.253243Z", "createModelDetails": {} } }