準備したデータセットを使用してモデルをトレーニングし、カスタムモデルを作成します。AutoML Vision API では、データセットの画像を使用してモデルをトレーニングおよびテストし、モデルのパフォーマンスを評価します。その結果を確認し、必要に応じてトレーニング データセットを調整して、改善されたデータセットで新しいモデルをトレーニングします。
モデルのトレーニングが完了するまで数時間かかることがあります。AutoML Vision API を使用すると、トレーニングのステータスを確認できます。
モデルのトレーニング
境界ボックスとラベルを含む、アノテーション付きトレーニング画像を含むデータセットがある場合は、カスタムモデルを作成してトレーニングできます。
ウェブ UI
AutoML Vision Object Detection UI を開きます。
[データセット] に、現在のプロジェクトの使用可能データセットが表示されます。
カスタムモデルのトレーニングに使用するデータセットを選択します。
データセットの準備ができたら、[トレーニング] タブと [新しいモデルをトレーニング] ボタンを選択します。
[新しいモデルのトレーニング] サイド ウィンドウが開き、トレーニング オプションが表示されます。
[モデルの定義] セクションで [モデル名] を指定します(または、デフォルト名をそのまま使用します)。指定されていない場合は、radio_button_checked [クラウドでホスト] モデルタイプとして選択します。Edge モデルのトレーニングを選択したら、[続行] を選択します。
次の [モデル最適化のオプション] セクションで、radio_button_checked[Higher accuracy] または [Faster prediction] から必要な最適化基準を選択します。最適化仕様を選択したら、[続行] を選択します。
次の [Set a node hour budget] セクションで、必要なノードの予算を指定します。
ほとんどのデータセットでは、モデルをトレーニングするのに 24 ノード時間で十分です。この推奨値は、モデルを完全に統合するための推定値です。ただし、別の値を選択することもできます。オブジェクト検出の最小ノード時間は 20 です。画像分類の場合、最小値は 8 です。
このセクションでは、check_box [トレーニング後にモデルを 1 ノードにデプロイする] を選択して、トレーニング後にモデルの自動デプロイをオプトインすることもできます。それ以外の場合は、トレーニング終了後にモデルを手動でデプロイする必要があります。
[トレーニングを開始] を選択して、モデルのトレーニングを開始します。
モデルのトレーニングが完了するまで数時間かかることがあります。モデルのトレーニングが正常に終了したら、Google Cloud Platform プロジェクトに使用したメールアドレスにメッセージが届きます。
REST
リクエストのデータを使用する前に、次のように置き換えます。
- project-id: GCP プロジェクト ID
- dataset-id: データセットの IDこの ID は、データセットの名前の最後の要素です。例:
- データセット名:
projects/project-id/locations/location-id/datasets/3104518874390609379
- データセット ID:
3104518874390609379
- データセット名:
- display-name: 選択した文字列の表示名。
特定のフィールドに関する考慮事項:
imageObjectDetectionModelMetadata.modelType
- モデルを最適化する 2 つのオプションのいずれかを示します。cloud-low-latency-1
- トレーニングのレイテンシを最適化します。cloud-high-accuracy-1
- トレーニングの精度を最適化します。imageObjectDetectionModelMetadata.trainBudgetMilliNodeHours
- このモデルを作成するためのトレーニング予算。ミリ単位のノード時間数で表します(このフィールドの値を 1,000 に設定すると 1 ノード時間になります)。実際のtrainCostMilliNodeHours
は、この値と同等か、それ以下になります。さらにモデルのトレーニングを行っても品質が向上しない場合は、予算を使わずに終了し、stopReason
はMODEL_CONVERGED
になります。注: ノード時間 = 実際の時間 * 関係するノード数
モデルタイプが
cloud-high-accuracy-1
(デフォルト)とcloud-low-latency-1
の場合、トレーニング予算は 20,000~2,000,000 ミリノード時間数にする必要があります(両端を含む)。デフォルト値は 216,000 で、通常の時間で 1 日を表します。
HTTP メソッドと URL:
POST https://automl.googleapis.com/v1/projects/PROJECT_ID/locations/us-central1/models
リクエストの本文(JSON):
{ "displayName": "DISPLAY_NAME", "datasetId": "DATASET_ID", "imageObjectDetectionModelMetadata": { "modelType": "cloud-low-latency-1", "trainBudgetMilliNodeHours": "216000" } }
リクエストを送信するには、次のいずれかのオプションを選択します。
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(この場合は IOD3074819451447675546
)を使用して取得できます。例については、長時間実行オペレーションによる作業をご覧ください。
{ "name": "projects/PROJECT_ID/locations/us-central1/operations/IOD3074819451447675546", "metadata": { "@type": "type.googleapis.com/google.cloud.automl.v1.OperationMetadata", "createTime": "2019-07-26T21:10:18.338846Z", "updateTime": "2019-07-26T21:10:18.338846Z", "createModelDetails": {} } }
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 リファレンス ドキュメントをご覧ください。
オペレーションを一覧表示する
次のコードサンプルでは、プロジェクトのオペレーションを一覧表示して、結果をフィルタリングします。
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 リファレンス ドキュメントをご覧ください。
長時間実行オペレーションによる作業
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
このサンプルを試す前に、クライアント ライブラリ ページを参照して、この言語の設定手順を完了してください。
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 リファレンス ドキュメントをご覧ください。
オペレーションのキャンセル
オペレーション 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-07-26T21:10:18.338846Z", "deploymentState": "UNDEPLOYED", "updateTime": "2019-07-26T22:28:57.464076Z", "imageObjectDetectionModelMetadata": { "modelType": "cloud-low-latency-1", "nodeQps": 1.2987012987012987, "stopReason": "MODEL_CONVERGED", "trainBudgetMilliNodeHours": "216000", "trainCostMilliNodeHours": "8230" } }
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 リファレンス ドキュメントをご覧ください。