使用 Amazon SageMaker 自动模型调整 PlatoBlockchain 数据智能优化超参数。 垂直搜索。 人工智能。

使用 Amazon SageMaker Automatic Model Tuning 优化超参数

机器学习 (ML) 模型正在席卷全球。 他们的表现依赖于使用正确的训练数据并选择正确的模型和算法。 但它并没有就此结束。 通常,算法将一些设计决策推迟到 ML 从业者,以针对他们的特定数据和任务采用。 这些推迟的设计决策表现为 超参数.

这个名字是什么意思? ML 训练的结果,即模型,在很大程度上可以看作是在训练过程中学习的参数的集合。 因此,用于配置 ML 训练过程的参数称为超参数——描述参数创建的参数。 无论如何,它们具有非常实际的用途,例如要训练的时期数、学习率、决策树的最大深度等等。 我们非常关注它们,因为它们对模型的最终性能有重大影响。

就像转动无线电接收器上的旋钮以找到正确的频率一样,应仔细调整每个超参数以优化性能。 在超参数空间中搜索最优值称为 超参数调整 or 超参数优化 (HPO),并且应该产生一个能够给出准确预测的模型。

在本文中,我们设置并运行了第一个 HPO 作业,使用 Amazon SageMaker 自动模型调整 (AMT)。 我们了解可用于探索结果的方法,并为我们的 HPO 试验和超参数空间探索创建一些有见地的可视化效果!

Amazon SageMaker 自动模型调整

作为 ML 从业者使用 SageMaker AMT,你可以关注以下几点:

  • 提供培训工作
  • 定义与您的任务相匹配的正确目标指标
  • 确定超参数搜索空间的范围

SageMaker AMT 会处理剩下的事情,您无需考虑基础设施、编排训练作业和改进超参数选择。

让我们首先将 SageMaker AMT 用于我们的第一个简单 HPO 作业,以训练和调整 XGBoost 算法。 我们希望您的 AMT 之旅亲身实践,因此我们在下面分享了示例 GitHub存储库. 这篇文章涵盖了 1_tuning_of_builtin_xgboost.ipynb 笔记本电脑。

在即将发布的帖子中,我们将扩展仅找到最佳超参数的概念,包括了解搜索空间以及模型敏感的超参数范围。 我们还将展示如何将一次调优活动转变为与 ML 从业者的多步对话,以共同学习。 敬请期待(双关语)!

先决条件

这篇文章适用于任何有兴趣了解 HPO 的人,不需要事先了解该主题。 不过,基本熟悉 ML 概念和 Python 编程会很有帮助。 为了获得最佳的学习体验,我们强烈建议您跟随 在笔记本中运行每一步 在阅读这篇文章的同时。 在 notebook 的最后,您还可以尝试交互式可视化,使调优结果栩栩如生。

解决方案概述

我们将构建一个端到端设置,以使用 SageMaker AMT 运行我们的第一个 HPO 作业。 当我们的调整工作完成后,我们会查看一些可用于探索结果的方法,这两种方法都通过 AWS管理控制台 以及通过 AWS SDK 和 API 以编程方式。

首先,我们通过运行一个独立的训练作业来熟悉环境和 SageMaker 训练,目前没有任何调整。 我们使用 XGBoost 算法,这是作为 SageMaker 内置算法 (不需要训练脚本!)。

我们通过以下方式了解 SageMaker Training 的运作方式:

  • 启动和停止实例
  • 提供必要的容器
  • 将训练和验证数据复制到实例上
  • 运行训练
  • 收集指标和日志
  • 收集并存储经过训练的模型

然后我们转到 AMT 并运行 HPO 作业:

  • 我们使用 AMT 设置并启动调优工作
  • 我们深入研究了可用于为每个训练作业提取详细性能指标和元数据的方法,这使我们能够更多地了解超参数空间中的最佳值
  • 我们向您展示如何查看试验结果
  • 我们为您提供了在一系列图表中可视化数据的工具,这些图表揭示了对我们的超参数空间的宝贵见解

训练 SageMaker 内置 XGBoost 算法

这一切都从训练模型开始。 通过这样做,我们可以了解 SageMaker Training 的工作原理。

我们希望利用 SageMaker 提供的速度和易用性 内置算法. 我们只需要几个步骤就可以开始训练:

  1. 准备和加载数据 – 我们下载并准备我们的数据集作为 XGBoost 的输入并将其上传到我们的 亚马逊简单存储服务 (Amazon S3)存储桶。
  2. 选择我们内置算法的图像 URI – SageMaker 使用此 URI 来获取我们的训练容器,在我们的例子中,它包含一个随时可用的 XGBoost 训练脚本。 支持多种算法版本.
  3. 定义超参数 – SageMaker 提供了一个接口来定义 超参数 对于我们的内置算法。 这些与开源版本使用的超参数相同。
  4. 构建估算器 – 我们定义训练参数,例如实例类型和实例数量。
  5. 调用 fit() 函数 – 我们开始训练工作。

下图显示了这些步骤如何协同工作。

提供资料

要运行 ML 训练,我们需要提供数据。 我们通过 Amazon S3 向 SageMaker 提供训练和验证数据。

在我们的示例中,为简单起见,我们使用 SageMaker 默认存储桶来存储我们的数据。 但您可以根据自己的喜好随意自定义以下值:

sm_sess = sagemaker.session.Session([..])

BUCKET = sm_sess.default_bucket()
PREFIX = 'amt-visualize-demo'
output_path = f's3://{BUCKET}/{PREFIX}/output'

在笔记本中,我们使用公共数据集并将数据存储在本地 data 目录。 然后,我们将训练和验证数据上传到 Amazon S3。 稍后,我们还定义了指向这些位置的指针,以将它们传递给 SageMaker Training。

# acquire and prepare the data (not shown here)
# store the data locally
[..]
train_data.to_csv('data/train.csv', index=False, header=False)
valid_data.to_csv('data/valid.csv', index=False, header=False)
[..]
# upload the local files to S3
boto_sess.resource('s3').Bucket(BUCKET).Object(os.path.join(PREFIX, 'data/train/train.csv')).upload_file('data/train.csv')
boto_sess.resource('s3').Bucket(BUCKET).Object(os.path.join(PREFIX, 'data/valid/valid.csv')).upload_file('data/valid.csv')

在这篇文章中,我们将重点介绍 HPO。 为了说明,我们使用特定的数据集和任务,以便我们可以获得客观指标的测量值,然后我们使用这些指标来优化超参数的选择。 然而,对于整个帖子来说,数据和任务都不重要。 为了向您展示一个完整的画面,让我们简要描述一下我们所做的:我们训练了一个 XGBoost 模型,该模型应该将手写数字从
手写数字数据集的光学识别 [1] 通过 Scikit-learn。 XGBoost 是一种优秀的结构化数据算法,甚至可以应用于 Digits 数据集。 这些值是 8×8 图像,如下例所示
0 a
5 的网络
4.

使用 Amazon SageMaker 自动模型调整 PlatoBlockchain 数据智能优化超参数。 垂直搜索。 人工智能。

选择 XGBoost 图像 URI

选择我们的内置算法 (XGBoost) 后,我们必须检索图像 URI 并将其传递给 SageMaker 以加载到我们的训练实例中。 对于这一步,我们回顾 可用版本. 这里我们决定使用 1.5.1 版本,它提供了最新版本的算法。 根据任务的不同,机器学习从业者可以编写自己的训练脚本,例如,包括数据准备步骤。 但这在我们的案例中不是必需的。

如果您想编写自己的训练脚本,请继续关注,我们会在下一篇文章中为您介绍! 我们将向您展示如何使用您自己的自定义训练脚本运行 SageMaker 训练作业。

现在,我们需要通过指定算法、AWS 区域和版本号来获得正确的图像 URI:

xgboost_container = sagemaker.image_uris.retrieve('xgboost', region, '1.5-1')

而已。 现在我们参考了 XGBoost 算法。

定义超参数

现在我们定义我们的超参数。 这些值配置了我们的模型将如何训练,并最终影响模型如何针对我们正在测量的客观指标执行,例如我们案例中的准确性。 请注意,以下代码块不特定于 SageMaker。 我们实际上是在使用 开源版本 的 XGBoost,刚刚由 SageMaker 提供并针对它进行了优化。

尽管这些超参数中的每一个都是可配置和可调的,但客观指标 multi:softmax 由我们的数据集和我们要解决的问题类型决定。 在我们的例子中,Digits 数据集包含多个标签(对手写数字的观察可能是 0 or 1,2,3,4,5,6,7,8,9), 这意味着它是一个多类分类问题。

hyperparameters = {
    'num_class': 10,
    'max_depth': 5,
    'eta':0.2,
    'alpha': 0.2,
    'objective':'multi:softmax',
    'eval_metric':'accuracy',
    'num_round':200,
    'early_stopping_rounds': 5
}

有关其他超参数的更多信息,请参阅 XGBoost超参数.

构建估算器

我们在估计器对象上配置训练,这是 SageMaker 训练的高级接口。

接下来,我们定义要训练的实例数量、实例类型(基于 CPU 或基于 GPU)以及附加存储的大小:

estimator = sagemaker.estimator.Estimator(
    image_uri=xgboost_container, 
    hyperparameters=hyperparameters,
    role=role,
    instance_count=1, 
    instance_type='ml.m5.large', 
    volume_size=5, # 5 GB 
    output_path=output_path
)

我们现在有了开始所需的基础结构配置。 SageMaker Training 将负责其余的工作。

调用 fit() 函数

还记得我们之前上传到 Amazon S3 的数据吗? 现在我们创建对它的引用:

s3_input_train = TrainingInput(s3_data=f's3://{BUCKET}/{PREFIX}/data/train', content_type='csv')
s3_input_valid = TrainingInput(s3_data=f's3://{BUCKET}/{PREFIX}/data/valid', content_type='csv')

一个电话 fit() 开始我们的培训。 我们传递对刚刚创建的训练数据的引用,以将 SageMaker Training 指向我们的训练和验证数据:

estimator.fit({'train': s3_input_train, 'validation': s3_input_valid})

请注意,稍后要运行 HPO,我们实际上不需要调用 fit() 这里。 我们稍后只需要 HPO 的估计器对象,并且可以直接跳转到创建我们的 HPO 作业。 但是因为我们想要了解 SageMaker Training 并了解如何运行单个训练作业,所以我们在此处调用它并查看输出。

训练开始后,我们开始看到单元格下方的输出,如下面的屏幕截图所示。 输出可用 亚马逊CloudWatch 以及在本笔记本中。

黑色文本是 SageMaker 本身的日志输出,显示了训练编排所涉及的步骤,例如启动实例和加载训练图像。 蓝色文本直接从训练实例本身输出。 我们可以观察加载和解析训练数据的过程,直接从实例上运行的训练脚本中直观地看到训练进度和客观指标的提升。

Jupyter Notebook 中 fit() 函数的输出

另请注意,在输出作业结束时,会显示以秒为单位的训练持续时间和计费秒数。

最后,我们看到 SageMaker 将我们的训练模型上传到估计器对象上定义的 S3 输出路径。 该模型已准备好部署以进行推理。

在以后的帖子中,我们将创建自己的训练容器并定义要发出的训练指标。 您将看到 SageMaker 如何不知道您将哪个容器传递给它进行训练。 当您想使用内置算法快速入门,但随后又决定传递您自己的自定义训练脚本时,这非常方便!

检查当前和以前的培训工作

到目前为止,我们已经使用我们的代码在笔记本上工作,并将训练作业提交给 SageMaker。 让我们换个角度,暂时离开笔记本,看看它在 SageMaker 控制台上的样子。

SageMaker 训练作业的控制台视图

SageMaker 保留其运行的训练作业的历史记录,以及它们的配置,例如超参数、算法、数据输入、计费时间和结果。 在前面屏幕截图的列表中,您会看到为 XGBoost 过滤的最新训练作业。 突出显示的训练作业是我们刚刚在笔记本中训练的作业,您之前看到了它的输出。 让我们深入研究这个单独的培训工作以获取更多信息。

以下屏幕截图显示了我们训练作业的控制台视图。

单个 SageMaker 训练作业的控制台视图

我们可以查看我们收到的作为单元格输出到我们的信息 fit() 在 SageMaker 控制台中的单个训练作业中发挥作用,以及我们在估算器中定义的参数和元数据。

回想一下我们之前看到的训练实例的日志输出。 我们也可以在这里访问训练作业的日志,方法是滚动到 显示器 部分和选择 查看日志.

训练作业中监控选项卡的控制台视图

这向我们展示了 CloudWatch 中的实例日志。

CloudWatch 中训练实例日志的控制台视图

还要记住我们在笔记本中为训练作业指定的超参数。 我们也在训练作业的相同 UI 中看到它们。

SageMaker 训练作业超参数的控制台视图

事实上,我们之前为训练作业和估算器指定的详细信息和元数据可以在 SageMaker 控制台的此页面上找到。 我们有用于训练的设置的有用记录,例如使用的训练容器以及训练和验证数据集的位置。

此时您可能会问,为什么这与超参数优化相关? 这是因为您可以搜索、检查和深入研究我们感兴趣的那些 HPO 试验。可能是结果最好的,或者表现出有趣行为的。 我们将把您定义为“有趣”的内容留给您。 它为我们提供了一个通用界面来检查我们的训练作业,您可以将它与 SageMaker Search 一起使用。

尽管 SageMaker AMT 编排了 HPO 作业,但 HPO 试验都是作为单独的 SageMaker 培训作业启动的,并且可以这样访问。

完成培训后,让我们开始调整吧!

训练和调整 SageMaker 内置 XGBoost 算法

为了调整我们的 XGBoost 模型,我们将重用现有的超参数并定义我们想要为它们探索的值范围。 将此视为在我们的超参数搜索空间内扩展探索边界。 我们的调整工作将从搜索空间中抽样,并为新的值​​组合运行训练工作。 以下代码显示如何指定 SageMaker AMT 应从中采样的超参数范围:

from sagemaker.tuner import IntegerParameter, ContinuousParameter, HyperparameterTuner

hpt_ranges = {
    'alpha': ContinuousParameter(0.01, .5),
    'eta': ContinuousParameter(0.1, .5),
    'min_child_weight': ContinuousParameter(0., 2.),
    'max_depth': IntegerParameter(1, 10)
}

单个超参数的范围由它们的类型指定,例如 连续参数. 有关选择这些参数范围的更多信息和提示,请参阅 调整 XGBoost 模型.

我们还没有进行任何实验,所以我们不知道超参数的最佳值范围。 因此,我们从有根据的猜测开始,使用我们的算法知识和内置算法的超参数文档。 这定义了定义搜索空间的起点。

然后我们从定义范围内的超参数运行调优作业采样。 结果,我们可以看到哪些超参数范围产生了良好的结果。 有了这些知识,我们可以通过缩小或扩大要使用的超参数范围来细化搜索空间的边界。 我们将在下一节也是最后一节中展示如何从试验中学习,我们将在其中调查和可视化结果。

在我们的下一篇文章中,我们将继续我们的旅程并深入探讨。 此外,我们还将了解到可以使用多种策略来探索我们的搜索空间。 我们将运行后续的 HPO 作业来为我们的超参数找到更高效的值,同时比较这些不同的策略。 我们还将了解如何使用 SageMaker AMT 运行热启动,以在我们探索超出这些初始边界的过程中使用从先前探索的搜索空间中获得的知识。

对于这篇文章,我们重点介绍如何使用贝叶斯搜索策略分析和可视化单个 HPO 作业的结果,这可能是一个很好的起点。

如果您按照链接的笔记本进行操作,请注意我们传递了用于单个内置 XGBoost 训练作业的相同估计器。 此估算器对象充当 AMT 创建的新训练作业的模板。 然后 AMT 将在我们定义的范围内改变超参数。

通过指定我们想要最大化我们的目标指标, validation:accuracy,我们告诉 SageMaker AMT 在训练实例日志中查找这些指标,并选择它认为会最大化我们验证数据的准确性指标的超参数值。 我们选择了合适的 XGBoost 的客观指标 从我们的文档中。

此外,我们可以利用并行化 max_parallel_jobs. 这可能是一个强大的工具,特别是对于那些独立选择试验而不考虑(从中学习)以前试验的结果的策略。 我们将在下一篇文章中进一步探讨这些其他策略和参数。 对于这篇文章,我们使用贝叶斯,这是一个很好的默认策略。

我们还定义 max_jobs 定义总共运行多少次试验。 随意偏离我们的示例并使用较小的数字来省钱。

n_jobs = 50
n_parallel_jobs = 3

tuner_parameters = {
    'estimator': estimator, # The same estimator object we defined above
    'base_tuning_job_name': 'bayesian',
    'objective_metric_name': 'validation:accuracy',
    'objective_type': 'Maximize',
    'hyperparameter_ranges': hpt_ranges,
    'strategy': 'Bayesian',
    'max_jobs': n_jobs,
    'max_parallel_jobs': n_parallel_jobs
}

我们再次呼吁 fit(),与我们在帖子前面启动单个训练作业时的方式相同。 但这次是针对调谐器对象,而不是估算器对象。 这会启动调优工作,而 AMT 又会开始训练工作。

tuner = HyperparameterTuner(**tuner_parameters)
tuner.fit({'train': s3_input_train, 'validation': s3_input_valid}, wait=False)
tuner_name = tuner.describe()['HyperParameterTuningJobName']
print(f'tuning job submitted: {tuner_name}.')

下图通过将 HPO 包含在 SageMaker AMT 中扩展了我们之前的架构。

使用 SageMaker AMT 进行 SageMaker 训练和超参数优化的概述

我们看到我们的 HPO 工作已经提交。 取决于试验次数,定义为 n_jobs 和并行化水平,这可能需要一些时间。 对于我们的示例,仅并行化级别为 30 的 50 次试验最多可能需要 3 分钟。

tuning job submitted: bayesian-221102-2053.

完成此调优作业后,让我们探索 SageMaker 控制台上可用的信息。

在控制台上调查 AMT 作业

让我们通过选择在 SageMaker 控制台上找到我们的调整工作 产品培训 在导航窗格中,然后 超参数调整作业. 这为我们提供了 AMT 作业列表,如以下屏幕截图所示。 在这里我们找到我们的 bayesian-221102-2053 调整工作,发现它现在已经完成了。

超参数调整作业页面的控制台视图。 图像显示调优作业的列表视图,包含我们的 1 个调优条目

让我们仔细看看这个 HPO 作业的结果。

我们探索了以编程方式提取结果 笔记本. 首先通过 SageMaker Python 开发工具包,这是一个更高级别的开源 Python 库,为 SageMaker 提供专用 API。 然后通过 博托3,它为我们提供了 SageMaker 和其他 AWS 服务的低级 API。

使用 SageMaker Python SDK,我们可以获得 HPO 作业的结果:

sagemaker.HyperparameterTuningJobAnalytics(tuner_name).dataframe()[:10]

这使我们能够在 Pandas DataFrame 中分析每个试验的结果,如以下屏幕截图所示。

Jupyter Notebook 中的 Pandas 表显示了为我们的 HPO 作业运行的跟踪结果和元数据

现在让我们再次切换视角,看看 SageMaker 控制台上的结果是什么样子的。 然后我们将查看我们的自定义可视化。

在同一页面上,选择我们的 bayesian-221102-2053 调整工作为我们提供了为我们的调整工作运行的试验列表。 这里的每个 HPO 试验都是一个 SageMaker 训练作业。 回想一下我们之前训练单个 XGBoost 模型并在 SageMaker 控制台中调查训练作业的情况。 我们可以在这里为我们的试验做同样的事情。

当我们调查我们的试验时,我们看到 bayesian-221102-2053-048-b59ec7b4 创建了性能最佳的模型,验证准确率约为 89.815%。 让我们通过选择 最佳培训工作 标签。

单个调优作业的控制台视图,显示运行的训练作业列表

我们可以看到评估的最佳超参数的详细视图。

单个调优作业的控制台视图,显示最佳训练作业的详细信息

我们可以立即看到是什么超参数值导致了这种卓越的性能。 然而,我们想知道更多。 你能猜出是什么吗? 我们看到 alpha 取 0.052456 的近似值,同样, eta 设置为 0.433495。 这告诉我们这些值运行良好,但它告诉我们关于超参数空间本身的信息很少。 例如,我们可能想知道 0.433495 是否 eta 是测试的最高值,或者通过选择更高的值是否有增长和模型改进的空间。

为此,我们需要缩小范围,并采取更广泛的视角来查看我们的超参数的其他值的执行情况。 一次查看大量数据的一种方法是将 HPO 试验中的超参数值绘制在图表上。 这样我们就可以看到这些值的相对表现。 在下一节中,我们将从 SageMaker 中提取这些数据并将其可视化。

可视化我们的试验

SageMaker SDK 为我们的探索提供了数据,笔记本可以让您一窥这些数据。 但是有很多方法可以利用和可视化它。 在这篇文章中,我们使用 牵牛星 统计可视化库,我们用它来生成更直观的试验概览。 这些被发现在 amtviz 包,我们作为示例的一部分提供:

from amtviz import visualize_tuning_job
visualize_tuning_job(tuner, trials_only=True)

在绘制我们试验的验证准确性(y 轴)随时间(x 轴)的变化曲线时,这些可视化的力量会立即显现出来。 下图左侧显示了一段时间内的验证准确性。 随着时间的推移,我们可以清楚地看到模型性能随着我们运行更多的试验而提高。 这是使用贝叶斯策略运行 HPO 的直接预期结果。 在我们的下一篇文章中,我们将看到这与其他策略的比较,并观察到并非所有策略都需要如此。

显示 HPO 轨迹的两张图表。 左图显示了一段时间内的验证准确性。 右图显示了验证精度值的密度图

在回顾了一段时间内的整体进展之后,现在让我们看看我们的超参数空间。

以下图表显示了 y 轴上的验证准确性,每个图表显示 max_depth, alpha, etamin_child_weight 分别在 x 轴上。 我们已将整个 HPO 工作绘制到每个图表中。 每个点都是一次试验,每个图表都包含所有 50 个试验,但每个超参数都是分开的。 这意味着我们表现最好的试验 #48 在每个图表中都由一个蓝点表示(我们已在下图中为您突出显示)。 我们可以直观地比较其在所有其他 49 项试验中的表现。 那么,让我们仔细看看。

迷人! 我们立即看到超参数空间中定义范围的哪些区域性能最高! 回想我们的 eta 值,现在很明显,接近 0 的采样值会产生较差的性能,而靠近我们的边界 0.5 会产生更好的结果。 反过来似乎是正确的 alphamax_depth 似乎有一组更有限的首选值。 看着 max_depth,您还可以看到使用贝叶斯策略如何指示 SageMaker AMT 更频繁地对它学习到的值进行采样,这些值在过去运作良好。

四个图表在 y 轴上显示验证准确性,每个图表分别在 x 轴上显示 max_depth、alpha、eta、min_child_weight。 每个数据点代表一个 HPO 试验

看着我们的 eta 值,我们可能想知道是否值得向右探索更多,也许超过 0.45? 它会继续下降以降低准确性,还是我们需要更多数据? 这种疑惑是我们运行第一个 HPO 作业的目的之一。 它为我们提供了关于我们应该进一步探索超参数空间的哪些领域的见解。

如果您渴望了解更多,并且像我们一样对这个主题的介绍感到兴奋,请继续关注我们的下一篇文章,我们将在下一篇文章中更多地讨论不同的 HPO 策略,将它们相互比较,以及使用我们自己的 Python 脚本练习训练。

清理

为避免在完成 HPO 试验后产生不必要的费用,您必须删除 S3 存储桶中前缀为 amt-visualize-demo 并且 关闭 Studio 资源.

在您的笔记本中运行以下代码以从这篇文章中删除所有 S3 文件。

!aws s3 rm s3://{BUCKET}/amt-visualize-demo --recursive

如果您希望保留数据集或模型工件,您可以将代码中的前缀修改为 amt-visualize-demo/data 仅删除数据或 amt-visualize-demo/output 仅删除模型工件。

结论

在本文中,我们使用 XGBoost 算法的 SageMaker 内置版本训练和调整了一个模型。 通过将 HPO 与 SageMaker AMT 结合使用,我们了解了适用于该特定算法和数据集的超参数。

我们看到了几种检查超参数调整工作结果的方法。 从提取最佳试验的超参数开始,我们还学习了如何更深入地了解我们的试验是如何随着时间的推移取得进展的,以及哪些超参数值是有影响的。

通过使用 SageMaker 控制台,我们还看到了如何更深入地研究各个训练运行并查看它们的日志。

然后我们缩小以一起查看我们所有的试验,并审查它们与其他试验和超参数相关的性能。

我们了解到,根据每次试验的观察结果,我们能够浏览超参数空间,以了解超参数值的微小变化会对我们的模型性能产生巨大影响。 借助 SageMaker AMT,我们可以运行超参数优化以高效地找到好的超参数值并最大限度地提高模型性能。

将来,我们将研究 SageMaker AMT 提供的不同 HPO 策略以及如何使用我们自己的自定义训练代码。 如果您有任何问题或想建议我们应该在即将发布的帖子中涵盖的领域,请在评论中告诉我们。

在此之前,我们希望您和您的模型能够愉快地学习和调整!

参考资料

引文:

[1] Dua,D.和Graff,C.(2019年)。 UCI机器学习存储库[http://archive.ics.uci.edu/ml]。 加州尔湾市:加利福尼亚大学信息与计算机科学学院。


关于作者

使用 Amazon SageMaker 自动模型调整 PlatoBlockchain 数据智能优化超参数。 垂直搜索。 人工智能。安德鲁·埃鲁尔 是 Amazon Web Services 的解决方案架构师。 他与德国的中小企业合作。 工作之余,安德鲁喜欢步行或骑自行车探索大自然。

使用 Amazon SageMaker 自动模型调整 PlatoBlockchain 数据智能优化超参数。 垂直搜索。 人工智能。埃琳娜·莱西克 是位于慕尼黑的解决方案架构师。 她专注于金融服务行业的企业客户。 在空闲时间,Elina 喜欢用西班牙语学习吉他理论以交叉学习和跑步。

使用 Amazon SageMaker 自动模型调整 PlatoBlockchain 数据智能优化超参数。 垂直搜索。 人工智能。马里亚诺坎普 是 Amazon Web Services 的首席解决方案架构师。 他与德国的金融服务客户一起从事机器学习方面的工作。 在业余时间,马里亚诺喜欢和妻子一起徒步旅行。

时间戳记:

更多来自 AWS机器学习