【问题标题】:How to get all metrics for a SageMaker Hyperparameter tuning job?如何获取 SageMaker 超参数调整作业的所有指标?
【发布时间】:2019-03-21 03:10:20
【问题描述】:

SageMaker 确实提供了 HyperparameterTuningJobAnalytics 对象,但它只包含最终的客观指标值。

这里是示例代码。

tuner = sagemaker.HyperparameterTuningJobAnalytics(tuning_job_name)

full_df = tuner.dataframe()

它返回的数据框仅包含作为列 FinalObjectiveValue 的客观指标。

如果我为调优作业定义了多个指标,如何在 SageMaker 中获取其他指标?

【问题讨论】:

    标签: amazon-web-services amazon-sagemaker hyperparameters


    【解决方案1】:

    您可以使用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)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-06-19
      • 1970-01-01
      • 2021-02-11
      • 1970-01-01
      • 2022-08-19
      • 2021-06-08
      • 2021-04-05
      • 1970-01-01
      相关资源
      最近更新 更多