云 ml 预测 FAILED_PRECONDITION 和字段 [projectsId] 的值

cloud ml predict FAILED_PRECONDITION and value for field [projectsId]

我使用了一段时间的预测命令这个周末开始遇到错误:

$ gcloud beta ml predict --model my_model --json-instances my_instance.json

WARNING: The `gcloud beta ml` commands have been renamed and will soon be removed. Please use `gcloud ml-engine` instead.
ERROR: (gcloud.beta.ml.predict) value for field [projectsId] for in collection [ml.projects.models] is required but was not provided

我不明白如何修复错误。

为了调查错误是否与即将删除的 'cloud beta ml' 命令有关,我将其替换为 'gcloud ml-engine' 但遇到此错误:

$ gcloud ml-engine predict --model my_model --json-instances my_instance.json
ERROR: (gcloud.ml-engine.predict) HTTP request failed. Response: {
  "error": {
    "code": 400,
    "message": "Precondition check failed.",
    "status": "FAILED_PRECONDITION"
  }
}

我不明白如何解决第二个错误。据推测,其根本原因与第一个错误相同。

如何获得有关修复此错误的更多详细信息?

注意:这个问题与 @jbird 提出的 相似,但并不相同。

gcloud 工具已更新,因此 ml-engine 组命令是官方支持的与服务交互的方式。 gcloud beta ml 代码路径已过时。以下应该有效:

gcloud beta ml-engine predict --model my_model --json-instances my_instance.json

(注意关键字 beta 的存在)。

使用gcloud ml-engine predict时出现400错误的原因(注意没有关键字beta)是因为你的模型不是SavedModel。在那组命令(非测试版)中,我们只支持 SavedModel。

您可以继续通过旧端点 (gcloud beta ...) 使用现有模型,但我们预计很快就会弃用该功能,因此我们建议将新模型导出为 SavedModels 并通过 [=17= 部署它们].