1

我不得不在中间停止训练,这将 Trains 状态设置为Aborted。后来我从最后一个检查点继续它,但状态仍然存在Aborted。此外,自动训练指标不再出现在仪表板中(尽管自定义指标仍然存在)。

我可以将状态重置回Running并再次让 Trains 记录训练统计信息吗?

编辑:Task.get_task()继续训练时,我使用and not检索了任务Task.init()。也许这就是训练数据不再更新的原因?

Edit2:我也试过Task.init(reuse_last_task_id=original_task_id_string)了,但它只是创建了一个新任务,并没有重用给定的任务 ID。

4

1 回答 1

1

免责声明:我是 Allegro Trains 团队的成员

继续训练时,我使用 Task.get_task() 而不是 Task.init() 检索任务。也许这就是训练数据不再更新的原因?

是的,这是继续执行相同任务的唯一方法。您也可以将其标记为以 开始task.mark_started(),表示不会启动自动日志记录,因为Task.get_task通常用于访问以前执行的任务而不继续它(如果您认为继续用例很重要,请随时打开 GitHub 问题,我绝对可以看到那里的价值)

您也可以做一些不同的事情,然后从上次运行结束的最后一次迭代继续创建一个新任务。请注意,如果您加载权重文件 (PyTorch/TF/Keras/JobLib),它将自动将其与上一次运行中创建的模型连接起来(假设模型存储在同一位置,或者如果您有模型https/S3/Gs/Azure 并且您正在使用trains.StorageManager.get_local_copy()

previous_run = Task.get_task()
task = Task.init('examples', 'continue training')
task.set_initial_iteration(previous_run.get_last_iteration())
torch.load('/tmp/my_previous_weights')

顺便提一句:

我也尝试了 Task.init(reuse_last_task_id=original_task_id_string),但它只是创建了一个新任务,并没有重用给定的任务 ID。

这对于一个界面来说是一个好主意,可以继续之前的运行,请随时将其添加为 GitHub 问题。

于 2020-06-30T11:12:59.540 回答