问题标签 [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 回答
101 浏览

python - 读取用`oc.env`解析的变量作为hydra中的整数

在我的项目中,我正在使用 python-dotenv 设置环境变量。co.env然后我使用OmegaConf 解析器在我的 YAML 中引用它。

然而,一旦我运行我的脚本,该变量似乎总是被解析为一个字符串:

据我从这里了解到,这是 的预期行为oc.env,并且env会猜测原始类型的解析器已被弃用。
如何确保将var2其读取为整数?
提前致谢。

0 投票
1 回答
64 浏览

python - 从实例化配置中获取原始 Hydra 配置

Hydra中,我可以自动实例化我的类,例如

这会导致递归实例化类,例如将“内部类”实例传递给“外部类”的位置:

有没有办法ClassA获取原始配置结构ClassB,以便我同时拥有实例ClassB和原始结构,例如模型及其超参数

0 投票
1 回答
45 浏览

python - Hydra:从子节点插入变量

给定以下配置文件:

我想构造一个MainClass类型的对象,它采用ChildClass类型的对象。ChildClass
的参数之一也用于MainClass的构造函数。

如何a使用参数插值读取子属性?

0 投票
1 回答
119 浏览

fb-hydra - 如何设置 hydra 配置以接受自定义枚举?

如何设置我的 hydra 配置以接受自定义枚举?具体来说,我遵循了结构化配置模式教程

我有一个数据类配置:

使用自定义枚举:

运行出错python my_app.py

刚刚在哪里my_app.py

而里面的配置data/config.yaml只是

0 投票
0 回答
46 浏览

fb-hydra - 扫描外部配置组中所有配置的正确方法是什么?

我想将一个配置组存储在一个外部包中,然后使用 hydra multirun 调用扫描该组中的所有配置glob(*),但glob(*)似乎找不到可用的配置。

具体来说,假设我在名为hydra_demo.

我的主配置文件将包添加到搜索路径:

正如预期的那样,我可以使用命令行覆盖来使用配置组中的任一配置:

此外,正如预期的那样,如果我没有从组中指定配置,它会列出两个选项:

但是,使用 glob 运行所有选项并不像我预期的那样工作:

但是,如果我将hyper_param_settings包中的文件夹复制到主配置所在的文件夹中,我确实会得到预期的行为(但没有实现将配置组放在单独的包中的目标):

谁能发现我误解 hydra 的地方?

0 投票
0 回答
49 浏览

fb-hydra - 使用光线启动器插件配置 hydra 项目

我已经用于hydra在 HPC slurm 集群上启动/跟踪大型 iid 实验(令人尴尬的并行实验),现在我正在尝试使用hydra它的ray(不是ray_aws)插件进行我想在 HPC 上进行的多智能体强化学习实验slurm 集群。总而言之,我想启动一个包含多个代理的实验,该实验汇总并平均多个片段的响应。使用ray,这将需要一个节点为每一集收集集群上head多个 iid 节点的输出。worker

我现在的问题是我不太了解ray插件如何为需要与slurm 集群上的节点一起使用的函数和类hydra设置参数。我在此处查看了有关插件的文档,但链接的示例配置并未指示如何设置或在 hydra 配置文件中。ray.remote()workerhydrarayray.initray.remote

在做了更多的研究、修补和思考之后,我意识到我可能需要使用hydra's compose api来允许模块化来指定哪个函数使用什么类型的资源,即 slurm 集群中有多少cpustasks每个工人。

我有两个关于通过内置插件或api使用hydrawith的问题:raycompose

  • 如何在不使用 compose APIray的情况下使用内置启动器并设置配置?ray.remote()我可以在简单示例中更改文件中的ray.init启动器参数,但尚不清楚我将如何在此插件和示例中进行设置。config.yamlray.remote()
  • compose在省略对 to 的覆盖时,我能够使ray api 示例正常工作,但是在示例中传递to时hydra.compose遇到错误(hydra.errors.ConfigCompositionException: Could not override 'dataset'. No match in the defaults list.):overrideshydra.compose()ray compose

我意识到它可能无法@hydra.main与我试图对 slurm HPC 集群做的事情一起使用,但我很好奇如何设置ray.remote()。对于第二个问题,这更像是一个技术问题,我很好奇如何解决以供将来参考。我感谢任何建议或指导,并希望这些问题使这个可爱的库对其他人更有用。

0 投票
0 回答
76 浏览

python - 在配置文件中指定 Hydra 多轮扫描

我想运行Hydra multirun,但在配置文件中指定扫描。在请求功能请求之前,我想知道是否有办法做到这一点。

到目前为止,我尝试过的内容如下:

树结构:

内容my_appy.py

内容conf/config.yaml

内容conf/compile/base.yaml

内容conf/compile/grid_search.yaml

当我运行时python my_app.py -m compile=grid_search,我得到以下输出:

这是我理解的输出,因为在此示例中,无法区分保存列表的配置变量和要扫描的配置变量。有没有在配置文件中指出这样的事情?

基本上我希望能够在配置文件中而不是在命令行或 shell 脚本中指定我的网格搜索。

额外的问题:对于由字典覆盖指定的扫描,这将如何完成,就像在这个问题中一样?

0 投票
2 回答
204 浏览

fb-hydra - 是否可以在 hydra-core python 包的结构化配置中使用 Pydantic 而不是数据类?

最近我开始使用hydra来管理我的应用程序中的配置。我使用结构化配置为 .yaml 配置文件创建架构。Hyda 中的结构化配置使用数据类进行类型检查。但是,我还想对我在结构化配置中指定的某些参数使用某种验证器(类似于this)。

你知道是否有可能为此目的使用 Pydantic 吗?当我尝试使用 Pydantic 时,OmegaConf 抱怨它:

0 投票
1 回答
34 浏览

fb-hydra - 用于 ML 模型的 hydra 组合

我有一些 ML 组件的配置如下:

现在我有另一个配置文件models/vae.yaml,我想将其定义为具有这些编码器和解码器配置。

所以整个事情的结构如下:

我应该如何定义,vae.yaml以便编码器和解码器的配置可以传递给底层对象(如果可能的话,可以通过命令行覆盖)?

我试过类似的东西:

然而,这导致 Could not override 'ml/encoder'. No match in the defaults list.

0 投票
2 回答
78 浏览

python - 如何在命令行上指定列表

我对 hydra 进行了以下配置:

我可以将其覆盖为:

但是,当我尝试将列表指定为:

然后我收到以下错误:

我不确定这是否与 zsh shell 或 hydra 问题有关