免责声明:我是 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 问题。