选择您的 Cookie 首选项

我们使用必要 Cookie 和类似工具提供我们的网站和服务。我们使用性能 Cookie 收集匿名统计数据,以便我们可以了解客户如何使用我们的网站并进行改进。必要 Cookie 无法停用,但您可以单击“自定义”或“拒绝”来拒绝性能 Cookie。

如果您同意,AWS 和经批准的第三方还将使用 Cookie 提供有用的网站功能、记住您的首选项并显示相关内容,包括相关广告。要接受或拒绝所有非必要 Cookie,请单击“接受”或“拒绝”。要做出更详细的选择,请单击“自定义”。

定义指标和环境变量

聚焦模式
定义指标和环境变量 - 亚马逊 SageMaker AI

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

调优作业使用指标来评估性能,从而优化其启动的训练作业的超参数。本指南介绍如何定义指标,以便您可以使用自定义算法进行训练,或者使用 Amazon A SageMaker I 的内置算法。本指南还将介绍如何在自动模型调优 (AMT) 作业期间指定环境变量。

定义指标

Amazon SageMaker AI 超参数调整会解析您的机器学习算法stdoutstderr流,以查找指标,例如损失或验证精度。这些指标表明了模型在数据集上的表现。

以下部分将介绍如何使用两种类型的算法进行训练:内置算法和自定义算法。

使用内置算法进行训练

如果您使用 SageMaker AI 内置算法之一,则已经为您定义了指标。此外,内置算法会自动将指标发送至超参数调优以进行优化。这些指标也会写入 Amazon CloudWatch 日志。有关更多信息,请参阅使用亚马逊记录亚马逊 SageMaker AI 事件 CloudWatch

对于调优作业的目标指标,可选择内置算法发出的指标之一。有关可用指标的列表,请参阅 “使用 Amazon A SageMaker I 内置算法或预训练模型” 中的模型调整部分,了解相应算法

您可以在调优作业中选择最多 40 个指标进行监控。请选择其中一个指标作为目标指标。超参数调优作业将根据目标指标,返回性能最佳的训练作业

注意

超参数调优会自动发送一个额外的超参数 _tuning_objective_metric,将目标指标传递给调优作业,以便在训练期间使用。

使用自定义算法进行训练

本部分将介绍如何定义自己的指标,以便使用自定义算法进行训练。使用自定义算法时,请确保算法至少将一个指标写入 stderrstdout。超参数调优会解析这些流,以找到可表明模型在数据集上的表现的算法指标。

您可以通过为调优作业所监控的每个指标指定名称和正则表达式,以定义自定义指标。然后,通过 AlgorithmSpecificationMetricDefinitions 字段中的 TrainingJobDefinition 参数,将这些指标定义传递给 CreateHyperParameterTuningJob API。

以下显示了由训练算法写入 stderrstdout 的日志的示例输出。

GAN_loss=0.138318; Scaled_reg=2.654134; disc:[-0.017371,0.102429] real 93.3% gen 0.0% disc-combined=0.000000; disc_train_loss=1.374587; Loss = 16.020744; Iteration 0 took 0.704s; Elapsed=0s

以下代码示例演示了如何在 Python 中使用正则表达式。此代码用于搜索示例日志输出,并捕获四个不同指标的数字值。

[ { "Name": "ganloss", "Regex": "GAN_loss=(.*?);", }, { "Name": "disc-combined", "Regex": "disc-combined=(.*?);", }, { "Name": "discloss", "Regex": "disc_train_loss=(.*?);", }, { "Name": "loss", "Regex": "Loss = (.*?);", }, ]

在正则表达式中,圆括号 () 用于将正则表达式的各个部分组合在一起。

  • 对于代码示例中定义的 loss 指标,表达式 (.*?); 将捕获确切文本 "Loss=" 与第一个分号 (;) 字符之间的任何字符。

  • 字符 . 指示正则表达式匹配任何字符。

  • 字符 * 表示匹配零个或多个字符。

  • 字符 ? 表示仅在 ; 字符首次出现之前进行捕获。

代码示例中定义的损失指标将从示例输出中捕获 Loss = 16.020744

选择您定义的指标之一作为调优作业的目标指标。如果您使用的是 SageMaker API,请在发送给CreateHyperParameterTuningJob操作的HyperParameterTuningJobConfig参数的HyperParameterTuningJobObjective字段中指定name密钥的值。

指定环境变量

SageMaker AI AMT 在调优作业中优化超参数,以找到模型性能的最佳参数。您可以使用环境变量配置调优作业,以更改其行为。您还可以在调优作业中使用训练期间使用的环境变量。

如果要使用调优作业中的环境变量或指定新的环境变量,请在 SageMaker AI Environment 中输入字符串值 HyperParameterTrainingJobDefinitionAPI。将此训练作业定义传递给 CreateHyperParameterTuningJobAPI。

例如,可将环境变量 SM_LOG_LEVEL 设置为以下值,以定制 Python 容器的输出。

NOTSET=0 DEBUG=10 INFO=20 WARN=30 ERROR=40 CRITICAL=50

例如,要将日志级别设置为10以调试容器日志,请在内部设置环境变量 HyperParameterTrainingJobDefinition,如下所示。

{ "HyperParameterTuningJobConfig": { ..., } "TrainingJobDefinition": { ..., "Environment" : [ { "SM_LOG_LEVEL": 10 } ], ..., }, ..., }
隐私网站条款Cookie 首选项
© 2025, Amazon Web Services, Inc. 或其附属公司。保留所有权利。