什么是合理的设置?我可以在同一次执行中多次调用 Task.init() 吗?
问问题
90 次
1 回答
2
免责声明:我是 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
是一个字典,它将作为超参数在实验上注册)
于 2020-08-27T13:50:33.437 回答