我已经使用了很长一段时间的预测命令在本周末开始遇到错误:
$ 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类似,但不一样。
答案 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
进行部署。