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) – 用于热启动本次运行的先前运行结果
-
get_next_iteration
(iteration, iteration_kwargs)[source]¶ 实例化下一次迭代
覆盖此方法可更改不同优化器的迭代方式
参数 - iteration (int) – 要实例化的迭代索引
- iteration_kwargs (dict) – 迭代类的附加关键字参数
返回 HB_iteration
返回类型 一个有效的 HB 迭代对象