学习资料:B站视频
wandb.sweep:低代码,可视化,分布式自动调参工具
使用wandb的sweep进行超参调优,具有以下优点:
- 低代码:只需要配置一个sweep.yaml的配置文件,或定义一个配置dict,几乎不用编写调参相关代码
- 可视化:在wandb网页上可以实时监控调参过程中每次尝试,并可视化的分析调参任务的目标值分布,超参重要性等。
- 分布式:sweep采用类似master-workers的controller-agents架构,controller在wandb的服务器机器上运行,agents在用户机器上运行,controller和agents之间通过互联网进行通信。同时启动多个agents即可轻松实现分布式超参搜索。
使用Sweep的3个步骤
- 配置sweep_config:配置调优算法、调优目标,需要优化的超参数列表等。
- 初始化sweep controller:
sweep_id = wandb.sweep(sweep_config, project)
- 启动sweep agents:
wandb.agent(sweep_id, function = train)
调参可视化和跟踪
-
平行坐标系图:可以直观展示哪些超参数组合更加容易获取更好的结果。
-
超参数重要性图:可以显示超参数和优化目标最终取值的重要性,和相关性方向。