迭代 – HpBandster 的任务中心

class hpbandster.core.base_iteration.BaseIteration(HPB_iter, num_configs, budgets, config_sampler, logger=None, result_logger=None)[source]

各种迭代可能性的基类。它决定了接下来应该在哪个预算下运行哪个配置。典型的选择例如是逐次减半。运行结果会被处理,并(取决于实现)决定进一步的进展。

参数
  • HPB_iter (int) – 当前的 HPBandSter 迭代索引。
  • num_configs (list of ints) – SH 每个阶段的配置数量
  • budgets (list of floats) – 与每个阶段关联的预算
  • config_sample (callable) – 一个返回有效配置的函数。它唯一的参数应该是此配置首次计划运行的预算。这可能用于选择在此特定预算耗尽后表现最佳的配置,以构建更好的 autoML 系统。
  • logger (a logger) – 一个日志记录器
  • result_logger (hpbandster.api.results.util.json_result_logger object) – 一个将实时结果写入磁盘的结果记录器
add_configuration(config=None, config_info={})[source]

向当前迭代添加新配置的函数

参数
  • config (valid configuration) – 要添加的配置。如果为 None,则从 config_sampler 采样一个配置。
  • config_info (dict) – 关于配置的一些信息,将存储在结果中。
finish_up()[source]
get_next_run()[source]

返回下一个要运行的配置和预算的函数。

此函数由 HB_master 调用,不要从您的脚本中调用它。

如果此 SH 运行已完成,或者有待处理的任务需要完成才能进入下一阶段,则返回 None。

如果当前 SH 阶段有空闲槽位需要填充(这在原始 SH 版本中从未发生),则会采样并安排一个新配置下次运行。

process_results()[source]

阶段完成后需要分析才能进行进一步计算时调用的函数。

此处的代码通过在当前预算下推进 k 个最佳(最低损失)配置来实现原始 SH 算法。k 由 num_configs 列表(参见 __init__)和当前阶段值定义。

对于更高级的方法,例如每个阶段后重新采样,只需重载此函数。

register_result(job, skip_sanity_checks=False)[source]

注册任务结果的函数

此函数由 HB_master 调用,不要从您的脚本中调用它。

class hpbandster.core.base_iteration.Datum(config, config_info, results=None, time_stamps=None, exceptions=None, status='QUEUED', budget=0)[source]
class hpbandster.core.base_iteration.WarmStartIteration(Result, config_generator)[source]

导入之前结果以进行热启动的迭代

fix_timestamps(time_ref)[source]

修改内部时间戳,使最后一次运行在时间 0 结束