火车如何与RayTune等超参数优化工具一起使用?

问题描述

什么是合理的设置呢?我可以在同一执行中多次调用Task.init()吗?

解决方法

免责声明:我是allegro.ai火车团队的成员

一种解决方案是从trains.automation.optimization.SearchStrategy继承并扩展功能。这类似于Optuna集成,其中Optuna用于贝叶斯优化,而Trains进行超参数设置,启动实验和获取性能指标。

另一个选择(不可扩展,但可能更容易开始)是使用RayTuner运行您的代码(显然是在用户上设置环境/ git repo / docker等),并使您的训练代码看起来像:

# create new experimnt
task = Task.init('hp optimization','ray-tuner experiment',reuse_last_task_id=False)
# store the hyperparams (assuming hparam is a dict) 
task.connect(hparam) 
# training loop here
# ...
# shutdown experimnt
task.close()

这意味着每次RayTuner执行脚本时,都会创建一个带有新的超级参数集的新实验(假设haparm是一个字典,它将作为超级参数注册在实验上)>