Skip to main content

jsonargparse

tip

如果您尚未使用ClearML,请参阅入门指南以获取设置说明。

jsonargparse 是一个用于创建命令行界面的Python包。 ClearML 与 jsonargparse 无缝集成,并自动记录其命令行参数和连接的配置文件。

你只需要添加两行代码:

from clearml import Task

task = Task.init(task_name="<task_name>", project_name="<project_name>")

当代码运行时,ClearML 会记录你的命令行参数,你可以在 WebApp 中查看这些参数, 具体位置在实验的 配置 > 超参数 > 参数 部分。

Jsonargparse集成

自动日志控制

默认情况下,当ClearML集成到您的脚本中时,它会捕获所有的jsonargparse参数。 但是,您可能希望对实验日志的内容有更多的控制。要控制任务从参数解析器记录参数的行为,请使用Task.init()auto_connect_arg_parser参数。 通过将该参数设置为False,可以完全禁用所有自动日志记录。

auto_connect_arg_parser=False

为了更精细地控制记录的参数,输入一个包含参数-布尔对的字典。False值将排除指定的参数。未指定的参数默认为True

例如,以下代码将不会记录Example_1参数,但会记录所有其他参数。

auto_connect_arg_parser={"Example_1": False}

要排除所有未指定的参数,请将*键设置为False。例如,以下代码将记录Example_2参数。

auto_connect_arg_parser={"Example_2": True, "*": False}

远程执行

在用户界面中,您可以多次克隆任务并对其进行修改,以便由ClearML Agent执行。 代理会执行您在用户界面中所做的修改代码,甚至可以覆盖硬编码的值。

如果您连接了一个jsonargparse配置文件(例如使用LightningCLI),请确保在配置 > 超参数 > 参数部分将_ignore_ui_overrides设置为False。这样,在自定义实验被加入队列后,任务将在执行过程中使用新的值。

代码示例

查看代码示例,演示如何将ClearML与使用jsonargparse的代码集成。