如何通过Python API从Google AutoML Vision导出tflite模型
Google AutoML Vision导出tflite格式报错解决方案
功能移除说明
Google并未移除AutoML Vision的tflite导出功能。仅边缘优化型图像分类模型支持导出tflite格式,云端部署型模型默认仅提供云端API调用能力,不开放本地格式导出权限,这就是你在控制台「Test & Use」页面看不到tflite导出选项的原因。
你收到的400 Unsupported model export format [tflite] for model报错核心原因是:已完成训练的模型属于云端部署类型,不支持tflite导出,和导出阶段的output_config配置无关。
代码修改及操作步骤
- 注意:模型类型是训练启动前的配置项,训练完成后无法修改,需要重新训练符合要求的模型才能导出tflite。
- 支持tflite导出的AutoML图像分类模型类型如下:
mobile-low-latency-1(低延迟移动端模型)mobile-versatile-1(均衡型移动端模型,你当前选用的类型本身符合要求)mobile-high-accuracy-1(高精度移动端模型)
- 训练阶段完整配置参考(旧版AutoML Python API):
from google.cloud import automl # 基础参数配置 client = automl.AutoMlClient() project_id = "你的GCP项目ID" location = "us-central1" dataset_id = "已标注的图像分类数据集ID" model_display_name = "自定义模型名称" # 训练前配置边缘模型元数据 model_metadata = automl.ImageClassificationModelMetadata( train_budget_milli_node_hours = 20000, # 单位为千分之一节点小时,最小取值1000对应1小时训练时长 model_type = "mobile-versatile-1" ) # 组装训练请求参数 model = { "display_name": model_display_name, "dataset_id": dataset_id, "image_classification_model_metadata": model_metadata } parent = f"projects/{project_id}/locations/{location}" # 启动异步训练 training_operation = client.create_model(parent=parent, model=model) print(f"训练作业ID:{training_operation.operation.name}") # 等待训练完成 training_operation.result()
- 模型训练完成后的导出配置和你原有代码一致,无需调整:
# 替换为训练完成的模型完整资源ID model_full_id = "projects/[项目ID]/locations/[区域]/models/[模型ID]" output_config = automl.ModelExportOutputConfig( gcs_destination = {"output_uri_prefix": "gs://你的GCS存储桶导出路径"}, model_format = "tflite" ) # 启动导出 export_operation = client.export_model(name=model_full_id, output_config=output_config) # 等待导出完成后即可在指定GCS路径获取tflite文件 export_operation.result()
- 如果你使用的是已经迁移到Vertex AI平台的新版AutoML服务,替换为Vertex AI Python客户端,将模型类型指定为边缘优化类即可,导出逻辑基本一致。
内容的提问来源于stack exchange,提问作者FMohrschladt
相关产品推荐
相关产品推荐

