问题描述
什么是合理的设置呢?我可以在同一执行中多次调用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
是一个字典,它将作为超级参数注册在实验上)>