2

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

4

1 回答 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 回答