BanditPolicy 类

根据 slack 条件以及用于评估的频率和延迟间隔,定义提前终止策略。

继承
azureml.train.hyperdrive.policy.EarlyTerminationPolicy
BanditPolicy

构造函数

BanditPolicy(evaluation_interval=1, slack_factor=None, slack_amount=None, delay_evaluation=0)

参数

slack_factor
float
默认值: 1

用于计算与最佳性能试验运行之间的允许距离的比率。

slack_amount
float
默认值: None

与最佳性能运行之间的绝对允许距离。

evaluation_interval
int
默认值: None

应用策略的频率。

delay_evaluation
int
默认值: 0

延迟第一个策略评估的间隔数。 如果指定,则策略将按照大于或等于 delay_evaluationevaluation_interval 倍数应用。

注解

Bandit 策略采用以下配置参数:

  • slack_factor:与最佳性能训练运行相关的允许的 slack 值。 此因子以比率的形式指定 slack。

  • slack_amount:与最佳性能训练运行相关的允许的 slack 值。 此因子将 slack 指定为绝对值。

  • evaluation_interval:可选。 应用策略的频率。 每次训练脚本都会将主要指标计数记录为一个间隔。

  • delay_evaluation:可选。 延迟策略评估的间隔数。 使用此参数可避免过早终止训练运行。 如果指定,则策略将按照大于或等于 delay_evaluationevaluation_interval 倍数应用。

将终止任何不属于与最佳性能运行相关的评估指标的 slack 因子或 slack 值的运行。

请考虑使用其 slack_factor = 0.2 和 evaluation_interval = 100 的 Bandit 策略。 假设运行 X 是当前性能最佳的运行,在 100 个间隔后AUC(性能指标)为 0.8。 此外,假设运行报告的最佳 AUC 为 Y。此策略将 (Y + Y * 0.2) 的值与 0.8 比较,如果此值小于 0.8,则取消运行。 如果 delay_evaluation = 200,则首次应用策略的间隔为 200。

现在,请考虑使用其 slack_amount = 0.2 和 evaluation_interval = 100 的 Bandit 策略。 如果运行 3 是当前性能最佳的运行,AUC(性能指标)在 100 次间隔后为 0.8,则 100 次迭代后 AUC 小于 0.6 (0.8 - 0.2) 的任何运行都将终止。 同样,delay_evaluation 还可用于延迟特定序列数的第一个终止策略评估。

有关应用提前终止策略的信息,请参阅优化模型的超参数

属性

delay_evaluation

返回第一个评估延迟的序列数。

返回

延迟评估。

返回类型

int

evaluation_interval

返回评估间隔值。

返回

评估间隔。

返回类型

int

slack_factor

返回关于最佳性能训练运行的 slack 因子。

返回

slack 因子。

返回类型

POLICY_NAME

POLICY_NAME = 'Bandit'