使用网格搜索进行训练

trains with grid search

我想测试 trains 在网格搜索期间的使用,但不清楚如何进行。

from trains import Task 
Task.init(project_name="project name", task_name='name')

在演示服务器中创建一个实验并记录所有但无论 'task_name' 和

都不能调用 init 两次
from trains import Task 
Task.create(project_name="project name", task_name='name')

可以用不同的 'task_name' 调用,但因此不会将任何数据记录到服务器并仅创建 'Draft'.

这里有一个示例代码:

 epochs=[160,300]
 for epoch in epochs:
    model = define_model_run(epoch)
    model.fit(x_train,y_train)
    score = model.score(...)

我最后的尝试是:

 epochs=[160,300]
 task=Task.init(project_name="demo", task_name='search')
 for epoch in epochs:
    task.create(project_name="demo", task_name=f'search_{epoch}')
    model = define_model_run(epoch)
    model.fit(x_train,y_train)
    score = model.score(...)

记录了实验选项卡下的所有信息,none 记录了 'Draft' 下的所有信息。 我在过去的两个小时里尝试了阅读提供的一些文档和阅读源代码,但没有成功。

有什么帮助吗?

通过查看 GitHub 存储库中已关闭的错误解决:link

 epochs=[160,300]
 for epoch in epochs:
    task=Task.init(project_name="demo", task_name=f'search_{epoch}')
    model = define_model_run(epoch)
    model.fit(x_train,y_train)
    score = model.score(...)
    task.close()

那么每个任务都是项目 "demo" 中的不同实验。

声明:我是 TRAINS 团队的成员

是的,这就是答案。 这个想法是你总是有一个主要任务,为了创建一个新的任务,你需要关闭 运行 任务,并用一个新名称重新初始化。 这么快解决它的荣誉:)

顺便说一句:您可以查看示例 here/and here,展示如何发送准确度日志以便比较实验,尤其是在 运行 超参数搜索时。