我使用TFX管道在顶点AI平台上部署了一个tensorflow模型。该模型具有自定义的服务签名,但我在预测时不愿意指定签名。
我有完全相同的模型部署在GCP AI平台,我可以指定它。
根据顶点文档,我们必须传递一个包含实例(列表)和参数(Dict)值的字典。
我已经向这一功能提交了这些论点
instances: [{"argument_n": "value"}]
parameters: {"signature_name": "name_of_signature"}不起作用,它仍然得到模型的默认签名。
在GCP AI平台中,我能够直接预测在请求正文中指定签名名称:
response = service.projects().predict(
name=name,
body={"instances": instances,
"signature_name": "name_of_signature"},
).execute()@编辑我已经发现,使用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模型代码而言,它只有预测方法,而没有raw_predict。因此,我不知道它现在是否可以通过python获得。
发布于 2021-11-09 06:24:48
顶点AI是一个更新的平台,有局限性,将随着时间的推移而改进。“signature_name”可以像您所做的那样从RawPredictRequest或古云中添加到HTTP,但是现在这在常规预测请求中是不可用的。
使用HTTP有效负载的 :
示例:
input.json:
{
"instances": [
["male", 29.8811345124283, 26.0, 1, "S", "New York, NY", 0, 0],
["female", 48.0, 39.6, 1, "C", "London / Paris", 0, 1]],
"signature_name": <string>
}curl \
-X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json" \
https://us-central1-aiplatform.googleapis.com/v1/projects/${PROJECT_ID}/locations/us-central1/endpoints/${ENDPOINT_ID}:rawPredict \
-d "@input.json"https://stackoverflow.com/questions/69857932
复制相似问题