调试器内置规则列表 - Amazon SageMaker
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 Amazon Web Services 服务入门

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

调试器内置规则列表

使用 Amazon SageMaker 调试程序提供的调试程序内置规则,并分析在训练模型时发出的张量。调试程序内置规则监控对训练作业的成功至关重要的各种常见条件。您可以使用Amazon SageMaker Python 开发工具包或低级别 SageMaker API 操作。根据您选择的深度学习框架,内置规则有四个有效性范围,如下表所示。

注意

训练作业的内置规则最多为 20 个ProfilerRule20 用于Rule. SageMaker 调试器完全管理内置规则,并并行分析您的训练工作。有关计费的更多信息,请参阅Amazon SageMaker 工作室不收取费用的 部分Amazon SageMaker 定价页.

重要

要使用新的调试器功能,您需要升级 SageMaker Python SDK 和 SMDebug 客户端库。在 IPython 内核、Jupyter 笔记本或 JupyterLab 环境中,运行以下代码以安装最新版本的库并重新启动内核。

import sys import IPython !{sys.executable} -m pip install -U sagemaker smdebug IPython.Application.instance().kernel.do_shutdown(True)

调试程序配置文件规则

以下规则是调试器内置规则,这些规则可以使用ProfilerRule.sagemaker类方法。

调试程序生成分析报告的内置规则
有效性范围 内置规则
任何 SageMaker 培训作业的分析报告
调试器用于监视硬件系统资源利用率的内置规则(系统度量)
有效性范围 内置规则
适用于任何 SageMaker 培训作业的通用系统监控规则
调试程序内置规则,用于分析框架指标
有效性范围 内置规则
深度学习框架的分析规则(TensorFlow 和 PyTorch)

调试程序规则

以下规则是调试器内置规则,这些规则可以使用Rule.sagemaker类方法。

调试程序生成训练报告的内置规则
有效性范围 内置规则
SageMaker XGBoost 培训工作的培训报告
调试器内置规则用于调试模型训练数据(输出张量)
有效性范围 内置规则
深度学习框架(TensorFlow、MXNet 和 PyTorch)
深度学习框架(TensorFlow、MXNet 和 PyTorch)和 XGBoost 算法
深度学习应用程序
XGBoost 算法

使用带有默认参数值的内置规则— 采用以下配置格式:

from sagemaker.debugger import Rule, ProfilerRule, rule_configs rules = [ ProfilerRule.sagemaker(rule_configs.BuiltInRuleName_1()), ProfilerRule.sagemaker(rule_configs.BuiltInRuleName_2()), ... ProfilerRule.sagemaker(rule_configs.BuiltInRuleName_n()), Rule.sagemaker(rule_configs.built_in_rule_name_1()), Rule.sagemaker(rule_configs.built_in_rule_name_2()), ... Rule.sagemaker(rule_configs.built_in_rule_name_n()) ]

使用内置规则来自定义参数值— 采用以下配置格式:

from sagemaker.debugger import Rule, ProfilerRule, rule_configs rules = [ ProfilerRule.sagemaker( base_config=rule_configs.BuiltInRuleName(), rule_parameters={ "key": "value" } ) Rule.sagemaker( base_config=rule_configs.built_in_rule_name(), rule_parameters={ "key": "value" } collections_to_save=[ CollectionConfig( name="tensor_collection_name", parameters={ "key": "value" } ) ] ) ]

要查找可用的密钥rule_parameters参数,请参阅参数描述表。

参数描述表下面的每个内置规则都提供了示例规则配置代码。

ProfilerReport

ProfilerReport 规则将调用监控和分析的所有内置规则。它会创建一个性能分析报告,并在触发单个规则时进行更新。您可以在培训作业正在运行或培训作业完成后下载综合性分析报告。您可以调整规则参数值以自定义内置监视和分析规则的敏感度。以下示例代码显示了通过 ProfilerReport 规则调整内置规则参数的基本格式。

rules=[ ProfilerRule.sagemaker( rule_configs.ProfilerReport( <BuiltInRuleName>_<parameter_name> = value ) ) ]

如果在没有任何自定义参数的情况下触发此 ProfilerReport 规则(如以下示例代码所示),则 ProfilerReport 规则将触发所有内置规则,以便使用其默认参数值进行监视和分析。

rules=[ProfilerRule.sagemaker(rule_configs.ProfilerReport())]

以下示例代码说明了如何指定和调整 CPUBetleNeck 规则的cpu_threshold参数和 IoT 瓶颈规则的threshold参数。

rules=[ ProfilerRule.sagemaker( rule_configs.ProfilerReport( CPUBottleneck_cpu_threshold = 90, IOBottleneck_threshold = 90 ) ) ]

整体系统集合规则的参数描述
参数名称 描述
base_trial

试验训练任务名称。Amazon SageMaker 调试器会自动将此参数设置为当前培训作业。

必填

有效值:String

<BuiltInRuleName>_<parameter_name>

可自定义参数,用于调整其他内置监控和分析规则的阈值。

可选

默认值:None

BatchSize

BatchSize 规则有助于检测 GPU 是否由于批量小而未充分利用。若要检测此问题,此规则会监视平均 CPU 利用率、GPU 利用率和 GPU 内存利用率。如果 CPU、GPU 和 GPU 内存的平均利用率较低,则可能表明训练作业可以在较小的实例类型上运行,也可以使用更大的批处理大小运行。此分析不适用于严重过度分配内存的框架。但是,增加批处理大小可能会导致处理或数据加载瓶颈,因为每次迭代都需要更多的数据预处理时间。

BatchSize 规则的参数描述
参数名称 描述
base_trial

试验训练任务名称。Amazon SageMaker 调试器会自动将此参数设置为当前培训作业。

必填

有效值:String

cpu_threshold_p95

以百分比为单位的 CPU 利用率定义第 95 分位数的阈值。

可选

有效值:整数

默认值:70(百分比)

gpu_threshold_p95

定义以百分比为单位的 GPU 利用率第 95 分位数的阈值。

可选

有效值:整数

默认值:70(百分比)

gpu_memory_threshold_p95

定义第 95 分位 GPU 内存利用率的阈值(以百分比为单位)。

可选

有效值:整数

默认值:70(百分比)

patience

定义规则开始评估之前要跳过的数据点数。培训作业的前几个步骤通常显示大量的数据流程,因此请保持规则耐心,并防止使用您使用此参数指定的给定数量的分析数据过快调用该规则。

可选

有效值:整数

默认值:100

window

计算分位数的窗口大小。

可选

有效值:整数

默认值:500

scan_interval_us

扫描时间轴文件的时间间隔。

可选

有效值:整数

默认值:60000000(以微秒为单位)

CPUBottleneck

CPU 瓶颈规则有助于检测 GPU 是否由于 CPU 瓶颈而未充分利用。如果 CPU 瓶颈数超过预定义阈值,则规则返回 True。

CPU 瓶颈规则的参数描述
参数名称 描述
base_trial

试验训练任务名称。Amazon SageMaker 调试器会自动将此参数设置为当前培训作业。

必填

有效值:String

threshold

定义瓶颈时间与总训练时间的比例阈值。如果比例超过了为阈值参数指定的百分比,则规则将规则状态切换为 True。

可选

有效值:整数

默认值:50(百分比)

gpu_threshold

定义低 GPU 利用率的阈值。

可选

有效值:整数

默认值:10(百分比)

cpu_threshold

定义高 CPU 利用率的阈值。

可选

有效值:整数

默认值:90(百分比)

patience

定义规则开始评估之前要跳过的数据点数。培训作业的前几个步骤通常显示大量的数据流程,因此请保持规则耐心,并防止使用您使用此参数指定的给定数量的分析数据过快调用该规则。

可选

有效值:整数

默认值:100

scan_interval_us

扫描时间轴文件的时间间隔。

可选

有效值:整数

默认值:60000000(以微秒为单位)

GPUMemoryIncrease

GPU 内存增加规则有助于检测 GPU 上的内存使用量大幅增加。

GPUE 规则的参数描述
参数名称 描述
base_trial

试验训练任务名称。Amazon SageMaker 调试器会自动将此参数设置为当前培训作业。

必填

有效值:String

increase

定义绝对内存增加的阈值。

可选

有效值:整数

默认值:10(百分比)

patience

定义规则开始评估之前要跳过的数据点数。培训作业的前几个步骤通常显示大量的数据流程,因此请保持规则耐心,并防止使用您使用此参数指定的给定数量的分析数据过快调用该规则。

可选

有效值:整数

默认值:100

window

计算分位数的窗口大小。

可选

有效值:整数

默认值:500

scan_interval_us

扫描时间轴文件的时间间隔。

可选

有效值:整数

默认值:60000000(以微秒为单位)

IOBottleneck

此规则有助于检测 GPU 是否由于数据 IO 瓶颈而未充分利用。如果 IO 瓶颈数超过预定义阈值,则规则返回 True。

IoWaker 规则的参数描述
参数名称 描述
base_trial

试验训练任务名称。Amazon SageMaker 调试器会自动将此参数设置为当前培训作业。

必填

有效值:String

threshold 定义规则返回 True 时的阈值。

可选

有效值:整数

默认值:50(百分比)

gpu_threshold

定义 GPU 何时被视为未充分利用的阈值。

可选

有效值:整数

默认值:70(百分比)

io_threshold 定义高 IO 等待时间的阈值。

可选

有效值:整数

默认值:50(百分比)

patience 定义规则开始评估之前要跳过的数据点数。培训作业的前几个步骤通常显示大量的数据流程,因此请保持规则耐心,并防止使用您使用此参数指定的给定数量的分析数据过快调用该规则。

可选

有效值:整数

默认值:1000

scan_interval_us

扫描时间轴文件的时间间隔。

可选

有效值:整数

默认值:60000000(以微秒为单位)

LoadBalancing

负载平衡规则有助于检测多个 GPU 之间的工作负载平衡问题。

负载平衡规则的参数描述
参数名称 描述
base_trial

试验训练任务名称。Amazon SageMaker 调试器会自动将此参数设置为当前培训作业。

必填

有效值:String

threshold

定义工作负载百分比。

可选

有效值:整数

默认值:0.5(无单位比例)

patience

定义规则开始评估之前要跳过的数据点数。培训作业的前几个步骤通常显示大量的数据流程,因此请保持规则耐心,并防止使用您使用此参数指定的给定数量的分析数据过快调用该规则。

可选

有效值:整数

默认值:10

scan_interval_us

扫描时间轴文件的时间间隔。

可选

有效值:整数

默认值:60000000(以微秒为单位)

LowGPUUtilization

低 GPU 利用率规则有助于检测 GPU 利用率是低还是受波动影响。为每个工作线程上的每个 GPU 检查此选项。如果 95 分位数低于阈值 _p95,则规则返回 True,表示利用不足。如果 95 分位数高于阈值 _p95 且第 5 分位数低于阈值 _p5,则规则返回 true,这表示波动。

低 PUP 利用率规则的参数描述
参数名称 描述
base_trial

试验训练任务名称。Amazon SageMaker 调试器会自动将此参数设置为当前培训作业。

必填

有效值:String

threshold_p95

95 分位数的阈值,低于该阈值的 GPU 将被视为未充分利用。

可选

有效值:整数

默认值:70(百分比)

threshold_p5 第五分位数的阈值。默认值为 10%。

可选

有效值:整数

默认值:10(百分比)

patience

定义规则开始评估之前要跳过的数据点数。培训作业的前几个步骤通常显示大量的数据流程,因此请保持规则耐心,并防止使用您使用此参数指定的给定数量的分析数据过快调用该规则。

可选

有效值:整数

默认值:1000

window

计算分位数的窗口大小。

可选

有效值:整数

默认值:500

scan_interval_us

扫描时间轴文件的时间间隔。

可选

有效值:整数

默认值:60000000(以微秒为单位)

OverallSystemUsage

整体系统组件规则衡量每个工作线程节点的整体系统使用情况。该规则目前仅聚合每个节点的值并计算其百分位数。

整体系统集合规则的参数描述
参数名称 描述
base_trial

试验训练任务名称。Amazon SageMaker 调试器会自动将此参数设置为当前培训作业。

必填

有效值:String

scan_interval_us

扫描时间轴文件的时间间隔。

可选

有效值:整数

默认值:60000000(以微秒为单位)

MaxInitializationTime

最大初始化时间规则有助于检测训练初始化是否花费太多时间。该规则将等待,直到第一步可用。

最大初始化时间规则的参数描述
参数名称 描述
base_trial

试验训练任务名称。Amazon SageMaker 调试器会自动将此参数设置为当前培训作业。

必填

有效值:String

threshold

定义以分钟为单位的阈值,以等待第一步变为可用。

可选

有效值:整数

默认值:20(以分钟为单位)

scan_interval_us

扫描时间轴文件的时间间隔。

可选

有效值:整数

默认值:60000000(以微秒为单位)

OverallFrameworkMetrics

OverAllFrameWorkMetrics 规则汇总了在框架度量上所花费的时间,例如向前和向后传递以及数据加载。

OverForge Forge 规则的参数描述
参数名称 描述
base_trial

试验训练任务名称。Amazon SageMaker 调试器会自动将此参数设置为当前培训作业。

必填

有效值:String

scan_interval_us

扫描时间轴文件的时间间隔。

可选

有效值:整数

默认值:60000000(以微秒为单位)

StepOutlier

步进值规则有助于检测步长持续时间中的异常值。此规则返回True如果有异常值的步长持续时间大于stddev时间范围内整个步长持续时间的西格玛。

步进规则的参数描述
参数名称 描述
base_trial

试验训练任务名称。Amazon SageMaker 调试器会自动将此参数设置为当前培训作业。

必填

有效值:String

stddev

定义用于乘以标准差的因子。例如,当步长持续时间大于或小于标准差的 5 倍时,默认情况下会调用该规则。

可选

有效值:整数

默认值:5(以分钟为单位)

mode 保存步骤的模式以及应在其上运行规则的模式。根据默认规则将在 EVAL 和训练阶段的步骤上运行

可选

有效值:整数

默认值:5(以分钟为单位)

n_outliers 规则返回 True 之前要忽略多少个异常值

可选

有效值:整数

默认值:10

scan_interval_us

扫描时间轴文件的时间间隔。

可选

有效值:整数

默认值:60000000(以微秒为单位)

CreateXgboostReport

CreaTexgBoostReport 规则收集来自 XGBoost 培训作业的输出张量,并自动生成一份全面的训练报告。您可以在培训作业正在运行或培训作业完成后下载综合性分析报告,并检查培训进度或培训作业的最终结果。默认情况下,CreaTexgBoost报表规则收集以下输出张量:

  • hyperparameters— 在第一步保存

  • metrics— 每 5 个步骤节省损失和准确性

  • feature_importance— 保存每 5 个步骤

  • predictions— 保存每 5 个步骤

  • labels— 保存每 5 个步骤

CreaTensgBoost 规则的参数描述
参数名称 描述
base_trial

试验训练任务名称。Amazon SageMaker 调试器会自动将此参数设置为当前培训作业。

必填

有效值:String

rules=[ Rule.sagemaker( rule_configs.create_xgboost_report() ) ]

DeadRelu

此规则检测试验中的修正线性单元 (ReLU) 激活函数的百分比是否因它们的激活活动已降至阈值以下而被视为死亡。如果层中非活跃 ReLU 的百分比大于非活跃 ReLU 的 threshold_layer 值,则该规则会返回 True

DeadRelu 规则的参数描述
参数名称 描述
base_trial

试验训练任务名称。Amazon SageMaker 调试器会自动将此参数设置为当前培训作业。

必填

有效值:String

tensor_regex

正则表达式模式列表,用于将该比较限制为特定的标量值张量。该规则仅检查与列表中指定的正则表达式模式匹配的张量。如果未传递任何模式,则该规则默认情况下比较试验中收集的所有张量。只能匹配标量值张量。

可选

有效值:字符串列表或逗号分隔的字符串

默认值:".*relu_output"

threshold_inactivity

定义一个活动级别,低于该级别的 ReLU 将被视为死亡。ReLU 可能在试验开始时处于活动状态,然后在训练过程中慢慢死亡。如果 ReLU 处于活动状态并低于 threshold_inactivity,则将其视为死亡。

可选

有效值:Float

默认值:1.0(百分比)

threshold_layer

如果层中非活跃 ReLU 百分比大于 threshold_layer,则返回 True

如果层中非活跃 ReLU 百分比小于 threshold_layer,则返回 False

可选

有效值:Float

默认值:50.0(百分比)

built_in_rules = [ Rule.sagemaker( base_config=rule_configs.dead_relu(), rule_parameters={ "tensor_regex": ".*relu_output|.*ReLU_output", "threshold_inactivity": "1.0", "threshold_layer": "50.0" } collections_to_save=[ CollectionConfig( name="custom_relu_collection", parameters={ "include_regex: ".*relu_output|.*ReLU_output", "save_interval": "500" } ) ] ) ]

有关如何配置和部署内置规则的示例,请参阅配置调试器内置规则

注意

此规则不可用于 XGBoost 算法。

ExplodingTensor

此规则检测训练期间发射的张量是否具有非有限值,即无限值或 NaN(不是数字)。如果检测到非有限值,则该规则返回 True

ExplodingTensor 规则的参数描述
参数名称 描述
base_trial

试验训练任务名称。Amazon SageMaker 调试器会自动将此参数设置为当前培训作业。

必填

有效值:String

collection_names

该规则检查其张量的集合名称列表。

可选

有效值:String

默认值:None

tensor_regex

正则表达式模式列表,用于将该比较限制为特定的标量值张量。该规则仅检查与列表中指定的正则表达式模式匹配的张量。如果未传递任何模式,则该规则默认情况下比较试验中收集的所有张量。只能匹配标量值张量。

可选

有效值:String

默认值:None

only_nan

如果为 True,则仅监视 base_trial 张量是否为 NaN 值,而不监视无穷大。

如果为 False,则将 NaN 和无穷大都视为爆炸值并监视两者。

可选

默认值:False

built_in_rules = [ Rule.sagemaker( base_config=rule_configs.exploding_tensor(), rule_parameters={ "tensor_regex": ".*gradient", "only_nan": "False" } collections_to_save=[ CollectionConfig( name="gradients", parameters={ "save_interval": "500" } ) ] ) ]

有关如何配置和部署内置规则的示例,请参阅配置调试器内置规则

注意

此规则不可用于 XGBoost 算法。

PoorWeightInitialization

此规则检测模型参数是否初始化不当。

良好的初始化会破坏神经网络中权重和梯度的对称性,并在各层之间保持相应的激活方差。否则,神经网络无法有效地学习。诸如 Xavier 之类的初始化程序旨在使激活之间的方差保持恒定,这对于训练非常深的神经网络尤其重要。初始化太小可能会导致梯度消失。初始化过大可能会导致梯度爆炸。此规则检查各层激活输入的方差、梯度分布以及初始步骤的损失收敛性,确定神经网络是否初始化不当。

PoorWeightInitialization 规则的参数描述
参数名称 描述
base_trial

试验训练任务名称。Amazon SageMaker 调试器会自动将此参数设置为当前培训作业。

必填

有效值:String

activation_inputs_regex

正则表达式模式列表,用于将该比较限制为特定的标量值张量。该规则仅检查与列表中指定的正则表达式模式匹配的张量。如果未传递任何模式,则该规则默认情况下比较试验中收集的所有张量。只能匹配标量值张量。

可选

有效值:String

默认值:".*relu_input"

threshold

如果每个层的权重的最小方差和最大方差之间的比率超过某个步骤中的 threshold,则该规则返回 True

可选

有效值:Float

默认值:10.0

distribution_range

如果梯度分布的第 5 百分位数和第 95 百分位数之间的最小差值小于 distribution_range,则该规则返回 True

可选

有效值:Float

默认值:0.001

patience

等到损失被认为不再减少的步骤数。

可选

有效值:整数

默认值:5

steps

此规则分析的步骤数。您通常只需要检查前几次迭代。

可选

有效值:Float

默认值:10

built_in_rules = [ Rule.sagemaker( base_config=rule_configs.poor_weight_initialization(), rule_parameters={ "activation_inputs_regex": ".*relu_input|.*ReLU_input", "threshold": "10.0", "distribution_range": "0.001", "patience": "5", "steps": "10" }, collections_to_save=[ CollectionConfig( name="custom_relu_collection", parameters={ "include_regex": ".*relu_input|.*ReLU_input", "save_interval": "500" } ) ] ) ]

有关如何配置和部署内置规则的示例,请参阅配置调试器内置规则

注意

此规则不可用于 XGBoost 算法。

SaturatedActivation

此规则检测 tanh 和 sigmoid 激活层是否正在变得饱和。当层的输入接近激活函数的最大或最小值时,激活层将饱和。tanh 和 sigmoid 激活函数的最小和最大值由它们各自的 min_thresholdmax_thresholds 值定义。如果节点的活动降到 threshold_inactivity 百分比以下,则将其视为饱和。如果超过 threshold_layer 百分比的节点处于饱和状态,则该规则返回 True

SaturatedActivation 规则的参数描述
参数名称 描述
base_trial

试验训练任务名称。Amazon SageMaker 调试器会自动将此参数设置为当前培训作业。

必填

有效值:String

collection_names

该规则检查其张量的集合名称列表。

可选

有效值:字符串列表或逗号分隔的字符串

默认值:无

tensor_regex

正则表达式模式列表,用于将该比较限制为特定的标量值张量。该规则仅检查与列表中指定的正则表达式模式匹配的张量。如果未传递任何模式,则该规则默认情况下比较试验中收集的所有张量。只能匹配标量值张量。

可选

有效值:String

默认值:".*tanh_input|.*sigmoid_input".

threshold_tanh_min

定义 tanh 激活函数输入极值的最小和最大阈值,定义为::(min_threshold, max_threshold). 默认值是根据梯度消失阈值 0.0000001 确定的。

可选

有效值:Float

默认值:-9.4999

threshold_tanh_max

定义 tanh 激活函数输入极值的最小和最大阈值,定义为::(min_threshold, max_threshold). 默认值是根据梯度消失阈值 0.0000001 确定的。

可选

有效值:Float

默认值:9.4999

threshold_sigmoid_min

定义 sigmoid 激活函数输入极值的最小和最大阈值,定义为::(min_threshold, max_threshold). 默认值是根据梯度消失阈值 0.0000001 确定的。

可选

有效值:Float

默认值:-23

threshold_sigmoid_max

定义 sigmoid 激活函数输入极值的最小和最大阈值,定义为::(min_threshold, max_threshold). 默认值是根据梯度消失阈值 0.0000001 确定的。

可选

有效值:Float

默认值:16.99999

threshold_inactivity

不活动百分比,低于该百分比的激活层被视为饱和。激活可能在试验开始时处于活动状态,然后在训练过程中逐渐变得不那么活跃。

可选

有效值:Float

默认值:1.0

threshold_layer

如果层中的饱和激活数大于 threshold_layer 百分比,则返回 True

如果层中的饱和激活数小于 threshold_layer 百分比,则返回 False

可选

有效值:Float

默认值:50.0

built_in_rules = [ Rule.sagemaker( base_config=rule_configs.saturated_activation(), rule_parameters={ "tensor_regex": ".*tanh_input|.*sigmoid_input", "threshold_tanh_min": "-9.4999", "threshold_tanh_max": "9.4999", "threshold_sigmoid_min": "-23", "threshold_sigmoid_max": "16.99999", "threshold_inactivity": "1.0", "threshold_layer": "50.0" }, collections_to_save=[ CollectionConfig( name="custom_activations_collection", parameters={ "include_regex": ".*tanh_input|.*sigmoid_input" "save_interval": "500" } ) ] ) ]

有关如何配置和部署内置规则的示例,请参阅配置调试器内置规则

注意

此规则不可用于 XGBoost 算法。

VanishingGradient

该规则检测试验中的梯度是否变得非常小或降至零幅度。如果梯度绝对值的平均值低于指定的 threshold,则该规则返回 True

VanishingGradient 规则的参数描述
参数名称 描述
base_trial

试验训练任务名称。Amazon SageMaker 调试器会自动将此参数设置为当前培训作业。

必填

有效值:String

threshold 确定梯度消失的值。

可选

有效值:Float

默认值:0.0000001

built_in_rules = [ Rule.sagemaker( base_config=rule_configs.vanishing_gradient(), rule_parameters={ "threshold": "0.0000001" }, collections_to_save=[ CollectionConfig( name="gradients", parameters={ "save_interval": "500" } ) ] ) ]

有关如何配置和部署内置规则的示例,请参阅配置调试器内置规则

注意

此规则不可用于 XGBoost 算法。

WeightUpdateRatio

此规则跟踪训练期间更新与权重的比率,并检测该比率是过大还是过小。如果更新与权重的比率大于 large_threshold value 或者此比率小于 small_threshold,则该规则返回 True

当更新与梯度相当时,训练条件是最佳的。过大的更新会使权重远离最佳值,而过小的更新会导致收敛速度非常慢。此规则要求权重可用于两个训练步骤,而train.save_interval需要设置为等于num_steps.

WeightUpdateRatio 规则的参数描述
参数名称 描述
base_trial

试验训练任务名称。Amazon SageMaker 调试器会自动将此参数设置为当前培训作业。

必填

有效值:String

num_steps

该规则检查以确定张量是否已更改的步骤数。

要比较权重比率的步骤数。如果未传递任何值,则默认情况下,将针对当前步骤和紧接的上一个保存步骤运行该规则。如果您通过传递此参数的值来覆盖默认值,则会在步骤中对权重进行比较。s并在一步>= s - num_steps.

可选

有效值:整数

默认值:None

large_threshold

规则返回之前,更新与权重的比率可以取的最大值True.

可选

有效值:Float

默认值:10.0

small_threshold

更新与权重的比率可以取的最小值,低于该值时规则将返回True.

可选

有效值:Float

默认值:0.00000001

epsilon

一个小常量,用于确保在计算要执行加权的更新时调试程序不除以零。

可选

有效值:Float

默认值:0.000000001

built_in_rules = [ Rule.sagemaker( base_config=rule_configs.weight_update_ratio(), rule_parameters={ "num_steps": "100", "large_threshold": "10.0", "small_threshold": "0.00000001", "epsilon": "0.000000001" }, collections_to_save=[ CollectionConfig( name="weights", parameters={ "train.save_interval": "100" } ) ] ) ]

有关如何配置和部署内置规则的示例,请参阅配置调试器内置规则

注意

此规则不可用于 XGBoost 算法。

AllZero

此规则检测张量值的全部或百分比是否为零。

此规则可应用于受支持的深度学习框架(TensorFlow、MXNet 和 PyTorch)之一,也可以应用于 XGBoost 算法。必须指定 collection_namestensor_regex 参数。如果指定了这两个参数,则规则将检查两个集合内张量的并集。

有关如何配置和部署内置规则的示例,请参阅配置调试器内置规则

AllZero 的参数描述
参数名称 描述
base_trial

试验训练任务名称。Amazon SageMaker 调试器会自动将此参数设置为当前培训作业。

必填

有效值:String

collection_names

该规则检查其张量的集合名称列表。

可选

有效值:字符串列表或逗号分隔的字符串

默认值:None

tensor_regex

正则表达式模式列表,用于将该比较限制为特定的标量值张量。该规则仅检查与列表中指定的正则表达式模式匹配的张量。如果未传递任何模式,则该规则默认情况下比较试验中收集的所有张量。只能匹配标量值张量。

可选

有效值:字符串列表或逗号分隔的字符串

默认值:None

threshold

指定张量中必须为零才能调用此规则的值的百分比。

可选

有效值:Float

默认值:100(以百分比为单位)

built_in_rules = [ Rule.sagemaker( base_config=rule_configs.all_zero(), rule_parameters={ "tensor_regex": ".*", "threshold": "100" }, collections_to_save=[ CollectionConfig( name="all", parameters={ "save_interval": "500" } ) ] ) ]

ClassImbalance

此规则用于衡量分类之间的采样不平衡,如果不平衡状况超过阈值,或者由于不平衡而导致代表性不足的分类发生太多错误预测,则会引发错误。

分类模型需要训练数据集中的分类保持良好平衡,或者在训练期间对分类执行适当的加权/取样。该规则执行以下检查:

  • 它计算每个分类的发生次数。如果最小分类和最大分类之间的样本数比率大于 threshold_imbalance,则会引发错误。

  • 它检查每个分类的预测精度。如果未正确应用重采样或加权,则模型对于具有许多训练样本的分类来说可以达到较高的精度,但对于训练样本少的分类来说,精度较低。如果某个分类的错误预测比例大于 threshold_misprediction,则会引发错误。

此规则可应用于受支持的深度学习框架(TensorFlow、MXNet 和 PyTorch)之一,也可以应用于 XGBoost 算法。

有关如何配置和部署内置规则的示例,请参阅配置调试器内置规则

ClassImbalance 规则的参数描述
参数名称 描述
base_trial

试验训练任务名称。Amazon SageMaker 调试器会自动将此参数设置为当前培训作业。

必填

有效值:String

threshold_imbalance

最小分类和最大分类中样本数之间可接受的不平衡。超过此阈值会引发错误。

可选

有效值:Float

默认值:10

threshold_misprediction

对每个分类允许的错误预测部分的限制。超过此阈值会引发错误。代表性不足的分类最有可能超过此阈值。

可选

有效值:Float

默认值:0.7

samples

在评估不平衡之前必须处理的标签数。在多个步骤中看到足够的样本之前,可能不会触发该规则。数据集包含的分类越多,此 sample 数值应越大。

可选

有效值:整数

默认值:500(假设像 MNIST 这样的数据集有 10 个类)

argmax

如果为 True,则 np.argmax 应用于预测张量。当您对每个分类都有概率向量时,此项是必需的。它用于确定哪个分类具有最高概率。

条件

有效值:Boolean

默认值:False

labels_regex

包含标签的张量的名称。

可选

有效值:String

默认值:".*labels"

predictions_regex

包含预测的张量的名称。

可选

有效值:String

默认值:".*predictions"

built_in_rules = [ Rule.sagemaker( base_config=rule_configs.class_imbalance(), rule_parameters={ "threshold_imbalance": "10", "threshold_misprediction": "0.7", "samples": "500", "argmax": "False", "labels_regex": ".*labels", "predictions_regex": ".*predictions" }, collections_to_save=[ CollectionConfig( name="custom_output_collection", parameters={ "include_regex": ".*labels|.*predictions", "save_interval": "500" } ) ] ) ]

LossNotDecreasing

此规则检测值损失是否以适当的速度减少。这些损失必须是标量。

此规则可应用于受支持的深度学习框架(TensorFlow、MXNet 和 PyTorch)之一,也可以应用于 XGBoost 算法。必须指定 collection_namestensor_regex 参数。如果指定了这两个参数,则规则将检查两个集合内张量的并集。

有关如何配置和部署内置规则的示例,请参阅配置调试器内置规则

LossNotDecreasing 规则的参数描述
参数名称 描述
base_trial

试验训练任务名称。Amazon SageMaker 调试器会自动将此参数设置为当前培训作业。

必填

有效值:String

collection_names

该规则检查其张量的集合名称列表。

可选

有效值:字符串列表或逗号分隔的字符串

默认值:None

tensor_regex

一个正则表达式模式列表,用于将此比较限制为特定的标量值张量。该规则仅检查与列表中指定的正则表达式模式匹配的张量。如果未传递任何模式,则该规则默认情况下比较试验中收集的所有张量。只能匹配标量值张量。

可选

有效值:字符串列表或逗号分隔的字符串

默认值:None

use_losses_collection

如果设置为 True,则当名为“losses”的集合存在时,查找该集合中的损失。

可选

有效值:Boolean

默认值:True

num_steps

该规则检查损失是否已减少的最小步骤数。规则评估每 num_steps 个步骤发生一次。该规则将此步骤的损失与至少比当前步骤落后 num_steps 的步骤的损失进行比较。例如,假设每三个步骤保存一次损失,但 num_steps 设置为 10。在步骤 21 中,将步骤 21 的损失与步骤 9 的损失进行比较。检查损失的下一个步骤是步骤 33,因为步骤 21 之后的第十个步骤是步骤 31,并且在步骤 31 和步骤 32 中不保存损失。

可选

有效值:整数

默认值:10

diff_percent

num_steps 个步骤之间,损失应减少的最小百分比差异。

可选

有效值:0.0 < 浮点值 < 100

默认值:0.1(百分比)

increase_threshold_percent

在损失增加的情况下允许损失增加的最大阈值百分比

可选

有效值:0 < 浮点值 < 100

默认值:5(百分比)

mode

用于查询张量值以进行规则检查的调试程序模式的名称。如果未传递该参数,规则默认按顺序进行检查,先检查 mode.EVAL,然后检查 mode.TRAIN,最后检查 mode.GLOBAL

可选

有效值:字符串 (EVALTRAIN,或者GLOBAL

默认值:GLOBAL

built_in_rules = [ Rule.sagemaker( base_config=rule_configs.loss_not_decreasing(), rule_parameters={ "tensor_regex": ".*", "use_losses_collection": "True", "num_steps": "10", "diff_percent": "0.1", "increase_threshold_percent": "5", "mode": "GLOBAL" }, collections_to_save=[ CollectionConfig( name="losses", parameters={ "save_interval": "500" } ) ] ) ]

Overfit

此规则通过比较验证和训练损失来检测模型是否与训练数据过度拟合。

此规则可应用于受支持的深度学习框架(TensorFlow、MXNet 和 PyTorch)之一,也可以应用于 XGBoost 算法。

有关如何配置和部署内置规则的示例,请参阅配置调试器内置规则

注意

防止过度拟合的标准方法是对模型进行规范化。

Overfit 规则的参数描述
参数名称 描述
base_trial

试验训练任务名称。Amazon SageMaker 调试器会自动将此参数设置为当前培训作业。

必填

有效值:String

tensor_regex

正则表达式模式列表,用于将该比较限制为特定的标量值张量。该规则仅检查与列表中指定的正则表达式模式匹配的张量。如果未传递任何模式,则该规则默认情况下比较试验中收集的所有张量。只能匹配标量值张量。

可选

有效值:字符串列表或逗号分隔的字符串

默认值:无

start_step

开始比较验证和训练损失的步骤。

可选

有效值:整数

默认值:0

patience

在模型被视为过度拟合之前允许 ratio_threshold 超过设置的值的步数。

可选

有效值:整数

默认值:1

ratio_threshold

平均验证损失和平均训练损失之间的差异与平均训练损失的最大比率。如果 patience 个步骤超过此阈值,则表示模型过度拟合,并且规则返回 True

可选

有效值:Float

默认值:0.1

built_in_rules = [ Rule.sagemaker( base_config=rule_configs.overfit(), rule_parameters={ "tensor_regex": ".*", "start_step": "0", "patience": "1", "ratio_threshold": "0.1" }, collections_to_save=[ CollectionConfig( name="losses", parameters={ "train.save_interval": "100", "eval.save_interval": "10" } ) ] ) ]

Overtraining

该规则检测模型是否过度训练。在对行为良好的模型进行了多次训练迭代(训练和验证损失均减少)之后,该模型接近最小的损失函数,并且不再改进。如果模型继续训练,则可能会发生验证损失开始增加,因为模型开始过度拟合。此规则设置阈值和条件以确定模型是否未改进,并防止由于过度训练引起的过度拟合问题。

此规则可应用于受支持的深度学习框架(TensorFlow、MXNet 和 PyTorch)之一,也可以应用于 XGBoost 算法。

有关如何配置和部署内置规则的示例,请参阅配置调试器内置规则

注意

可以通过提前停止来避免过度训练。有关提前停止的信息,请参阅提前停止训练作业。有关演示了如何将 Spot 训练用于调试器,请参阅使用 Amazon SageMaker 调试器启用现货培训.

Overtraining 规则的参数描述
参数名称 描述
base_trial

试验训练任务名称。Amazon SageMaker 调试器会自动将此参数设置为当前培训作业。

必填

有效值:String

patience_train

在认为训练损失不再有改进之前等待的步骤数。

可选

有效值:整数

默认值:5

patience_validation 在认为验证损失不再有改进之前等待的步骤数。

可选

有效值:整数

默认值:10

delta

误差被视为新的最佳值之前应改进的误差程度的最小阈值。

可选

有效值:Float

默认值:0.01

built_in_rules = [ Rule.sagemaker( base_config=rule_configs.overtraining(), rule_parameters={ "patience_train": "5", "patience_validation": "10", "delta": "0.01" }, collections_to_save=[ CollectionConfig( name="losses", parameters={ "save_interval": "500" } ) ] ) ]

SimilarAcrossRuns

此规则将从基本试验中收集的张量与从另一试验中收集的张量进行比较。

此规则可应用于受支持的深度学习框架(TensorFlow、MXNet 和 PyTorch)之一,也可以应用于 XGBoost 算法。

有关如何配置和部署内置规则的示例,请参阅配置调试器内置规则

SimilarAcrossRuns 规则的参数描述
参数名称 描述
base_trial

试验训练任务名称。Amazon SageMaker 调试器会自动将此参数设置为当前培训作业。

必填

有效值:String

other_trial

要将其张量与从当前base_trial.

必填

有效值:String

collection_names

该规则检查其张量的集合名称列表。

可选

有效值:字符串列表或逗号分隔的字符串

默认值:无

tensor_regex

正则表达式模式列表,用于将该比较限制为特定的标量值张量。该规则仅检查与列表中指定的正则表达式模式匹配的张量。如果未传递任何模式,则该规则默认情况下比较试验中收集的所有张量。只能匹配标量值张量。

可选

有效值:字符串列表或逗号分隔的字符串

默认值:无

built_in_rules = [ Rule.sagemaker( base_config=rule_configs.similar_across_runs(), rule_parameters={ "other_trial": "<specify-another-job-name>", "collection_names": "losses", "tensor_regex": ".*" }, collections_to_save=[ CollectionConfig( name="losses", parameters={ "save_interval": "500" } ) ] ) ]

StalledTrainingRule

Stalled训练规则检测训练作业是否没有进展,如果规则触发,则停止培训作业。此规则要求张量被定期保存在一个时间间隔,该时间间隔由threshold参数。此规则持续监视新张量,如果没有发出新张量,阈值间隔规则被触发。

Svents 规则的参数描述
参数名称 描述
base_trial

试验训练任务名称。Amazon SageMaker 调试器会自动将此参数设置为当前培训作业。

必填

有效值:String

threshold

一个阈值,用于定义规则等待张量输出直到触发停滞训练问题为止的时间(以秒为单位)。默认值为 1800 秒。

可选

有效值:整数

默认值:1800

stop_training_on_fire

如果设置为True,监视基础训练作业是否输出张量threshold“秒。

可选

有效值:Boolean

默认值:False

training_job_name_prefix

基本训练作业名称的前缀。如果stop_training_on_fire为 true,则规则在同一帐户中搜索具有此前缀的 SageMaker 培训作业。如果找到了非活动状态,则该规则采用StopTrainingJobaction. 请注意,如果找到具有相同前缀的多个作业,则规则将跳过终止。必须为每个培训作业设置唯一的前缀。

可选

有效值:String

built_in_rules = [ Rule.sagemaker( base_config=rule_configs.stalled_training_rule(), rule_parameters={ "threshold": "1800", "stop_training_on_fire": "True", "training_job_name_prefix": "<specify-training-base-job-name>" }, collections_to_save=[ CollectionConfig( name="losses", parameters={ "save_interval": "500" } ) ] ) ]

TensorVariance

该规则检测您是否具有方差非常高或非常低的张量。张量中的非常高或非常低的方差可能会导致神经元饱和,从而降低神经网络的学习能力。张量非常高的方差最终还会产生张量爆炸问题。使用此规则可以提前检测出此类问题。

此规则可应用于受支持的深度学习框架(TensorFlow、MXNet 和 PyTorch)之一,也可以应用于 XGBoost 算法。必须指定 collection_namestensor_regex 参数。如果指定了这两个参数,则规则将检查两个集合内张量的并集。

有关如何配置和部署内置规则的示例,请参阅配置调试器内置规则

TensorVariance 规则的参数描述
参数名称 描述
base_trial

试验训练任务名称。Amazon SageMaker 调试器会自动将此参数设置为当前培训作业。

必填

有效值:String

collection_names

该规则检查其张量的集合名称列表。

可选

有效值:字符串列表或逗号分隔的字符串

默认值:无

tensor_regex

正则表达式模式列表,用于将该比较限制为特定的标量值张量。该规则仅检查与列表中指定的正则表达式模式匹配的张量。如果未传递任何模式,则该规则默认情况下比较试验中收集的所有张量。只能匹配标量值张量。

可选

有效值:字符串列表或逗号分隔的字符串

默认值:无

max_threshold

张量方差上限的阈值。

可选

有效值:Float

默认值:无

min_threshold

张量方差下限的阈值。

可选

有效值:Float

默认值:无

built_in_rules = [ Rule.sagemaker( base_config=rule_configs.tensor_variance(), rule_parameters={ "collection_names": "weights", "max_threshold": "10", "min_threshold": "0.00001", }, collections_to_save=[ CollectionConfig( name="weights", parameters={ "save_interval": "500" } ) ] ) ]

UnchangedTensor

此规则检测张量是否不再随步骤而发生更改。

此规则运行数字。全部关闭方法来检查张量是否未发生更改。

此规则可应用于受支持的深度学习框架(TensorFlow、MXNet 和 PyTorch)之一,也可以应用于 XGBoost 算法。必须指定 collection_namestensor_regex 参数。如果指定了这两个参数,则规则将检查两个集合内张量的并集。

有关如何配置和部署内置规则的示例,请参阅配置调试器内置规则

UnchangedTensor 规则的参数描述
参数名称 描述
base_trial

试验训练任务名称。Amazon SageMaker 调试器会自动将此参数设置为当前培训作业。

必填

有效值:String

collection_names

该规则检查其张量的集合名称列表。

可选

有效值:字符串列表或逗号分隔的字符串

默认值:无

tensor_regex

正则表达式模式列表,用于将该比较限制为特定的标量值张量。该规则仅检查与列表中指定的正则表达式模式匹配的张量。如果未传递任何模式,则该规则默认情况下比较试验中收集的所有张量。只能匹配标量值张量。

可选

有效值:字符串列表或逗号分隔的字符串

默认值:无

num_steps

该规则检查以确定张量是否已更改的步骤数。

规则将检查可用的最后 num_steps 个步骤。步骤不必是连续的。如果 num_steps 是 2,则在第 s 个步骤处,规则不一定检查第 s-1 个步骤和第 s 个步骤。如果第 s-1 个步骤不可用,规则会检查最后一个可用步骤以及第 s 个步骤。在这种情况下,规则会检查最后一个可用步骤及当前步骤。

可选

有效值:整数

默认值:3

rtol

要传递给 numpy.allclose 方法的相对容差参数。

可选

有效值:Float

默认值:1e-05

atol

要传递给 numpy.allclose 方法的绝对容差参数。

可选

有效值:Float

默认值:1e-08

equal_nan

比较 NaN 时是否视为相等。如果为 True,则在输出数组中将输入数组 a 中的 NaN 视为等于输入数组 b 中的 NaN。此参数传递给 numpy.allclose 方法。

可选

有效值:Boolean

默认值:False

built_in_rules = [ Rule.sagemaker( base_config=rule_configs.unchanged_tensor(), rule_parameters={ "collection_names": "losses", "tensor_regex": "", "num_steps": "3", "rtol": "1e-05", "atol": "1e-08", "equal_nan": "False" }, collections_to_save=[ CollectionConfig( name="losses", parameters={ "save_interval": "500" } ) ] ) ]

CheckInputImages

此规则检查输入图像是否已正确归一化。具体而言,规则会检测样本数据的平均值与零之间的差异是否超过阈值。许多计算机视觉模型要求输入数据的平均值和单位方差为零。

此规则适用于深度学习应用程序。

有关如何配置和部署内置规则的示例,请参阅配置调试器内置规则

CheckInputImages 规则的参数描述
参数名称 描述
base_trial

试验训练任务名称。Amazon SageMaker 调试器会自动将此参数设置为当前培训作业。

必填

有效值:String

threshold_mean

一个阈值,该阈值定义输入数据的平均值可以与 0 相差多少。

可选

有效值:Float

默认值:0.2

threshold_samples

在引发错误之前必须采样的图像数量。如果值过低,则对数据集平均值的估计将不准确。

可选

有效值:整数

默认值:500

regex

输入数据张量的名称。

可选

有效值:String

默认值:".*hybridsequential0_input_0"(使用 HybridSequential 的 Apache MXNet 模型的输入张量的名称)

channel

颜色通道在输入张量形状数组中的位置。

可选

有效值:整数

默认值:1(例如,MXNet 需要输入数据采用以下形式:(batch_size, channel, height, width)

built_in_rules = [ Rule.sagemaker( base_config=rule_configs.check_input_images(), rule_parameters={ "threshold_mean": "0.2", "threshold_samples": "500", "regex": ".*hybridsequential0_input_0", "channel": "1" }, collections_to_save=[ CollectionConfig( name="custom_inputs_collection", parameters={ "include_regex": ".*hybridsequential0_input_0" "save_interval": "500" } ) ] ) ]

NLPSequenceRatio

给定其余输入序列(对于优化性能很有用)的情况下,此规则将计算特定令牌的比率。例如,您可以计算输入序列中填充句尾 (EOS) 令牌的百分比。如果 EOS 令牌数量过高,则应执行替代分桶策略。您还可以计算输入序列中未知令牌的百分比。如果未知单词的数量过高,可以使用替代词汇表。

此规则适用于深度学习应用程序。

有关如何配置和部署内置规则的示例,请参阅配置调试器内置规则

NLPSequenceRatio 规则的参数描述
参数名称 描述
base_trial

试验训练任务名称。Amazon SageMaker 调试器会自动将此参数设置为当前培训作业。

必填

有效值:String

tensor_regex

正则表达式模式列表,用于将该比较限制为特定的标量值张量。该规则仅检查与列表中指定的正则表达式模式匹配的张量。如果未传递任何模式,则该规则默认情况下比较试验中收集的所有张量。只能匹配标量值张量。

可选

有效值:字符串列表或逗号分隔的字符串

默认值:".*embedding0_input_0"(假设作为网络的初始层嵌入)

token_values

一个由令牌数值列表构成的字符串。例如,"3, 0"。

可选

有效值:逗号分隔的数值字符串

默认值:0

token_thresholds_percent

一个字符串,由与 token_values 的每个令牌对应的阈值(以百分比为单位)列表构成。例如,"50.0, 50.0"。

可选

有效值:逗号分隔的浮点值字符串

默认值:"50"

built_in_rules = [ Rule.sagemaker( base_config=rule_configs.nlp_sequence_ratio(), rule_parameters={ "tensor_regex": ".*embedding0_input_0", "token_values": "0", "token_thresholds_percent": "50" }, collections_to_save=[ CollectionConfig( name="custom_inputs_collection", parameters={ "include_regex": ".*embedding0_input_0" } ) ] ) ]

Confusion

此规则评估分类问题的混淆矩阵的优点。

它创建一个大小为 category_no*category_no 的矩阵,并使用来自 (labels, predictions) 对的数据填充该矩阵。对于每个 (labels, predictions) 对,confusion[labels][predictions] 中的计数增加 1。当完全填充矩阵后,按以下所示计算数据对角线值和非对角线值的比率:

  • 对于对角线上的元素:confusion[i][i]/sum_j(confusion[j][j])>=min_diag

  • 对于非对角线上的元素:confusion[j][i])/sum_j(confusion[j][i])<=max_off_diag

此规则可应用于 XGBoost 算法。

有关如何配置和部署内置规则的示例,请参阅配置调试器内置规则

Confusion 规则的参数描述
参数名称 描述
base_trial

试验训练任务名称。Amazon SageMaker 调试器会自动将此参数设置为当前培训作业。

必填

有效值:String

category_no

类别的数量。

可选

有效值:≥2

默认值:"None"

labels

这些区域有:labels张量集合或真正标签的 1-d 向量。

可选

有效值:String

默认值:"labels"

predictions

这些区域有:predictions张量集合或估计标签的 1-d 向量。

可选

有效值:String

默认值:"predictions"

labels_collection

该规则针对 labels 检查此集合中的张量。

可选

有效值:String

默认值:"labels"

predictions_collection

该规则针对 predictions 检查此集合中的张量。

可选

有效值:String

默认值:"predictions"

min_diag

对角线上数据比率的最小阈值。

可选

有效值:0≤float≤1

默认值:0.9

max_off_diag

对角线以外的数据比率的最大阈值。

可选

有效值:0≤float≤1

默认值:0.1

built_in_rules = [ Rule.sagemaker( base_config=rule_configs.confusion(), rule_parameters={ "category_no": "10", "labels": "labels", "predictions": "predictions", "labels_collection": "labels", "predictions_collection": "predictions", "min_diag": "0.9", "max_off_diag": "0.1" }, collections_to_save=[ CollectionConfig( name="labels", parameters={ "save_interval": "500" } ), CollectionConfig( name="predictions", parameters={ "include_regex": "500" } ) ] ) ]
注意

如果未指定可选参数的值,则此规则会推断采用默认值。

FeatureImportanceOverweight

此规则每步累积 n 个最大要素重要性值的权重,并确保它们不超过阈值。例如,您可以将前 3 个要素的阈值设置为不超过模型总权重的 80%。

此规则仅对 XGBoost 算法有效。

有关如何配置和部署内置规则的示例,请参阅配置调试器内置规则

要素重要超权规则的参数描述
参数名称 描述
base_trial

试验训练任务名称。Amazon SageMaker 调试器会自动将此参数设置为当前培训作业。

必填

有效值:String

threshold

定义累积总和比例的阈值n最大的功能。的数量nnfeatures参数。

可选

有效值:Float

默认值:0.8

nfeatures

最大要素的数量。

可选

有效值:整数

默认值:3

tensor_regex

张量的正则表达式 (regex) 命名要分析的规则。

可选

有效值:String

默认值:".*feature_importance/weight"

built_in_rules = [ Rule.sagemaker( base_config=rule_configs.feature_importance_overweight(), rule_parameters={ "threshold": "0.8", "nfeatures": "3", "tensor_regex": ".*feature_importance/weight" }, collections_to_save=[ CollectionConfig( name="feature_importance", parameters={ "save_interval": "500" } ) ] ) ]

TreeDepth

此规则测量 XGBoost 模型中树的深度。如果拆分不能改进损失,则 XGBoost 会拒绝拆分。这会将训练规范化。因此,树的深度可能无法达到由depth参数。

此规则仅对 XGBoost 算法有效。

有关如何配置和部署内置规则的示例,请参阅配置调试器内置规则

TreeDepth 规则的参数描述
参数名称 描述
base_trial

试验训练任务名称。Amazon SageMaker 调试器会自动将此参数设置为当前培训作业。

必填

有效值:String

depth

树的深度。通过计算最大节点 ID 的以 2 为底的对数,可以获得树的深度。

可选

有效值:Float

默认值:4

built_in_rules = [ Rule.sagemaker( base_config=rule_configs.tree_depth(), rule_parameters={ "depth": "4" }, collections_to_save=[ CollectionConfig( name="tree", parameters={ "save_interval": "500" } ) ] ) ]