Как изменить порог прогнозирования с помощью Google AutoML? - PullRequest
0 голосов
/ 12 апреля 2019

После создания модели в Google AutoML мы можем использовать предоставленный код Python, чтобы сделать прогноз. Вот код:

import sys

from google.cloud import automl_v1beta1
from google.cloud.automl_v1beta1.proto import service_pb2


def get_prediction(content, project_id, model_id):
  prediction_client = automl_v1beta1.PredictionServiceClient()

  name = 'projects/{}/locations/us-central1/models/{}'.format(project_id, model_id)
  payload = {'image': {'image_bytes': content }}
  params = {}
  request = prediction_client.predict(name, payload, params)
  return request  # waits till request is returned

if __name__ == '__main__':
  file_path = sys.argv[1]
  project_id = sys.argv[2]
  model_id = sys.argv[3]

  with open(file_path, 'rb') as ff:
    content = ff.read()

  print get_prediction(content, project_id,  model_id)

Я понимаю, что будет распечатан только результат обнаружения с оценкой выше порога value = 0.5. Пример вывода:

payload {
  classification {
    score: 0.562688529491
  }
  display_name: "dog"
}

Как распечатать другие результаты обнаружения, которые имеют оценку ниже порогового значения 0,5 (например, изменить пороговое значение на 0,3)?

1 Ответ

1 голос
/ 12 апреля 2019

См. Документацию API здесь

params

Объект со строковыми свойствами

Дополнительные доменные параметры, любая строка должна бытьдлиной до 25000 символов.

Для классификации изображений:

score_threshold - (float) Значение от 0,0 до 1,0.Когда модель делает прогнозы для изображения, она будет давать только результаты, которые имеют по крайней мере этот порог доверительной вероятности.По умолчанию используется значение 0,5.

Фактическое описание поля в прото:

map<string,string> params;

Таким образом, вы бы изменили переменную params, которую вы установили, на пустой dict.Измените переменную params на: params = {"score_threshold": "0.3"} будет работать.

...