evox.workflows.eval_monitor
¶
模块内容¶
类¶
评估监控器被用于单目标和多目标工作流。它与评估流程挂钩,可以监控子代及其相应的适应度并对评估计数进行跟踪。此外,它还能即时记录最优解或帕累托前沿。 |
API¶
- class evox.workflows.eval_monitor.EvalMonitor(multi_obj: bool = False, full_fit_history: bool = True, full_sol_history: bool = False, full_pop_history: bool = False, topk: int = 1, device: torch.device | None = None, history_device: torch.device | None = None)[源代码]¶
Bases:
evox.core.Monitor
评估监控器被用于单目标和多目标工作流。它与评估流程挂钩,可以监控子代及其相应的适应度并对评估计数进行跟踪。此外,它还能即时记录最优解或帕累托前沿。
初始化
初始化监视器。
- 参数:
multi_obj -- 是否为多目标优化。默认值为 False。
full_fit_history -- 是否记录适应度值的完整历史。默认为True。将其设置为FALSE可能会减少内存使用。
full_sol_history -- 是否记录完整的解的历史。默认为 False。将其设置为 True 可能会增加内存使用量。
topk -- 只影响单目标优化。要记录的精英解决方案的数量。默认为 1,将记录最佳个人。
device -- 监视器的设备。默认值为 None。
history_device -- 记录历史的设备。默认为 None。如果为 None,将使用 cpu。
小技巧
将
history_device
设置为与监视器相同的设备可以节省数据传输时间,但可能会增加设备上的内存使用量。备注
当使用
opt_direction="max"
时,适应度值会在内部被乘以 -1,以确保优化逻辑始终将最优适应度视为最小值。因此,原始适应度值(例如,monitor.topk_fitness
、monitor.fitness_history
等)将显示为取反的值。然而,像monitor.get_best_fitness()
和monitor.get_pf_fitness()
这样的访问方法会自动反转这种取反操作并返回原始的、未修改的值。- property fitness_history: List[torch.Tensor]¶
- property fit_history: List[torch.Tensor]¶
- property solution_history: List[torch.Tensor]¶
- property sol_history: List[torch.Tensor]¶
- property aux_history: Dict[str, List[torch.Tensor]]¶
- property auxiliary_history: Dict[str, List[torch.Tensor]]¶
- get_pf_fitness(deduplicate=True) torch.Tensor [源代码]¶
获取到目前为止评估的所有解决方案的近似帕累托前沿适应度值。需要启用
full_fit_history
。
- get_pf_solutions(deduplicate=True) torch.Tensor [源代码]¶
获取到目前为止已评估的所有解决方案的近似帕累托前沿解。需要启用
full_sol_history
和full_sol_history
。如果deduplicate
设置为 True,则重复的解决方案将被删除。