Skip to main content

离线存储任务数据

如果您的计算机处于离线状态,或者您不希望任务的数据和日志存储在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

warning

离线模式仅适用于使用Task.init()创建的任务,而不适用于使用Task.create()创建的任务。

任务捕获的所有信息都保存在本地。一旦任务脚本执行完成,它会被压缩。会话的压缩文件夹的位置是 ~/.clearml/cache/offline/.zip

任务的控制台输出显示任务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”实验中,如初始化任务时所指定的那样。