Edge モデルのエクスポート

モデルを作成したら、カスタムモデルをエクスポートできます。

モデルをエクスポートしたら、モデルをデバイスにデプロイできます。

画像分類モデルは、次の形式でエクスポートできます。

デバイスにエクスポートする

TensorFlow Lite モデル

ウェブ UI

  1. Vision Dashboardを開き、左側のナビゲーション バーにある電球アイコンをクリックし、使用可能なモデルを表示します。

    別のプロジェクトのモデルを表示するには、タイトルバーの右上にあるプルダウン リストからプロジェクトを選択します。

  2. 画像のラベル付けに使用するモデルの行をクリックします。

  3. タイトルバーのすぐ下にある [テストと使用] タブをクリックします。

  4. [モデルを使用する] セクションで [TF Lite] オプションを選択します。[TF Lite] オプションを選択し、サイド ウィンドウで Cloud Storage 上のエクスポート先を指定したら、[Export] を選択して Edge TF Lite モデルをエクスポートします。

    最新の [TF Lite モデルをエクスポート] オプション 最新の [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

  1. Vision Dashboardを開き、左側のナビゲーション バーにある電球アイコンをクリックし、使用可能なモデルを表示します。

    別のプロジェクトのモデルを表示するには、タイトルバーの右上にあるプルダウン リストからプロジェクトを選択します。

  2. 画像のラベル付けに使用するモデルの行をクリックします。

  3. タイトルバーのすぐ下にある [テストと使用] タブをクリックします。

  4. [モデルを使用する] セクションで [Core ML] オプションを選択します。Core ML オプションを選択し、サイド ウィンドウで Cloud Storage のエクスポート先を指定したら、[Export] をクリックして Edge モデルをエクスポートします。

    [Core ML モデル] オプションにエクスポートする [Core ML モデル] オプションにエクスポートする

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

  1. Vision Dashboardを開き、左側のナビゲーション バーにある電球アイコンをクリックし、使用可能なモデルを表示します。

    別のプロジェクトのモデルを表示するには、タイトルバーの右上にあるプルダウン リストからプロジェクトを選択します。

  2. 画像のラベル付けに使用するモデルの行をクリックします。

  3. タイトルバーのすぐ下にある [テストと使用] タブをクリックします。

  4. [モデルを使用する] セクションで、[コンテナ] オプションを選択します。[コンテナ] オプションを選択し、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

  1. Vision ダッシュボードを開き、左側のナビゲーション バーにある電球アイコンをクリックして使用可能なモデルを表示します。

    別のプロジェクトのモデルを表示するには、タイトルバーの右上にあるプルダウン リストからプロジェクトを選択します。

  2. 画像のラベル付けに使用するモデルの行を選択します。

  3. タイトルバーのすぐ下にある [テストと使用] タブを選択します。

  4. [モデルを使用する] セクションで、[Coral] オプションを選択します。[Coral] オプションを選択し、Cloud Storage 上のエクスポート先をサイド ウィンドウで指定したら、[Export] をクリックして Edge モデルをエクスポートします。

    [coral](edgetpu tflite)オプションをエクスポートする [coral](edgetpu tflite)オプションをエクスポートする

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

  1. Vision Dashboard を開き、サイド ナビゲーション バーの電球アイコンを選択して、使用可能なモデルを表示します。

    別のプロジェクトのモデルを表示するには、タイトルバーの右上にあるプルダウン リストからプロジェクトを選択します。

  2. 画像のラベル付けに使用するモデルの行を選択します。

  3. タイトルバーのすぐ下にある [テストと使用] タブを選択します。

  4. [モデルの使用] セクションで、Tensorflow.js オプションを選択します。Tensorflow.js オプションを選択し、Cloud Storage のエクスポート先をサイド ウィンドウで指定したら、[エクスポート] を選択してウェブ対応の TensorFlow.js モデルをエクスポートします。

    Tensorflow.js のエクスポート オプション 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 ファイルが含まれます。

Tensorflow.js フォルダの例