cloud ml预测FAILED_PRECONDITION和字段值[projectsId]

时间:2017-03-21 18:14:06

标签: google-cloud-ml google-cloud-ml-engine

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

$ 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

我不明白如何修复错误。

要调查该错误是否与即将被删除的云测试版“ml 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提出的other question类似,但不一样。

1 个答案:

答案 0 :(得分:3)

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。在那组命令(非beta)中,我们只支持SavedModel。

您可以通过旧端点(gcloud beta ...)继续使用现有模型,但我们希望尽快弃用该功能,因此我们建议将新模型导出为SavedModel并通过gcloud ml-engine进行部署。