问题标签 [fb-hydra]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
250 浏览

fb-hydra - 使用 SLURM 和 Horovod 运行 hydra 配置的项目

现在,我正在使用 Horovod 对我的 pytorch 模型进行分布式训练。我想开始为 --multirun 功能使用 hydra 配置,并使用 SLURM 将所有作业排入队列。我知道有 Submitid 插件。但我不确定,整个管道如何与 Horovod 合作。现在,我的训练命令如下所示:

假设我想使用 hydra --multirun 运行多个多 GPU 实验,我想使用 slurm 将运行排入队列,因为我的资源有限并且大部分时间会按顺序运行,我想使用 Horovod 来同步我的梯度网络。这个设置会开箱即用吗?如果 slurm 负责资源,我需要指定 CUDA_VISIBLE_DEVICES 吗?我需要如何调整我的运行命令或其他设置以使此设置合理?我对多运行功能如何处理 GPU 资源特别感兴趣。欢迎任何建议。

0 投票
1 回答
79 浏览

fb-hydra - 递归 i 初始化以及如何在另一个配置组中使用配置组

我正在探索 hydra 中递归初始化的选项。我能够基于此 PR设置一个工作示例。在尝试更高级的东西时,我偶然发现了以下问题。我的目录结构如下:

配置包含:

我想递归地实例化 Tokenizer 而不需要显式地编写 Normalizer 的所有参数,因为它们都已经在 Normalizer.yaml 文件中提到了。换句话说,我想在标记器配置组中使用规范器配置组。现在,如果我调用tokenizer = instantiate(cfg.tokenizer),结果是一个 Tokenizer 类对象,但是tokenizer.normalizer是一个 string Normalizer。如果我使用值插值并按如下方式设置项目:

结果变量tokenizer.normalizer是一个包含 Normalizer 的 args 的 dict,{"_target_": ...}而不是初始化的 Normalizer 类。如何避免需要在标记器配置中显式重复规范器的定义?

0 投票
2 回答
1866 浏览

fb-hydra - 如何在 hydra 中进行文件覆盖?

我有一个主配置文件,比如说config.yaml

我希望能够在命令行上用另一个文件(例如 say )覆盖它,big_model.yaml我在概念上会使用如下:

可能big_model.yaml看起来像:

我希望能够用任意数量的此类文件覆盖,每个文件都优先于最后一个。假设我也有fast_learn.yaml

所以我想在概念上做一些类似的事情:

在 hydra 中执行此操作的最简单/最标准的方法是什么?(或者可能在 omegaconf 中?)

(请注意,我希望这些覆盖文件理想情况下只是标准 yaml 文件,理想情况下覆盖早期的 yaml 文件;但如果我必须使用覆盖 DSL 来编写,我可以这样做,如果这是最简单/最好的/最标准的方式)

0 投票
1 回答
128 浏览

fb-hydra - 如何禁用目录更改?

如何禁用目录更改?

目前,我的配置中的所有相对路径都是相对于 hydra 输出文件夹解释的,而不是相对于当前工作文件夹。

我希望能够以某种方式禁用此选项。

0 投票
1 回答
1078 浏览

fb-hydra - 如何从配置中配置 hydra 输出目录?

如何从配置中配置 hydra 输出目录?

就像,我希望能够指定 hydra 将其 hydra.yaml 转储到的目录,而不是将其硬编码到输出。

我想实现这一目标的一种方法可能是:

  • 可以选择实例化 hydra 而不将配置转储到输出
  • 有一个 hydra 方法,它将把 hydra 配置转储到我们选择的文件夹中

想法?

0 投票
1 回答
72 浏览

fb-hydra - 确认递归实例化将允许分层对象实例化

我希望能够编写一个 yaml 文件,例如:

然后在我的程序中通过简单地运行整个事情:

我看到有一个 PR 可以启用递归实例化,即https://github.com/facebookresearch/hydra/pull/989请您确认这将启用上面的代码/配置吗?

另外,这个合并的 PR 的预定发布日期是什么?

(我觉得把基本上是功能请求的问题放到stackoverflow中有点不标准,所以如果你对把这些放在哪里有更好的建议,请告诉我)

0 投票
3 回答
2800 浏览

python - 如何从脚本中覆盖 hydra 工作目录?

我知道我可以通过hydra.run.dir=XXX从命令行设置来更改配置中的工作目录。但是如何在不使用 CLI 参数的情况下从脚本中正确地做到这一点,即使日志也保存在我设置的目录中?

此代码不起作用,因为:

  1. 当我尝试更改目录和
  2. 没有这样的属性cfg.hydra

UPD:我在评论中得到了一个指针。我可以在调用 hydra 之前更改块中的 hydra 参数if __name__ == 'main':hydra.run.dir但是如何从脚本中获取和修改呢?

我的 hydra 配置如下所示:

0 投票
1 回答
146 浏览

hydra - 在装饰器中设置 Hydra 默认配置

有没有办法在 hydra 装饰器中定义默认配置并且不将其保存到任何 yaml 文件中?对于一些小脚本,它可能非常方便。

像这样的东西:

0 投票
2 回答
1099 浏览

python - 如何使用 Hydra-fb 在列表中收集配置文件?

假设我的代码中有一个抽象类db,并且类db1, db1, ...db1继承自db. 我的项目使用hydra并具有以下结构:

我需要一个列表,db所以我想得到一个像这样的最终配置文件:

所以这dbdb1, db2,的参数列表db3。在conf.yaml文件中,我想像:

有没有办法做这样的事情?

0 投票
2 回答
1868 浏览

fb-hydra - 禁用 hydra 的文件输出

我正在使用hydra记录实验的超参数。

有时我想做一个空运行来检查一些东西。为此,我不需要任何保存的参数,所以我想知道在这种情况下如何完全禁用对文件系统的保存?