Master – HpBandster 的核心大脑

class hpbandster.core.master.Master(run_id, config_generator, working_directory='.', ping_interval=60, nameserver='127.0.0.1', nameserver_port=None, host=None, shutdown_workers=True, job_queue_sizes=(-1, 0), dynamic_queue_size=True, logger=None, result_logger=None, previous_result=None)[source]

Master 类负责记录和决定接下来运行什么。优化器是 Master 的实例化,它们处理决定何时在何种预算下运行何种配置的重要步骤。

参数
  • run_id (string) – Hyperband 运行的唯一标识符。例如,在运行多个并发运行时,可以使用集群的 JobID 来区分它们
  • config_generator (hpbandster.config_generators object) – 一个可以生成新配置并注册已执行运行结果的对象
  • working_directory (string) – 所有计算节点(共享文件系统)都可以访问的顶级工作目录。
  • eta (float) – 在每次迭代中,都会执行一次完整的 Sequential Halving(顺序减半)运行。在其中,在以相同的子集大小评估每个配置后,只有 1/eta 的配置会“晋级”到下一轮。必须大于或等于 2。
  • min_budget (float) – 要考虑的最小预算。必须是正数!
  • max_budget (float) – 要考虑的最大预算。必须大于 min_budget!预算将按几何级数分布,表示为 \(\sim \eta^k\),其中 \(k\in [0, 1, ... , num\_subsets - 1]\)
  • ping_interval (int) – 用于发现新节点的 ping 间隔秒数。默认为 60 秒。
  • nameserver (str) – Pyro4 nameserver 的地址
  • nameserver_port (int) – Pyro4 nameserver 的端口
  • host (str) – 要使用的网络接口的 IP 地址(或解析为该地址的名称)
  • shutdown_workers (bool) – 控制计算完成后是否关闭 worker 的标志
  • job_queue_size (tuple of ints) – 作业队列的最小和最大大小。在运行期间,当队列中的作业数量达到最小值时,队列将被填充到最大大小。默认值:(0,1)
  • dynamic_queue_size (bool) – 是否根据可用 worker 的数量更改队列大小。如果为 True(默认值),job_queue_sizes 是相对于当前 worker 数量的。
  • logger (logging.logger like object) – 用于输出一些(或多或少有意义的)信息的日志记录器
  • result_logger (hpbandster.api.results.util.json_result_logger object) – 一个将实时结果写入磁盘的结果日志记录器
  • previous_result (hpbandster.core.result.Result object) – 用于热启动本次运行的先前运行结果
active_iterations()[source]

查找活动(未标记为已完成)迭代的函数

返回list
返回类型所有活动的迭代对象(如果没有,则为空)
adjust_queue_size(number_of_workers=None)[source]
get_next_iteration(iteration, iteration_kwargs)[source]

实例化下一次迭代

覆盖此方法可更改不同优化器的迭代方式

参数
  • iteration (int) – 要实例化的迭代索引
  • iteration_kwargs (dict) – 迭代类的附加关键字参数
返回

HB_iteration

返回类型

一个有效的 HB 迭代对象

job_callback(job)[source]

作业完成后调用的方法

这将进行一些记录,并在指定了 new_result_callback 时调用用户定义的该回调函数

run(n_iterations=1, min_n_workers=1, iteration_kwargs={})[source]
运行 n_iterations 次 SuccessiveHalving
参数
  • n_iterations (int) – 本次运行要执行的迭代次数
  • min_n_workers (int) – 运行开始前的最小 worker 数量
shutdown(shutdown_workers=False)[source]
wait_for_workers(min_n_workers=1)[source]

等待直到有 worker 处于活动状态的辅助函数

参数min_n_workers (int) – 运行开始前必须存在的最小 worker 数量