モデルを作成したら、カスタムモデルをエクスポートできます。
モデルをエクスポートしたら、モデルをデバイスにデプロイできます。
画像分類モデルは、ExportModel API を使用して汎用的な Tensorflow Lite 形式、TensorFlow 形式、ウェブ用の TensorFlow.js 形式のいずれかで Google Cloud Storage の保存先にエクスポートできます。
デバイスにエクスポートする
TensorFlow Lite モデル
ウェブ UI
AutoML Vision Object Detection UI を開き、左側のナビゲーション バーで電球のアイコンをクリックし、使用可能なモデルを表示します。
別のプロジェクトのモデルを表示するには、タイトルバーの右上にあるプルダウン リストからプロジェクトを選択します。
画像のラベル付けに使用するモデルの行を選択します。
[テストと使用] タブを選択します。
[モデルを使用する] セクションで [TF Lite] カードを選択します。サイドに [オンデバイス モデルを使用] ウィンドウが開きます。
サイド ウィンドウで、Google Cloud Storage の出力先を指定します。モデルの出力先を選択したら、[エクスポート] を選択してモデルのエクスポートを開始します。
エクスポート後、同じウィンドウで [Google Cloud Storage で開く] オプションを選択すると、Google Cloud Storage のエクスポート先ディレクトリに直接移動できます。
REST
"modelFormat"
フィールドに "tflite"
(デフォルト)を指定します。
リクエストのデータを使用する前に、次のように置き換えます。
- project-id: GCP プロジェクト ID
- model-id: モデルを作成したときにレスポンスで返されたモデルの ID。この ID は、モデルの名前の最後の要素です。例:
- モデル名:
projects/project-id/locations/location-id/models/IOD4412217016962778756
- モデル ID:
IOD4412217016962778756
- モデル名:
- output-storage-bucket: 出力ファイルを保存する Google Cloud Storage バケット/ディレクトリ(形式:
gs://bucket/directory/
)。リクエスト元のユーザーには、バケットへの書き込み権限が必要です。
HTTP メソッドと URL:
POST https://automl.googleapis.com/v1/projects/PROJECT_ID/locations/us-central1/models/MODEL_ID:export
リクエストの本文(JSON):
{ "outputConfig": { "modelFormat": "tflite", "gcsDestination": { "outputUriPrefix": "OUTPUT_STORAGE_BUCKET/" }, } }
リクエストを送信するには、次のいずれかのオプションを選択します。
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/MODEL_ID:export"
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/MODEL_ID:export" | Select-Object -Expand Content
次のような JSON レスポンスが返されます。
{ "name": "projects/PROJECT_ID/locations/us-central1/operations/OPERATION_ID", "metadata": { "@type": "type.googleapis.com/google.cloud.automl.v1.OperationMetadata", "createTime": "2019-07-22T21:23:21.643041Z", "updateTime": "2019-07-22T21:23:21.643041Z", "exportModelDetails": { "outputInfo": { "gcsOutputDirectory": "OUTPUT_STORAGE_BUCKET/model-export/iod/tflite-DATASET_NAME-YYYY-MM-DDThh:mm:ss.sssZ" } } } }
その結果、指定したディレクトリ(CLOUD_STORAGE_BUCKET/[DIRECTORY])にフォルダ構造が表示されます。作成されるフォルダ構造の一般形式(タイムスタンプは ISO-8601 形式)は次のとおりです。
CLOUD_STORAGE_BUCKET/model-export/iod/MODEL_TYPE-DATASET_NAME-YYYY-MM-DDThh:mm:ss.sssZ
例:
CLOUD_STORAGE_BUCKET/model-export/iod/tf-saved-model-DATASET_NAME-2019-07-22T21:25:35.135Z
CLOUD_STORAGE_BUCKET/model-export/iod/tflite-DATASET_NAME-2019-07-22T21:23:18.861Z
フォルダには、TensorFlow Lite モデル(model.tflite
)、ラベルファイル(dict.txt
)、tflite_metadata.json
ファイルが含まれます。
エクスポートされたモデルの使用
モデルを Google Cloud Storage バケットにエクスポートしたら、AutoML Vision Edge モデルを Android デバイス、iOS デバイスまたは Raspberry Pi 3 にデプロイできます。
コンテナにエクスポートする
ウェブ UI
AutoML Vision Object Detection UI を開き、左側のナビゲーション バーで電球のアイコンをクリックし、使用可能なモデルを表示します。
別のプロジェクトのモデルを表示するには、タイトルバーの右上にあるプルダウン リストからプロジェクトを選択します。
画像のラベル付けに使用するモデルの行をクリックします。
[テストと使用] タブを選択します。
[モデルを使用する] セクションで [TF Lite] カードを選択します。サイドに [オンデバイス モデルを使用] ウィンドウが開きます。
サイド ウィンドウで、Google Cloud Storage の出力先を指定します。モデルの出力先を選択したら、[エクスポート] を選択してモデルのエクスポートを開始します。
エクスポート後、同じウィンドウで [Google Cloud Storage で開く] オプションを選択すると、Google Cloud Storage のエクスポート先ディレクトリに直接移動できます。
REST
"modelFormat"
フィールドに "tf-saved-model"
を指定します。
リクエストのデータを使用する前に、次のように置き換えます。
- project-id: GCP プロジェクト ID
- model-id: モデルを作成したときにレスポンスで返されたモデルの ID。この ID は、モデルの名前の最後の要素です。例:
- モデル名:
projects/project-id/locations/location-id/models/IOD4412217016962778756
- モデル ID:
IOD4412217016962778756
- モデル名:
- output-storage-bucket: 出力ファイルを保存する Google Cloud Storage バケット/ディレクトリ(形式:
gs://bucket/directory/
)。リクエスト元のユーザーには、バケットへの書き込み権限が必要です。
HTTP メソッドと URL:
POST https://automl.googleapis.com/v1/projects/PROJECT_ID/locations/us-central1/models/MODEL_ID:export
リクエストの本文(JSON):
{ "outputConfig": { "modelFormat": "tf-saved-model", "gcsDestination": { "outputUriPrefix": "OUTPUT_STORAGE_BUCKET/" }, } }
リクエストを送信するには、次のいずれかのオプションを選択します。
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/MODEL_ID:export"
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/MODEL_ID:export" | Select-Object -Expand Content
次のような JSON レスポンスが返されます。
{ "name": "projects/PROJECT_ID/locations/us-central1/operations/OPERATION_ID", "metadata": { "@type": "type.googleapis.com/google.cloud.automl.v1.OperationMetadata", "createTime": "2019-07-22T21:23:21.643041Z", "updateTime": "2019-07-22T21:23:21.643041Z", "exportModelDetails": { "outputInfo": { "gcsOutputDirectory": "OUTPUT_STORAGE_BUCKET/model-export/iod/tf-saved-model-DATASET_NAME-YYYY-MM-DDThh:mm:ss.sssZ" } } } }
その結果、指定したディレクトリ(CLOUD_STORAGE_BUCKET/[DIRECTORY])にフォルダ構造が表示されます。作成されるフォルダ構造の一般形式(タイムスタンプは ISO-8601 形式)は次のとおりです。
CLOUD_STORAGE_BUCKET/model-export/iod/MODEL_TYPE-DATASET_NAME-YYYY-MM-DDThh:mm:ss.sssZ
例:
CLOUD_STORAGE_BUCKET/model-export/iod/tf-saved-model-DATASET_NAME-2019-07-22T21:25:35.135Z
CLOUD_STORAGE_BUCKET/model-export/iod/tflite-DATASET_NAME-2019-07-22T21:23:18.861Z
フォルダには、TensorFlow モデル(saved_model.pb
)が含まれます。
エクスポートされたモデルの使用
モデルを Google Cloud Storage バケットにエクスポートしたら、エクスポートしたモデルを使用して Docker イメージで予測を行うことができます。コンテナへのデプロイ方法については、コンテナ チュートリアルをご覧ください。
ウェブ用にエクスポートする
ウェブ UI
-
Vision Dashboard を開き、サイド ナビゲーション バーの電球アイコンを選択して、使用可能なモデルを表示します。
別のプロジェクトのモデルを表示するには、タイトルバーの右上にあるプルダウン リストからプロジェクトを選択します。
-
画像のラベル付けに使用するモデルの行を選択します。
-
タイトルバーのすぐ下にある [テストと使用] タブを選択します。
-
[モデルの使用] セクションで、Tensorflow.js オプションを選択します。Tensorflow.js オプションを選択し、Cloud Storage のエクスポート先をサイド ウィンドウで指定したら、[エクスポート] を選択してウェブ対応の TensorFlow.js モデルをエクスポートします。
REST
リクエストのデータを使用する前に、次のように置き換えます。
- project-id: GCP プロジェクト ID
- model-id: モデルを作成したときにレスポンスで返されたモデルの ID。この ID は、モデルの名前の最後の要素です。例:
- モデル名:
projects/project-id/locations/location-id/models/IOD4412217016962778756
- モデル ID:
IOD4412217016962778756
- モデル名:
- output-storage-bucket: 出力ファイルを保存する Google Cloud Storage バケット/ディレクトリ(形式:
gs://bucket/directory/
)。リクエスト元のユーザーには、バケットへの書き込み権限が必要です。
HTTP メソッドと URL:
POST https://automl.googleapis.com/v1/projects/PROJECT_ID/locations/us-central1/models/MODEL_ID:export
リクエストの本文(JSON):
{ "outputConfig": { "modelFormat": "tf_js", "gcsDestination": { "outputUriPrefix": "OUTPUT_STORAGE_BUCKET/" }, } }
リクエストを送信するには、次のいずれかのオプションを選択します。
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/MODEL_ID:export"
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/MODEL_ID:export" | Select-Object -Expand Content
次のような JSON レスポンスが返されます。
{ "name": "projects/PROJECT_ID/locations/us-central1/operations/OPERATION_ID", "metadata": { "@type": "type.googleapis.com/google.cloud.automl.v1.OperationMetadata", "createTime": "2019-07-22T21:23:21.643041Z", "updateTime": "2019-07-22T21:23:21.643041Z", "exportModelDetails": { "outputInfo": { "gcsOutputDirectory": "OUTPUT_STORAGE_BUCKET/model-export/icn/tf_js-DATASET_NAME-YYYY-MM-DDThh:mm:ss.sssZ" } } } }
指定したディレクトリ(USER_GCS_PATH)にフォルダが表示されます。作成されたフォルダには、/model-export/icn/tf_js-DATASET_NAME-YYYY-MM-DDThh:mm:ss.sssZ
形式のタイムスタンプに従って名前が付けられます(例: tf_js-edge_model-2019-10-03T17:24:46.999Z
)。
フォルダには、バイナリ ファイル(.bin
)、dict.txt
という名前のラベルファイル、model.json
ファイルが含まれます。