Как получить все метрики для задания настройки гиперпараметра SageMaker? - PullRequest
0 голосов
/ 16 октября 2018

SageMaker предлагает объект HyperparameterTuningJobAnalytics, но он содержит только конечное значение целевой метрики.

Вот пример кода.

tuner = sagemaker.HyperparameterTuningJobAnalytics(tuning_job_name)

full_df = tuner.dataframe()

Возвращаемый им фрейм данных содержит только метрику цели в качестве столбца FinalObjectiveValue.

Если я определил более одной метрики длянастройка работы, как мне получить другие метрики в SageMaker?

1 Ответ

0 голосов
/ 04 июня 2019

Вы можете получить все метрики, которые вы настроили для своей работы, используя describe_training_job.Вот пример использования boto3:

Создание клиента SageMaker:

smclient = boto3.client('sagemaker')

Получение списка всех обучающих заданий (обратите внимание на пример параметров здесь - только последние 100 заданий, отсортированные поконечная целевая метрика в порядке убывания):

trjobs = smclient.list_training_jobs_for_hyper_parameter_tuning_job(
    HyperParameterTuningJobName='YOUR_TUNING_JOB_NAME_HERE',
    MaxResults=100,
    SortBy='FinalObjectiveMetricValue',
    SortOrder='Descending')

Итерировать по каждому заданию и получать все метрики:

for trjob in trjobs['TrainingJobSummaries']:
    jobd = smclient.describe_training_job(TrainingJobName=trjob['TrainingJobName'])
    metrics = {m['MetricName']:  m['Value'] for m in jobd['FinalMetricDataList']}
    print '%s Metrics: %s' % (trjob['TrainingJobName'], metrics)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...