hyperdrive 包
包含支持超参数优化的模块和类。
超参数是所选的可调整参数,用于指导训练过程的模型训练。 HyperDrive 包可帮助你自动选择这些参数。 例如,可以将参数搜索空间定义为离散或连续,将基于搜索空间的采样方法定义为随机、网格或贝叶斯。 此外,还可以在超参数优化试验中指定要优化的主要指标,以及是最小化还是最大化该指标。 还可以定义提前终止策略,通过该策略取消表现不好的试验运行并启动新的试验运行。 若要为 HyperDrive 定义可重复使用的机器学习工作流,请使用 hyper_drive_step 创建 Pipeline。
模块
error_definition |
HyperDrive SDK 的错误代码定义。 |
error_strings |
在整个 HyperDrive SDK 中使用的错误字符串的集合。 |
exceptions |
HyperDrive 引发的异常。 |
parameter_expressions |
定义可在 HyperDrive 中用于描述超参数搜索空间的函数。 这些函数用于指定不同类型的超参数分布。 分布是在为超参数扫描配置采样时定义的。 例如,使用 RandomParameterSampling 类时,可以选择从一组离散值或连续值的分布中采样。 在这种情况下,可使用 choice 函数生成一组离散值,使用 uniform 函数生成连续值的分布。 有关使用这些函数的示例,请参阅教程:https://docs.microsoft.com/azure/machine-learning/how-to-tune-hyperparameters。 |
类
BanditPolicy |
根据 slack 条件以及用于评估的频率和延迟间隔,定义提前终止策略。 使用 slack 因子、slack_amount和评估间隔初始化 BanditPolicy。 |
BayesianParameterSampling |
定义超参数搜索空间上的 Bayesian 采样。 Bayesian 采样尝试根据先前样本的执行情况智能地选取下一个超参数样本,以便新样本改进报告的主要指标。 初始化 BayesianParameterSampling。 |
EarlyTerminationPolicy |
所有提前终止策略的抽象基类。 初始化提前终止策略。 |
GridParameterSampling |
定义超参数搜索空间上的网格采样。 初始化 GridParameterSampling。 |
HyperDriveConfig |
定义 HyperDrive 运行的配置。 HyperDrive 配置包括有关超参数空间采样、终止策略、主要指标、配置恢复、估算器以及要在其上运行试验的计算目标的信息。 初始化 HyperDriveConfig。 |
HyperDriveRun |
HyperDriveRun 包含提交的 HyperDrive 试验的详细信息。 此类可用于管理、检查状态和检索 HyperDrive 运行以及生成的每个子运行的运行详细信息。 初始化 HyperDrive 运行。 |
HyperDriveRunConfig |
定义 HyperDrive 运行的配置。 配置包括有关参数空间采样、终止策略、主要指标、估计器和执行运行试验的计算目标的信息。 初始化 HyperDriveConfig。 |
HyperParameterSampling |
所有超参数采样算法的抽象基类。 此类封装了派生采样类的超参数空间、采样方法和其他属性:BayesianParameterSampling、GridParameterSampling 和 RandomParameterSampling。 初始化 HyperParameterSampling。 |
MedianStoppingPolicy |
基于所有运行的主要指标的移动平均定义提前终止策略。 初始化 MedianStoppingPolicy。 |
NoTerminationPolicy |
指定不应用提前终止策略。 每次运行都将执行,直到完成。 初始化 NoTerminationPolicy。 |
RandomParameterSampling |
定义超参数搜索空间上的随机采样。 初始化 RandomParameterSampling。 |
TruncationSelectionPolicy |
定义一个提前终止策略,该策略在每个评估间隔内取消给定百分比的运行。 初始化 TruncationSelectionPolicy。 |
枚举
PrimaryMetricGoal |
定义超参数优化支持的指标目标。 指标目标用于确定指标的值越高是越好或越差。 在比较基于主要指标的运行时,将使用指标目标。 例如,你可能希望最大限度地提高准确性或最小化误差。 配置 HyperDrive 运行时,主要指标名称和目标是在 HyperDriveConfig 类中指定的。 |
函数
choice
lognormal
指定根据 exp(normal(mu, sigma)) 绘制的值。
返回值的对数呈正态分布。 优化时,此变量被限制为正数。
lognormal(mu, sigma)
参数
名称 | 说明 |
---|---|
mu
必需
|
正态分布的平均值。 |
sigma
必需
|
正态分布的标准偏差。 |
返回
类型 | 说明 |
---|---|
随机表达式。 |
loguniform
指定对数均匀分布。
根据 exp(uniform(min_value, max_value)) 绘制值,使返回值的对数均匀分布。 优化时,此变量被限制为区间 [exp(min_value), exp(max_value)]
loguniform(min_value, max_value)
参数
名称 | 说明 |
---|---|
min_value
必需
|
范围内的最小值将是 exp(min_value)(含)。 |
max_value
必需
|
范围内的最大值将是 exp(max_value)(含)。 |
返回
类型 | 说明 |
---|---|
随机表达式。 |
normal
指定正态分布的实际值,包括平均值 mu 和标准偏差 sigma。
优化时,这是一个无约束变量。
normal(mu, sigma)
参数
名称 | 说明 |
---|---|
mu
必需
|
正态分布的平均值。 |
sigma
必需
|
正态分布的标准偏差。 |
返回
类型 | 说明 |
---|---|
随机表达式。 |
qlognormal
指定类似于 round(exp(normal(mu, sigma)) / q) * q 的值。
适用于目标为平滑且随变量大小(一侧有界)而更加平滑的离散变量。
qlognormal(mu, sigma, q)
参数
名称 | 说明 |
---|---|
mu
必需
|
正态分布的平均值。 |
sigma
必需
|
正态分布的标准偏差。 |
q
必需
|
平滑因子。 |
返回
类型 | 说明 |
---|---|
随机表达式。 |
qloguniform
指定 round(exp(uniform(min_value, max_value) / q) * q 格式的均匀分布。
这适用于目标为“平滑”且随值大小而更加平滑(但上下应该都有界)的离散变量。
qloguniform(min_value, max_value, q)
参数
名称 | 说明 |
---|---|
min_value
必需
|
范围内的最小值(含)。 |
max_value
必需
|
范围内的最大值(含)。 |
q
必需
|
平滑因子。 |
返回
类型 | 说明 |
---|---|
随机表达式。 |
qnormal
指定类似于 round(normal(mu, sigma) / q) * q 的值。
适用于可能取 mu 相近的值但基本无界的离散变量。
qnormal(mu, sigma, q)
参数
名称 | 说明 |
---|---|
mu
必需
|
正态分布的平均值。 |
sigma
必需
|
正态分布的标准偏差。 |
q
必需
|
平滑因子。 |
返回
类型 | 说明 |
---|---|
随机表达式。 |
quniform
指定 round(uniform(min_value, max_value) / q) * q 格式的均匀分布。
这适用于其目标仍是稍微“平滑”但上下都应有界的离散值。
quniform(min_value, max_value, q)
参数
名称 | 说明 |
---|---|
min_value
必需
|
范围内的最小值(含)。 |
max_value
必需
|
范围内的最大值(含)。 |
q
必需
|
平滑因子。 |
返回
类型 | 说明 |
---|---|
随机表达式。 |
randint
指定 [0, upper) 范围中的一组随机整数。
此分布的语义是,与更远的整数值相比,相近整数值之间的损失函数没有更多的相关性。 例如,这是描述随机种子的适当分布。 如果损失函数对相近整数值来说更加相关,则可能应使用其中一个“量化”连续分布,例如 quniform、qloguniform、qnormal 或 qlognormal。
randint(upper)
参数
名称 | 说明 |
---|---|
upper
必需
|
整数范围的上限(不含)。 |
返回
类型 | 说明 |
---|---|
随机表达式。 |