Sagemaker API 列出超参数

Sagemaker API to list Hyperparameters

我目前正在尝试将 MLFlow Tracking 实施到我的训练管道中,并希望记录每个训练作业的超参数调整的超参数。

有谁知道,如何拉取可以在 sagemaker 训练作业界面(在 AWS 控制台上)上看到的超参数列表?是否有任何其他更智能的方法来列出模型在 Sagemaker 中的比较表现(并显示)?

我认为必须有一种简单的 Pythonic 方法(boto3 或 sagemaker api)来获取此数据。我无法在 Cloudwatch 中找到它。

非常感谢!

SageMaker pythonSDK 中确实有一种相当 pythonic 的方式:

tuner = sagemaker.tuner.HyperparameterTuner.attach('< your tuning jobname>')

results = tuner.analytics().dataframe()  # all your tuning metadata, in pandas!

在此处查看完整示例https://github.com/aws-samples/amazon-sagemaker-tuneranalytics-samples/blob/master/SageMaker-Tuning-Job-Analytics.ipynb

要进行更多比较,请参考 Oliver_Cruchant 发布的内容。

仅使用 SageMaker Python SDK (v1.65.0+) 获取超参数:

tuner = sagemaker.tuner.HyperparameterTuner.attach('your-tuning-job-name')
job_desc = tuner.describe()
job_desc['HyperParameterRanges']  # returns a dictionary with your tunable hyperparameters
job_desc['StaticHyperParameters']  # returns a dictionary with your other hyperparameters

和 boto3:

sagemaker = boto3.client('sagemaker')
job_desc = sagemaker.describe_hyper_parameter_tuning_job(HyperParameterTuningJobName='your-tuning-job-name')
job_desc['HyperParameterRanges']  # returns a dictionary with your tunable hyperparameters
job_desc['StaticHyperParameters']  # returns a dictionary with your other hyperparameters

双向return调用DescribeHyperParameterTuningJob的结果API.

DescribeHyperParameterTuningJob API 文档:https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_DescribeHyperParameterTuningJob.html