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

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

调试程序 内置规则的列表

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

注意

对于 ,训练作业的最大内置规则数为 20,对于 为 ProfilerRule Rule20。 SageMaker 调试程序 完全管理内置规则并并行分析您的训练作业。有关账单的更多信息,请参阅 SageMaker 定价页面的 Amazon Amazon SageMaker Studio 不收取额外费用部分。

重要

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

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

调试程序 ProfilerRule

以下规则是可使用 调试程序 类方法调用的ProfilerRule.sagemaker内置规则。

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

调试程序 规则

以下规则是可使用 调试程序 类方法调用的Rule.sagemaker内置规则。

调试程序 生成训练报告的内置规则
有效性范围 内置规则
训练作业的SageMakerXGboost训练报告
调试程序 用于调试模型训练数据的内置规则(输出张量)
有效性范围 内置规则
深度学习框架TensorFlowMXNet、 和 PyTorch)
深度学习框架TensorFlowMXNet、 和 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())]

以下示例代码说明如何指定和调整CPUBottleneck规则的 cpu_threshold 参数和IOBottleneck规则的 threshold 参数。

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

OverallSystemUsage 规则的参数描述
参数名称 描述
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 利用率第 95th 个分位数的阈值(以百分比为单位)。

可选

有效值:整数

默认值:70(百分比)

gpu_threshold_p95

以百分比形式定义 GPU 利用率第 95th 个分位数的阈值。

可选

有效值:整数

默认值:70(百分比)

gpu_memory_threshold_p95

以百分比形式定义 GPU 内存利用率的第 95th 个分位数的阈值。

可选

有效值:整数

默认值:70(百分比)

patience

定义在规则开始评估之前要跳过的数据点数。训练作业的前几个步骤通常显示大量数据进程,因此请保留规则患者并防止使用您使用此参数指定的给定数量的分析数据过快地调用它。

可选

有效值:整数

默认值: 100

window

用于计算分位数的窗口大小。

可选

有效值:整数

默认值: 500

scan_interval_us

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

可选

有效值:整数

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

CPUBottleneck

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

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

基本试用训练作业名称。此参数由 自动设置为当前训练作业Amazon SageMaker 调试程序。

必需

有效值:String

threshold

定义瓶颈时间与总训练时间的比例的阈值。如果该比例超出为阈值参数指定的百分比,则规则会将规则状态更改为 True。

可选

有效值:整数

默认值:50(百分比)

gpu_threshold

定义低 GPU 利用率的阈值。

可选

有效值:整数

默认值:10(百分比)

cpu_threshold

定义高 CPU 使用率的阈值。

可选

有效值:整数

默认值:90(百分比)

patience

定义在规则开始评估之前要跳过的数据点数。训练作业的前几个步骤通常显示大量数据进程,因此请保留规则患者并防止使用您使用此参数指定的给定数量的分析数据过快地调用它。

可选

有效值:整数

默认值: 100

scan_interval_us

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

可选

有效值:整数

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

GPUMemoryIncrease

该GPUMemoryIncrease规则有助于检测 上的内存使用率的大幅增加GPUs。

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

基本试用训练作业名称。此参数由 自动设置为当前训练作业Amazon SageMaker 调试程序。

必需

有效值:String

increase

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

可选

有效值:整数

默认值:10(百分比)

patience

定义在规则开始评估之前要跳过的数据点数。训练作业的前几个步骤通常显示大量数据进程,因此请保留规则患者并防止使用您使用此参数指定的给定数量的分析数据过快地调用它。

可选

有效值:整数

默认值: 100

window

用于计算分位数的窗口大小。

可选

有效值:整数

默认值: 500

scan_interval_us

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

可选

有效值:整数

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

IOBottleneck

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

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

基本试用训练作业名称。此参数由 自动设置为当前训练作业Amazon SageMaker 调试程序。

必需

有效值:String

threshold 定义 Rule to return True (规则返回 True 时的阈值)。

可选

有效值:整数

默认值:50(百分比)

gpu_threshold

一个阈值,用于定义何时将 GPU 视为未充分利用。

可选

有效值:整数

默认值:70(百分比)

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

可选

有效值:整数

默认值:50(百分比)

patience 定义在规则开始评估之前要跳过的数据点数。训练作业的前几个步骤通常显示大量数据进程,因此请保留规则患者并防止使用您使用此参数指定的给定数量的分析数据过快地调用它。

可选

有效值:整数

默认值: 1000

scan_interval_us

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

可选

有效值:整数

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

LoadBalancing

该LoadBalancing规则有助于检测多个 之间工作负载均衡的问题GPUs。

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

基本试用训练作业名称。此参数由 自动设置为当前训练作业Amazon SageMaker 调试程序。

必需

有效值:String

threshold

定义工作负载百分比。

可选

有效值:整数

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

patience

定义在规则开始评估之前要跳过的数据点数。训练作业的前几个步骤通常显示大量数据进程,因此请保留规则患者并防止使用您使用此参数指定的给定数量的分析数据过快地调用它。

可选

有效值:整数

默认值: 10

scan_interval_us

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

可选

有效值:整数

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

LowGPUUtilization

该LowGPUUtilization规则有助于检测 GPU 利用率是否低或是否出现波动。将为每个工作线程上的每个 GPU 检查此项。如果第 95th分位数低于 threshold_p95(表示利用率不足),则规则返回 True。如果第 95th 个分位数高于 threshold_p95 且5th分位数低于 threshold_p5(指示波动),则规则返回 true。

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

基本试用训练作业名称。此参数由 自动设置为当前训练作业Amazon SageMaker 调试程序。

必需

有效值:String

threshold_p95

第 95th分位数的阈值,超过该阈值时,GPU 将被视为未充分利用。

可选

有效值:整数

默认值:70(百分比)

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

可选

有效值:整数

默认值:10(百分比)

patience

定义在规则开始评估之前要跳过的数据点数。训练作业的前几个步骤通常显示大量数据进程,因此请保留规则患者并防止使用您使用此参数指定的给定数量的分析数据过快地调用它。

可选

有效值:整数

默认值: 1000

window

用于计算分位数的窗口大小。

可选

有效值:整数

默认值: 500

scan_interval_us

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

可选

有效值:整数

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

OverallSystemUsage

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

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

基本试用训练作业名称。此参数由 自动设置为当前训练作业Amazon SageMaker 调试程序。

必需

有效值:String

scan_interval_us

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

可选

有效值:整数

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

MaxInitializationTime

该MaxInitializationTime规则有助于检测训练初始化是否耗时太长。该规则将一直等到第一步可用。

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

基本试用训练作业名称。此参数由 自动设置为当前训练作业Amazon SageMaker 调试程序。

必需

有效值:String

threshold

定义等待第一步可用时的阈值(以分钟为单位)。

可选

有效值:整数

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

scan_interval_us

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

可选

有效值:整数

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

OverallFrameworkMetrics

该OverallFrameworkMetrics规则总结了在框架指标(如向前和向后传递以及数据加载)上所花的时间。

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

基本试用训练作业名称。此参数由 自动设置为当前训练作业Amazon SageMaker 调试程序。

必需

有效值:String

scan_interval_us

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

可选

有效值:整数

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

StepOutlier

该StepOutlier规则有助于检测步骤持续时间中的异常值。True 如果某个时间范围内的步骤持续时间大于整个步骤持续时间的 stddev sigma,此规则将返回 。

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

基本试用训练作业名称。此参数由 自动设置为当前训练作业Amazon SageMaker 调试程序。

必需

有效值:String

stddev

定义乘以标准差的系数。例如,当步长持续时间大于或等于标准差的 5 倍时,将默认调用该规则。

可选

有效值:整数

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

mode 保存步骤以及应在其上运行规则的模式。每个默认规则将在 EVAL 和 TRAIN 阶段的步骤上运行

可选

有效值:整数

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

n_outliers 在规则返回 True 之前要忽略的异常值的数目

可选

有效值:整数

默认值: 10

scan_interval_us

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

可选

有效值:整数

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

CreateXgboostReport

该CreateXgboostReport规则从 XGBoost 训练作业中收集输出张量并自动生成全面的训练报告。您可以在训练作业正在运行时或在训练作业完成后下载全面分析报告,并检查训练进度或训练作业的最终结果。默认情况下,该CreateXgboostReport规则收集以下输出张量:

  • hyperparameters – 在第一步中保存

  • metrics – 每 5 个步骤保存损失和准确性

  • feature_importance – 每 5 个步骤保存一次

  • predictions – 每 5 个步骤保存一次

  • labels – 每 5 个步骤保存一次

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

基本试用训练作业名称。此参数由 自动设置为当前训练作业Amazon SageMaker 调试程序。

必需

有效值:String

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

DeadRelu

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

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

基本试用训练作业名称。此参数由 自动设置为当前训练作业Amazon SageMaker 调试程序。

必需

有效值:String

tensor_regex

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

可选

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

默认值: ".*relu_output"

threshold_inactivity

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

可选

有效值:浮点值

默认值:1.0(百分比)

threshold_layer

True 如果层ReLUs中的非活动百分比大于 ,则返回 threshold_layer

False 如果层ReLUs中的非活动百分比小于 ,则返回 threshold_layer

可选

有效值:浮点值

默认值: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.

可选

有效值:浮点值

默认值: 10.0

distribution_range

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

可选

有效值:浮点值

默认值: 0.001

patience

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

可选

有效值:整数

默认值: 5

steps

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

可选

有效值:浮点值

默认值: 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

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

可选

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

默认值:None

tensor_regex

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

可选

有效值:String

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

threshold_tanh_min

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

可选

有效值:浮点值

默认值: -9.4999

threshold_tanh_max

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

可选

有效值:浮点值

默认值: 9.4999

threshold_sigmoid_min

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

可选

有效值:浮点值

默认值: -23

threshold_sigmoid_max

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

可选

有效值:浮点值

默认值: 16.99999

threshold_inactivity

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

可选

有效值:浮点值

默认值: 1.0

threshold_layer

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

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

可选

有效值:浮点值

默认值: 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 确定梯度消失的值。

可选

有效值:浮点值

默认值: 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

可选

有效值:浮点值

默认值: 10.0

small_threshold

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

可选

有效值:浮点值

默认值: 0.00000001

epsilon

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

可选

有效值:浮点值

默认值: 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

此规则检测张量值的所有 或指定百分比是否为零。

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

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

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

基本试用训练作业名称。此参数由 自动设置为当前训练作业Amazon SageMaker 调试程序。

必需

有效值:String

collection_names

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

可选

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

默认值: None

tensor_regex

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

可选

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

默认值: None

threshold

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

可选

有效值:浮点值

默认值: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,则会引发错误。

此规则可应用于支持的深度学习框架TensorFlowMXNet、 和 PyTorch)之一或算法XGBoost。

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

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

基本试用训练作业名称。此参数由 自动设置为当前训练作业Amazon SageMaker 调试程序。

必需

有效值:String

threshold_imbalance

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

可选

有效值:浮点值

默认值: 10

threshold_misprediction

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

可选

有效值:浮点值

默认值: 0.7

samples

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

可选

有效值:整数

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

argmax

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

条件

有效值:布尔值

默认值: 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

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

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

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

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

基本试用训练作业名称。此参数由 自动设置为当前训练作业Amazon SageMaker 调试程序。

必需

有效值:String

collection_names

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

可选

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

默认值: None

tensor_regex

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

可选

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

默认值: None

use_losses_collection

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

可选

有效值:布尔值

默认值: 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

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

此规则可应用于支持的深度学习框架TensorFlowMXNet、 和 PyTorch)之一或算法XGBoost。

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

注意

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

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

基本试用训练作业名称。此参数由 自动设置为当前训练作业Amazon SageMaker 调试程序。

必需

有效值:String

tensor_regex

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

可选

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

默认值:None

start_step

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

可选

有效值:整数

默认值: 0

patience

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

可选

有效值:整数

默认值: 1

ratio_threshold

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

可选

有效值:浮点值

默认值: 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

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

此规则可应用于支持的深度学习框架TensorFlowMXNet、 和 PyTorch)之一或算法XGBoost。

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

注意

可以通过提前停止来避免过度训练。有关提前停止的信息,请参阅提前停止训练作业. 有关演示如何将 Spot 训练用于 调试程序 的示例,请参阅 启用利用 Amazon SageMaker 调试程序 进行 Spot 训练.

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

基本试用训练作业名称。此参数由 自动设置为当前训练作业Amazon SageMaker 调试程序。

必需

有效值:String

patience_train

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

可选

有效值:整数

默认值: 5

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

可选

有效值:整数

默认值: 10

delta

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

可选

有效值:浮点值

默认值: 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

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

此规则可应用于支持的深度学习框架TensorFlowMXNet、 和 PyTorch)之一或算法XGBoost。

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

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

基本试用训练作业名称。此参数由 自动设置为当前训练作业Amazon SageMaker 调试程序。

必需

有效值:String

other_trial

您要将张量与当前 收集的张量进行比较的已完成的训练作业名称base_trial

必需

有效值:String

collection_names

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

可选

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

默认值:None

tensor_regex

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

可选

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

默认值:None

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

StalledTrainingRule 检测训练作业是否没有任何进展,并在规则触发时停止训练作业。此规则要求在由其 threshold 参数定义的时间间隔内定期保存张量。此规则将持续监控新张量,如果在触发阈值间隔规则时未发出任何新张量。

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

基本试用训练作业名称。此参数由 自动设置为当前训练作业Amazon SageMaker 调试程序。

必需

有效值:String

threshold

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

可选

有效值:整数

默认值: 1800

stop_training_on_fire

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

可选

有效值:布尔值

默认值: False

training_job_name_prefix

基本训练作业名称的前缀。如果 stop_training_on_fire 为 true,则规则在同一账户中搜索具有此前缀的SageMaker训练作业。如果发现处于不活动状态,则规则将执行操作StopTrainingJob。请注意,如果找到多个具有相同前缀的作业,则规则会跳过终止。对于每个训练作业,前缀必须设置唯一。

可选

有效值: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

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

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

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

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

基本试用训练作业名称。此参数由 自动设置为当前训练作业Amazon SageMaker 调试程序。

必需

有效值:String

collection_names

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

可选

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

默认值:None

tensor_regex

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

可选

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

默认值:None

max_threshold

张量方差上限的阈值。

可选

有效值:浮点值

默认值:None

min_threshold

张量方差下限的阈值。

可选

有效值:浮点值

默认值:None

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

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

此规则运行 numpy.allclose 方法以检查张量是否未更改。

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

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

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

基本试用训练作业名称。此参数由 自动设置为当前训练作业Amazon SageMaker 调试程序。

必需

有效值:String

collection_names

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

可选

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

默认值:None

tensor_regex

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

可选

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

默认值:None

num_steps

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

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

可选

有效值:整数

默认值: 3

rtol

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

可选

有效值:浮点值

默认值: 1e-05

atol

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

可选

有效值:浮点值

默认值: 1e-08

equal_nan

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

可选

有效值:布尔值

默认值: 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 相差多少。

可选

有效值:浮点值

默认值: 0.2

threshold_samples

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

可选

有效值:整数

默认值: 500

regex

输入数据张量的名称。

可选

有效值:String

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

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算法有效。

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

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

基本试用训练作业名称。此参数由 自动设置为当前训练作业Amazon SageMaker 调试程序。

必需

有效值:String

threshold

定义n最大特征的累积和的比例的阈值。数字由 n 参数nfeatures定义。

可选

有效值:浮点值

默认值: 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 为底的对数,可以获得树的深度。

可选

有效值:浮点值

默认值: 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" } ) ] ) ]