海德拉
tip
如果您尚未使用ClearML,请参阅入门指南以获取设置说明。
Hydra 是一个用于管理实验参数的Python框架。ClearML 与 Hydra 无缝集成,并自动记录包含所有配置文件的 OmegaConf
,以及在运行时被覆盖的值。
你只需要添加两行代码:
from clearml import Task
task = Task.init(task_name="<task_name>", project_name="<project_name>")
ClearML 将 OmegaConf 记录为一个 blob,可以在 WebApp 中查看,位于实验的 配置 > 配置对象 > OmegaConf 部分。
修改Hydra值
通过命令行
您可以使用Hydra的命令行语法来修改您的OmegaConf:覆盖、追加或删除配置值:
- 覆盖配置值:
foo.bar=value
- 追加配置值:
+foo.bar=value
- 移除配置值:
~foo.bar
或~foo.bar=value
请参阅Hydra文档以获取更多信息。
通过用户界面
在用户界面中,您可以多次克隆任务并对其进行修改,以便由ClearML Agent执行。 代理会执行您在用户界面中所做的修改代码,甚至可以覆盖硬编码的值。
克隆您的实验,然后通过以下方式之一通过用户界面修改您的Hydra参数:
-
直接修改OmegaConf:
- 在实验的配置 > 超参数 > HYDRA部分,将
_allow_omegaconf_edit_
设置为True
- 在实验的配置 > 配置对象 > OmegaConf部分,修改OmegaConf的值
- 在实验的配置 > 超参数 > HYDRA部分,将
-
添加一个实验超参数:
- 在实验的配置 > 超参数 > HYDRA部分,确保
_allow_omegaconf_edit_
设置为False
- 在同一部分,点击
编辑
,这将允许你添加参数。使用点符号输入你想要修改的OmegaConf参数。例如,如果你的OmegaConf如下所示:
dataset:
user: root
main:
number: 80使用
dataset.main.number
指定number
参数,然后设置其新值 - 在实验的配置 > 超参数 > HYDRA部分,确保
将自定义实验加入队列以执行。任务将在执行过程中使用新值。如果您使用上述第二种选项,请注意配置 > 配置对象 > OmegaConf中的OmegaConf会根据您添加的参数进行更改。
代码示例
查看示例,该示例演示了将ClearML集成到使用Hydra的脚本中这里。