火车:我可以重置任务的状态吗? (从“中止”回到“正在运行”)
Posted
技术标签:
【中文标题】火车:我可以重置任务的状态吗? (从“中止”回到“正在运行”)【英文标题】:Trains: Can I reset the status of a task? (from 'Aborted' back to 'Running') 【发布时间】:2020-10-20 13:34:03 【问题描述】:我不得不在中途停止训练,这将 Trains 状态设置为 Aborted
。
后来我从最后一个检查点继续,但状态仍然是Aborted
。
此外,自动训练指标不再出现在仪表板中(尽管自定义指标仍然如此)。
我可以将状态重置回 Running
并让 Trains 再次记录训练统计信息吗?
编辑:继续训练时,我使用Task.get_task()
而不是Task.init()
检索任务。也许这就是训练数据不再更新的原因?
Edit2:我也试过Task.init(reuse_last_task_id=original_task_id_string)
,但它只是创建了一个新任务,并没有重复使用给定的任务ID。
【问题讨论】:
【参考方案1】:免责声明:我是 Allegro Trains 团队的成员
继续训练时,我使用 Task.get_task() 而不是 Task.init() 检索任务。也许这就是训练数据不再更新的原因?
是的,这是继续执行相同任务的唯一方法。
您也可以用task.mark_started()
将其标记为开始,表示不会启动自动日志记录,因为Task.get_task
通常用于访问以前执行的任务而不继续它(如果您认为继续用例很重要,请感觉免费打开一个GitHub issue,我绝对可以看到那里的价值)
你也可以做一些不同的事情,从上次运行结束的最后一次迭代继续创建一个新任务。请注意,如果您加载权重文件 (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 问题。
【讨论】:
@michael-litvin 注意我编辑了答案,它应该说“set_initial_iteration”而不是“set_last_iteration”:) 已添加an issue on github以上是关于火车:我可以重置任务的状态吗? (从“中止”回到“正在运行”)的主要内容,如果未能解决你的问题,请参考以下文章
Heroku - ClearDB:连接中止 - 对等方重置连接
我可以在不重置浏览器状态的情况下按顺序运行多个 RSpec/Selenium 测试吗?
javax.net.ssl.SSLException:SSL 握手中止连接由对等方重置,同时调用 web 服务 Android