jsonargparse
tip
如果您尚未使用ClearML,请参阅入门指南以获取设置说明。
jsonargparse 是一个用于创建命令行界面的Python包。
ClearML 与 jsonargparse
无缝集成,并自动记录其命令行参数和连接的配置文件。
你只需要添加两行代码:
from clearml import Task
task = Task.init(task_name="<task_name>", project_name="<project_name>")
当代码运行时,ClearML 会记录你的命令行参数,你可以在 WebApp 中查看这些参数, 具体位置在实验的 配置 > 超参数 > 参数 部分。
自动日志控制
默认情况下,当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
的代码集成。