Skip to main content

海德拉

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值

通过命令行

您可以使用Hydra的命令行语法来修改您的OmegaConf:覆盖、追加或删除配置值:

  • 覆盖配置值:foo.bar=value
  • 追加配置值:+foo.bar=value
  • 移除配置值:~foo.bar~foo.bar=value

请参阅Hydra文档以获取更多信息。

通过用户界面

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

克隆您的实验,然后通过以下方式之一通过用户界面修改您的Hydra参数:

  • 直接修改OmegaConf:

    1. 在实验的配置 > 超参数 > HYDRA部分,将_allow_omegaconf_edit_设置为True
    2. 在实验的配置 > 配置对象 > OmegaConf部分,修改OmegaConf的值
  • 添加一个实验超参数:

    1. 在实验的配置 > 超参数 > HYDRA部分,确保_allow_omegaconf_edit_设置为False
    2. 在同一部分,点击编辑,这将允许你添加参数。使用点符号输入你想要修改的OmegaConf参数。例如,如果你的OmegaConf如下所示:

    dataset:
    user: root
    main:
    number: 80

    使用dataset.main.number指定number参数,然后设置其新值

将自定义实验加入队列以执行。任务将在执行过程中使用新值。如果您使用上述第二种选项,请注意配置 > 配置对象 > OmegaConf中的OmegaConf会根据您添加的参数进行更改。

代码示例

查看示例,该示例演示了将ClearML集成到使用Hydra的脚本中这里