火车:我可以重置任务的状态吗? (从 'Aborted' 回到 'Running')

Trains: Can I reset the status of a task? (from 'Aborted' back to 'Running')

我不得不在中途停止训练,这将训练状态设置为 Aborted。 后来我从上一个checkpoint继续,状态还是Aborted。 此外,自动训练指标不再出现在仪表板中(尽管自定义指标仍然存在)。

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

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

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

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

When continuing training, I retrieved the task using Task.get_task() and not Task.init(). Maybe that's why training stats are not updated anymore?

是的,这是继续执行同一任务的唯一方法。 您还可以将其标记为以 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')

顺便说一句:

I also tried Task.init(reuse_last_task_id=original_task_id_string), but it just creates a new task, and doesn't reuse the given task ID.

这是一个延续之前 运行 的界面的好主意,请随时将其添加为 GitHub 问题。