2

我已经使用了很长一段时间的 predict 命令在本周末开始遇到错误:

$ 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 提出的其他问题相似,但不一样。

4

1 回答 1

3

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

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

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

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

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

于 2017-03-22T14:10:43.217 回答