创建(训练)模型后,您可以将自定义模型导出,
随后将导出的模型部署到设备上。
您可以使用 ExportModel API 将图片分类模型导出到 Google Cloud Storage 位置,支持的导出格式包括通用Tensorflow Lite格式、通用 TensorFlow 格式和 TensorFlow.js for Web 格式。
导出到设备
TensorFlow Lite 模型
网页界面
打开 AutoML Vision Object Detection 界面,然后点击左侧导航栏中的灯泡图标以显示可用的模型。
如需查看其他项目的模型,请从标题栏右上角的下拉列表中选择该项目。
选择要用于为图片添加标签的模型所对应的行。
选择测试和使用标签页。
在使用您的模型部分中,选择 TF Lite 卡片。这会打开使用您设备上的模型 (Use your on-device model) 侧边窗口。
在侧边窗口中,指定作为输出位置的 Google Cloud Storage 位置。选好模型输出的存储位置后,选择导出启动模型导出操作。
导出完成后,您可以在同一窗口中选择在 Google Cloud Storage 中打开 (Open in 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 方法和网址:
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
该文件夹包含一个名为 model.tflite
的 TensorFlow Lite 模型、一个名为 dict.txt
的标签文件和一个 tflite_metadata.json
文件。
使用导出的模型
将模型导出到 Google Cloud Storage 存储分区后,您可以将 AutoML Vision Edge 模型部署到 Android 设备、iOS 设备或 Raspberry Pi 3 上。
导出到容器
网页界面
打开 AutoML Vision Object Detection 界面,然后点击左侧导航栏中的灯泡图标以显示可用的模型。
如需查看其他项目的模型,请从标题栏右上角的下拉列表中选择该项目。
点击要用于为图片添加标签的模型所对应的行。
选择测试和使用标签页。
在使用您的模型部分中,选择 TF Lite 卡片。这会打开使用您设备上的模型 (Use your on-device model) 侧边窗口。
在侧边窗口中,指定作为输出位置的 Google Cloud Storage 位置。选好模型输出的存储位置后,选择导出启动模型导出操作。
导出完成后,您可以在同一窗口中选择在 Google Cloud Storage 中打开 (Open in 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 方法和网址:
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
该文件夹包含一个名为 saved_model.pb
的 TensorFlow 模型。
使用导出的模型
将模型导出到 Google Cloud Storage 存储分区后,您可以使用导出的模型在 Docker 映像中执行预测。有关部署到容器的说明,请参阅容器教程。
为在 Web 上使用而导出
网页界面
-
打开 Vision Dashboard 并选择侧边导航栏中的灯泡图标以显示可用的模型。
如需查看其他项目的模型,请从标题栏右上角的下拉列表中选择该项目。
-
选择要用于标记图片的模型所对应的行。
-
选择标题栏正下方的测试和使用标签页。
-
在使用您的模型部分,选择 Tensorflow.js 选项。 选择 Tensorflow.js 选项并在侧窗口中指定 Cloud Storage 上的导出位置后,再选择Tensorflow.js以导出支持 Web 的 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 方法和网址:
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
文件。