离线存储任务数据
如果您的计算机处于离线状态,或者您不希望任务的数据和日志存储在ClearML服务器中,请使用离线模式选项。在此模式下,任务从代码中捕获的所有数据和日志都存储在本地会话文件夹中,稍后可以上传到ClearML服务器。
设置任务为离线模式
您可以通过以下方式之一启用离线模式:
-
在初始化任务之前,使用
Task.set_offline
类方法并将offline_mode
参数设置为True
from clearml import Task
# Use the set_offline class method before initializing a Task
Task.set_offline(offline_mode=True)
# Initialize a Task
task = Task.init(project_name="examples", task_name="my_task") -
在运行任务之前,设置
CLEARML_OFFLINE_MODE=1
离线模式仅适用于使用Task.init()
创建的任务,而不适用于使用Task.create()
创建的任务。
任务捕获的所有信息都保存在本地。一旦任务脚本执行完成,它会被压缩。会话的压缩文件夹的位置是 ~/.clearml/cache/offline/
。
任务的控制台输出显示任务ID和包含会话捕获信息的文件夹路径:
ClearML Task: created new task id=offline-372657bb04444c25a31bc6af86552cc9
...
...
ClearML Task: Offline session stored in /home/user/.clearml/cache/offline/b786845decb14eecadf2be24affc7418.zip
上传会话数据
使用以下方法之一将任务离线捕获的会话执行数据上传到ClearML服务器:
-
clearml-task
命令行界面clearml-task --import-offline-session "/home/user/.clearml/cache/offline/b786845decb14eecadf2be24affc7418.zip"
使用
--import-offline-session
参数传递包含会话的zip文件夹的路径。 -
Task.import_offline_session
方法。from clearml import Task
Task.import_offline_session(
session_folder_zip="/home/user/.clearml/cache/offline/b786845decb14eecadf2be24affc7418.zip"
)在
session_folder_zip
参数中,插入包含会话的zip文件夹的路径。要从创建会话的同一脚本上传会话,首先关闭任务,然后禁用离线模式:
Task.set_offline(offline_mode=True)
task = Task.init(project_name="examples", task_name="my_task")
# task code
task.close()
Task.set_offline(False)
Task.import_offline_session(task.get_offline_mode_folder())您还可以使用离线任务通过提供先前执行任务的ID来更新现有已执行任务的执行。为了避免覆盖指标,您可以使用
iteration_offset
指定初始迭代偏移量。Task.import_offline_session(
session_folder_zip="path/to/session/.clearml/cache/offline/b786845decb14eecadf2be24affc7418.zip",
previous_task_id="12345679",
iteration_offset=1500
)
两种选项都将上传任务的完整执行细节和输出,并返回一个指向ClearML服务器上任务结果页面的链接:
ClearML: Importing offline session from /home/user/.clearml/cache/offline/b786845decb14eecadf2be24affc7418.zip
ClearML results page: https://app.clear.ml/projects/4043a1657f374e9298649c6ba72ad233/experiments/bb8b0f6fa0f94536a0d27fb55f02d3a5/output/log
会话详情可以在ClearML WebApp中查看,位于“examples”项目的“my_task”实验中,如初始化任务时所指定的那样。