モデルを作成したら、カスタムモデルをエクスポートできます。
モデルをエクスポートしたら、モデルをデバイスにデプロイできます。
画像分類モデルは、次の形式でエクスポートできます。
- TensorFlow Lite
- TensorFlow SavedModel(Docker コンテナで使用)
- Edge TPU コンパイル済み TensorFlow Lite
- ウェブ用の TensorFlow.js
デバイスにエクスポートする
TensorFlow Lite モデル
ウェブ UI
Vision Dashboardを開き、左側のナビゲーション バーにある電球アイコンをクリックし、使用可能なモデルを表示します。
別のプロジェクトのモデルを表示するには、タイトルバーの右上にあるプルダウン リストからプロジェクトを選択します。
画像のラベル付けに使用するモデルの行をクリックします。
タイトルバーのすぐ下にある [テストと使用] タブをクリックします。
[モデルを使用する] セクションで [TF Lite] オプションを選択します。[TF Lite] オプションを選択し、サイド ウィンドウで Cloud Storage 上のエクスポート先を指定したら、[Export] を選択して Edge TF Lite モデルをエクスポートします。
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/icn/tflite-DATASET_NAME-YYYY-MM-DDThh:mm:ss.sssZ" } } } }
その結果、指定したディレクトリ(CLOUD_STORAGE_BUCKET/[DIRECTORY])にフォルダ構造が表示されます。作成されるフォルダ構造の一般形式(タイムスタンプは ISO-8601 形式)は次のとおりです。
CLOUD_STORAGE_BUCKET/model-export/icn/MODEL_TYPE-DATASET_NAME-YYYY-MM-DDThh:mm:ss.sssZ
例:
CLOUD_STORAGE_BUCKET/model-export/icn/tf-saved-model-DATASET_NAME-2019-07-22T21:25:35.135Z
CLOUD_STORAGE_BUCKET/model-export/icn/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 にデプロイできます。
Core ML モデル
ウェブ UI
Vision Dashboardを開き、左側のナビゲーション バーにある電球アイコンをクリックし、使用可能なモデルを表示します。
別のプロジェクトのモデルを表示するには、タイトルバーの右上にあるプルダウン リストからプロジェクトを選択します。
画像のラベル付けに使用するモデルの行をクリックします。
タイトルバーのすぐ下にある [テストと使用] タブをクリックします。
[モデルを使用する] セクションで [Core ML] オプションを選択します。Core ML オプションを選択し、サイド ウィンドウで Cloud Storage のエクスポート先を指定したら、[Export] をクリックして Edge モデルをエクスポートします。
REST
"modelFormat"
フィールドに "core_ml"
を指定します。
リクエストのデータを使用する前に、次のように置き換えます。
- 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": "core_ml", "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-11-12T22:53:55.290584Z", "updateTime": "2019-11-12T22:53:55.290584Z", "exportModelDetails": { "outputInfo": { "gcsOutputDirectory": "OUTPUT_STORAGE_BUCKET/model-export/icn/core_ml-DATASET_NAME_YYYY-MM-DDThh:mm:ss.sssZ/" } } } }
その結果、指定したディレクトリ(CLOUD_STORAGE_BUCKET/[DIRECTORY])にフォルダ構造が表示されます。作成されるフォルダ構造の一般形式(タイムスタンプは ISO-8601 形式)は次のとおりです。
CLOUD_STORAGE_BUCKET/model-export/icn/MODEL_TYPE-DATASET_NAME-YYYY-MM-DDThh:mm:ss.sssZ
例:
CLOUD_STORAGE_BUCKET/model-export/icn/tf-saved-model-DATASET_NAME-2019-07-22T21:25:35.135Z
CLOUD_STORAGE_BUCKET/model-export/icn/tflite-DATASET_NAME-2019-07-22T21:23:18.861Z
フォルダには Core ML モデル(model.mlmodel
)と dict.txt
ラベルファイルが含まれます。
エクスポートされたモデルの使用
モデルを Google Cloud Storage バケットにエクスポートしたら、AutoML Vision Edge モデルを iOS デバイスにデプロイできます。
コンテナにエクスポートする
ウェブ UI
Vision Dashboardを開き、左側のナビゲーション バーにある電球アイコンをクリックし、使用可能なモデルを表示します。
別のプロジェクトのモデルを表示するには、タイトルバーの右上にあるプルダウン リストからプロジェクトを選択します。
画像のラベル付けに使用するモデルの行をクリックします。
タイトルバーのすぐ下にある [テストと使用] タブをクリックします。
[モデルを使用する] セクションで、[コンテナ] オプションを選択します。[コンテナ] オプションを選択し、Cloud Storage 上のエクスポート先をサイド ウィンドウで指定したら、[Export] をクリックして Edge モデルをエクスポートします。
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/icn/tf-saved-model-DATASET_NAME-YYYY-MM-DDThh:mm:ss.sssZ" } } } }
その結果、指定したディレクトリ(CLOUD_STORAGE_BUCKET/[DIRECTORY])にフォルダ構造が表示されます。作成されるフォルダ構造の一般形式(タイムスタンプは ISO-8601 形式)は次のとおりです。
CLOUD_STORAGE_BUCKET/model-export/icn/MODEL_TYPE-DATASET_NAME-YYYY-MM-DDThh:mm:ss.sssZ
例:
CLOUD_STORAGE_BUCKET/model-export/icn/tf-saved-model-DATASET_NAME-2019-07-22T21:25:35.135Z
CLOUD_STORAGE_BUCKET/model-export/icn/tflite-DATASET_NAME-2019-07-22T21:23:18.861Z
フォルダには、TensorFlow モデル(saved_model.pb
)が含まれます。
エクスポートされたモデルの使用
モデルを Google Cloud Storage バケットにエクスポートしたら、エクスポートしたモデルを使用して Docker イメージで予測を行うことができます。コンテナへのデプロイ方法については、コンテナ チュートリアルをご覧ください。
Edge TPU にエクスポートする
ウェブ UI
Vision ダッシュボードを開き、左側のナビゲーション バーにある電球アイコンをクリックして使用可能なモデルを表示します。
別のプロジェクトのモデルを表示するには、タイトルバーの右上にあるプルダウン リストからプロジェクトを選択します。
画像のラベル付けに使用するモデルの行を選択します。
タイトルバーのすぐ下にある [テストと使用] タブを選択します。
[モデルを使用する] セクションで、[Coral] オプションを選択します。[Coral] オプションを選択し、Cloud Storage 上のエクスポート先をサイド ウィンドウで指定したら、[Export] をクリックして Edge モデルをエクスポートします。
REST
"modelFormat"
フィールドに "edgetpu_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": "edgetpu_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-11-12T22:55:03.554806Z", "updateTime": "2019-11-12T22:55:03.554806Z", "exportModelDetails": { "outputInfo": { "gcsOutputDirectory": "OUTPUT_STORAGE_BUCKET/model-export/icn/edgetpu_tflite-DATASET_NAME_YYYY-MM-DDThh:mm:ss.sssZ/" } } } }
その結果、指定したディレクトリ(CLOUD_STORAGE_BUCKET/[DIRECTORY])にフォルダ構造が表示されます。作成されるフォルダ構造の一般形式(タイムスタンプは ISO-8601 形式)は次のとおりです。
CLOUD_STORAGE_BUCKET/model-export/icn/MODEL_TYPE-DATASET_NAME-YYYY-MM-DDThh:mm:ss.sssZ
例:
CLOUD_STORAGE_BUCKET/model-export/icn/tf-saved-model-DATASET_NAME-2019-07-22T21:25:35.135Z
CLOUD_STORAGE_BUCKET/model-export/icn/tflite-DATASET_NAME-2019-07-22T21:23:18.861Z
フォルダには、TensorFlow Lite モデル(edgetpu_model.tflite
)、ラベルファイル(dict.txt
)、tflite_metadata.json
ファイルが含まれます。
エクスポートされたモデルの使用
Edge TPU へのデプロイ方法については、Edge TPU での推論の実行に関する Coral の公式ドキュメントを参照してください。
ウェブ用にエクスポートする
ウェブ 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
ファイルが含まれます。