我开始将Machine Learning Engine API用于终端和python,发现bash API和python API之间存在一些差异:
$ gcloud ml-engine jobs list --filter='jobId:eval_*'
JOB_ID STATUS CREATED
eval_chest_frontal_golden_201903 SUCCEEDED 2019-03-12T14:35:50
... (30 other results)
和python中的
from oauth2client.client import GoogleCredentials
from googleapiclient import discovery
from googleapiclient import errors
ml = discovery.build('ml', 'v1')
request = ml.projects().jobs().list(
parent="<<<PROJECT_NAME_HERE>>>",
filter="jobId:eval_*")
response = None
try:
response = request.execute()
except errors.HttpError as err:
raise Exception("Request failed!")
print(response)
# Prints: {}
我用相同的参数查看了API资源管理器:
https://developers.google.com/apis-explorer/#p/ml/v1/ml.projects.jobs.list
我得到与python中相同的结果:{}
,但看起来URL并未转义*
中的https://.../jobs?filter=jobId%3Aeval_*&key=...
。也许那是错误。我可以在python API中解决此问题吗?
答案 0 :(得分:0)
只需弄清楚您可以改用以下过滤器:"jobId:eval_"
。如下所示:
request = ml.projects().jobs().list(
parent="<<<PROJECT_NAME_HERE>>>",
filter="jobId:eval_")
,并且具有与"jobId:eval_*"
相同的作用。
唯一的担心是Google将来会弃用该功能:
警告:--filter:为了确保各个Google API的一致性,操作员评估正在发生变化。
jobId:eval_
当前匹配,但在不久的将来将不匹配。运行gcloud topic filters
了解详情。