我已经使用 TFX Pipelines 在顶点 AI 平台中部署了一个 tensorflow 模型。该模型具有自定义服务签名,但我在预测时很难指定签名。
我在 GCP AI Platform 中部署了完全相同的模型,并且可以指定它。
根据顶点文档,我们必须传递一个包含实例(列表)和参数(字典)值的字典。
我已将这些参数提交给此函数:
instances: [{"argument_n": "value"}]
parameters: {"signature_name": "name_of_signature"}
不起作用,它仍然获得模型的默认签名。
在 GCP AI Platform 中,我已经能够预测直接在请求正文中指定签名名称:
response = service.projects().predict(
name=name,
body={"instances": instances,
"signature_name": "name_of_signature"},
).execute()
@EDIT 我发现使用 gcloud 的rawPredict 方法可以工作。
这是一个例子:
!gcloud ai endpoints raw-predict {endpoint} --region=us-central1 \
--request='{"signature_name":"name_of_the_signature", \
"instances": [{"instance_0": ["value_0"], "instance_1": ["value_1"]}]}'
不幸的是,查看google api 模型代码它只有 predict 方法,而不是 raw_predict。所以我不知道它现在是否可以通过 python sdk 获得。