当前位置: 首页 > 知识库问答 >
问题:

GCP AI平台(统一)Python export_model失败前提条件:400不支持以“”格式导出工件

包沈义
2023-03-14

我正在使用Google Ai平台(统一)Python客户端将训练好的模型导出到Google Cloud存储桶。我遵循示例代码:export_model_sample。

该应用程序目前具有“所有者”凭据,因为我想确保这不是权限问题。但是,当我尝试执行示例代码时,我收到以下错误:

回溯(最近一次调用):文件 “/usr/local/lib/python3.8/site-packages/google/api_core/grpc_helpers.py”,第 57 行,在error_remapped_callable返回 callable_(*args, **kwargs) 文件 “/usr/local/lib/python3.8/site-packages/grpc/_channel.py”,第 923 行,在调用返回_end_unary_response_blocking(state, call, False, None) 文件 “/usr/local/lib/python3.8/site-packages/grpc/_channel.py”中,第 826 行, 在_end_unary_response_blocking引发_InactiveRpcError(状态)grpc._channel._InactiveRpcError:

上述异常是以下异常的直接原因:

Traceback(最近一次调用last): File "/app/main.py ",第667行,在response = ai platform _ model _ client . export _ model(name = name,output _ config = output _ config)File "/usr/local/lib/python 3.8/site-packages/Google/cloud/ai platform _ v1beta 1/services/model _ service/client . py ",第937行,在export _ model response = RPC(request,retry=retry,timeout=timeout,metadata,)File "/usr/local/lib/

(我省略了项目id和型号id。使用10101和123123)

我已经验证了我的输入,但一切似乎没问题:

gcs_destination_output_uri_prefix = "gs://my-bucket-vcm/model-123123123123123/tflite/2021-01-28T16:00:00.000Z/"
gcs_destination = {"output_uri_prefix": gcs_destination_output_uri_prefix}
output_config = {"artifact_destination": gcs_destination,}
name = "projects/10101010101/locations/us-central1/models/123123123123123"
response = aiplatform_model_client.export_model(name=name, output_config=output_config)
print("Long running operation:", response.operation.name)
export_model_response = response.result(timeout=300)
print("export_model_response:", export_model_response)

我也在使用最新版本的google-Cloud d-ai平台==0.4.0我试图导出的模型类型是:MOBILE_TF_LOW_LATENCY_1

我只想将模型导出到云存储桶。而不是将其部署为服务。

共有1个答案

邢灿
2023-03-14

export_model_sample缺少请求字段。您应该在< code>output_config中包含< code >“export _ format _ id”:string 。您可以在《AI Platform Unified REST API Reference》中进一步探索导出endpoint所需的必需< code>output_config字段。

可接受的export_format_id值如下:

    < li> tflite用于Android移动设备。 < li> edgetpu-tflite用于edgetpu设备。 < Li > < code > TF-saved-model saved model格式的tensorflow模型。 < Li > < code > TF-js tensor flow . js模型,可在浏览器和Node.js中使用JavaScript。 < li> core-ml用于iOS移动设备。 < li> 自定义训练由自定义代码上载或训练的模型。

代码应该看起来像这样。在这种情况下,我使用tflite作为export_format_id

from google.cloud import aiplatform

def export_model_sample(
    project: str = "your-project-id",
    model_id: str = "your-model-id",
    gcs_destination_output_uri_prefix: str = "your-bucket-destination",
    location: str = "us-central1",
    api_endpoint: str = "us-central1-aiplatform.googleapis.com",
    timeout: int = 300,
):
    # The AI Platform services require regional API endpoints.
    client_options = {"api_endpoint": api_endpoint}
    # Initialize client that will be used to create and send requests.
    # This client only needs to be created once, and can be reused for multiple requests.
    client = aiplatform.gapic.ModelServiceClient(client_options=client_options)
    output_config = {
        "export_format_id": "tflite",
        "artifact_destination": {"output_uri_prefix": gcs_destination_output_uri_prefix}
    }
    name = client.model_path(project=project, location=location, model=model_id)
    response = client.export_model(name=name, output_config=output_config)
    print("Long running operation:", response.operation.name)
    export_model_response = response.result(timeout=timeout)
    print("export_model_response:", export_model_response)

export_model_sample()

手术完成后,我得到了一个这样命名的模型:

GS://your-bucket-destination/your-model-id/TF lite/2021-01-29t 04:15:51.672336 z/model . TF lite

 类似资料:
  • 对于 OS X 系统仅有64位的二进制文档,支持的最低版本是 OS X 10.8。 对于 Windows 提供 和 (x64) 版本的二进制文件。需要注意的是 版本的 Windows 目前尚不支持. 预编译二进制文件是否能够运行,取决于其中是否包括了编译平台链接的库,所以只有 Ubuntu 12.04 可以保证正常工作,但是以下的平台也被证实可以运行 Electron的预编译版本: Fedora

  • 问题内容: 我遇到此错误: java.lang.UnsupportedOperationException:当前平台不支持桌面API 我会从Java应用程序中打开文件。我使用这种方法: 我怎么解决这个问题? 问题答案: 基本上,问题是Java桌面集成在Linux上无法很好地工作。 它旨在与Windows配合使用。某些东西可以在其他系统上运行,但是没有人真正关心为这些系统添加适当的支持。即使安装了必

  • 以下的平台是 Electron 目前支持的: OS X 对于 OS X 系统仅有64位的二进制文档,支持的最低版本是 OS X 10.8。 Windows 仅支持 Windows 7 及其以后的版本,之前的版本中是不能工作的。 对于 Windows 提供 x86 和 amd64 (x64) 版本的二进制文件。需要注意的是 ARM 版本的 Windows 目前尚不支持. Linux 预编译的 ia3

  • 问题内容: 我想安装已保存到本地驱动器的文件。我在用: 当我跑步时: 我收到以下错误: 我想知道是什么问题? 问题答案: 意味着您需要。

  • 目前 Electron 支持以下平台: macOS macOS系统版本>=10.9 仅提供64位版本的Electron. Windows Windows系统版本>=7 提供 ia32 (x86) 和 amd64 (x64) 版本的Electron. 需要注意的是 ARM 版本的 Windows 目前尚不支持。 Linux Ubuntu系统版本>=12.04,Fedora系统版本>=21,Debia

  • 下面展示了一整套开发工具和设备API在每个平台的支持情况。列出的设备API由核心插件提供,更多的API可以通过第三方插件获得。列标题展示了CLI的简写名称。 android blackberry10 ios Ubuntu wp8 (Windows Phone 8) windows (8.1, 10, Phone 8.1) cordova CLI Mac, Windows, Linux Mac, W