API Google Machine Learning Engine v1 не работает с фильтром jobId: rnn * - PullRequest
1 голос
/ 13 марта 2019

Я начал использовать API машинного обучения для терминала и Python и обнаружил некоторые несоответствия между API bash и API Python:

$ 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)

и в питоне:

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?

1 Ответ

0 голосов
/ 05 апреля 2019

Только что понял, что вы можете использовать этот фильтр вместо: "jobId:eval_".Как показано ниже:

request = ml.projects().jobs().list(
  parent="<<<PROJECT_NAME_HERE>>>",
  filter="jobId:eval_")

и имеет тот же эффект, что и "jobId:eval_*".

Единственное беспокойство заключается в том, что Google в будущем откажется от этой функции:

ВНИМАНИЕ: --filter: оценка оператора меняется для согласованности по API Google.jobId:eval_ в настоящее время соответствует, но не будет соответствовать в ближайшем будущем.Запустите gcloud topic filters для получения подробной информации.

...