1

我想在网格搜索期间测试火车的使用情况,但不清楚如何做。

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

在演示服务器中创建一个实验并记录所有内容,但无论“task_name”和

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

可以用不同的“task_name”调用,但不会将任何数据记录到服务器中,只创建“草稿”。

这是一个示例代码:

 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(...)

它记录了实验选项卡下的所有信息,而“草稿”下没有记录。在过去的两个小时里,我尝试阅读提供的一些文档并阅读源代码,但没有运气。

有什么帮助吗?

4

2 回答 2

1

通过查看其 GitHub 存储库中已关闭的错误来解决:链接

 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()

那么每个任务都是项目“演示”中的不同实验。

于 2019-08-19T14:15:30.780 回答
0

声明者:我是 TRAINS 团队的一员

Yes, that's exactly the answer. The idea is that you always have one main Task, in order to create a new one you need to close the running Task, and re-initialize with a new name. Kudos on solving it so quickly :)

BTW: You can see examples here/and here, showing how to send accuracy logs so it is easier to compare the experiments, especially when running hyper-parameter search.

于 2019-08-19T18:51:44.540 回答