问题标签 [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.
python - 读取用`oc.env`解析的变量作为hydra中的整数
在我的项目中,我正在使用 python-dotenv 设置环境变量。co.env
然后我使用OmegaConf 解析器在我的 YAML 中引用它。
然而,一旦我运行我的脚本,该变量似乎总是被解析为一个字符串:
据我从这里了解到,这是 的预期行为oc.env
,并且env
会猜测原始类型的解析器已被弃用。
如何确保将var2
其读取为整数?
提前致谢。
python - Hydra:从子节点插入变量
给定以下配置文件:
我想构造一个MainClass类型的对象,它采用ChildClass类型的对象。ChildClass
的参数之一也用于MainClass的构造函数。
如何a
使用参数插值读取子属性?
fb-hydra - 如何设置 hydra 配置以接受自定义枚举?
如何设置我的 hydra 配置以接受自定义枚举?具体来说,我遵循了结构化配置模式教程。
我有一个数据类配置:
使用自定义枚举:
运行出错python my_app.py
刚刚在哪里my_app.py
:
而里面的配置data/config.yaml
只是
fb-hydra - 扫描外部配置组中所有配置的正确方法是什么?
我想将一个配置组存储在一个外部包中,然后使用 hydra multirun 调用扫描该组中的所有配置glob(*)
,但glob(*)
似乎找不到可用的配置。
具体来说,假设我在名为hydra_demo
.
我的主配置文件将包添加到搜索路径:
正如预期的那样,我可以使用命令行覆盖来使用配置组中的任一配置:
此外,正如预期的那样,如果我没有从组中指定配置,它会列出两个选项:
但是,使用 glob 运行所有选项并不像我预期的那样工作:
但是,如果我将hyper_param_settings
包中的文件夹复制到主配置所在的文件夹中,我确实会得到预期的行为(但没有实现将配置组放在单独的包中的目标):
谁能发现我误解 hydra 的地方?
fb-hydra - 使用光线启动器插件配置 hydra 项目
我已经用于hydra
在 HPC slurm 集群上启动/跟踪大型 iid 实验(令人尴尬的并行实验),现在我正在尝试使用hydra
它的ray
(不是ray_aws
)插件进行我想在 HPC 上进行的多智能体强化学习实验slurm 集群。总而言之,我想启动一个包含多个代理的实验,该实验汇总并平均多个片段的响应。使用ray
,这将需要一个节点为每一集收集集群上head
多个 iid 节点的输出。worker
我现在的问题是我不太了解ray
插件如何为需要与slurm 集群上的节点一起使用的函数和类hydra
设置参数。我在此处查看了有关插件的文档,但链接的示例配置并未指示如何设置或在 hydra 配置文件中。ray.remote()
worker
hydra
ray
ray.init
ray.remote
在做了更多的研究、修补和思考之后,我意识到我可能需要使用hydra
's compose
api来允许模块化来指定哪个函数使用什么类型的资源,即 slurm 集群中有多少cpus
和tasks
每个工人。
我有两个关于通过内置插件或api使用hydra
with的问题:ray
compose
- 如何在不使用 compose API
ray
的情况下使用内置启动器并设置配置?ray.remote()
我可以在简单示例中更改文件中的ray.init
启动器参数,但尚不清楚我将如何在此插件和示例中进行设置。config.yaml
ray.remote()
compose
在省略对 to 的覆盖时,我能够使ray api 示例正常工作,但是在示例中传递to时hydra.compose
遇到错误(hydra.errors.ConfigCompositionException: Could not override 'dataset'. No match in the defaults list.
):overrides
hydra.compose()
ray
compose
我意识到它可能无法@hydra.main
与我试图对 slurm HPC 集群做的事情一起使用,但我很好奇如何设置ray.remote()
。对于第二个问题,这更像是一个技术问题,我很好奇如何解决以供将来参考。我感谢任何建议或指导,并希望这些问题使这个可爱的库对其他人更有用。
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 脚本中指定我的网格搜索。
额外的问题:对于由字典覆盖指定的扫描,这将如何完成,就像在这个问题中一样?
fb-hydra - 用于 ML 模型的 hydra 组合
我有一些 ML 组件的配置如下:
现在我有另一个配置文件models/vae.yaml
,我想将其定义为具有这些编码器和解码器配置。
所以整个事情的结构如下:
我应该如何定义,vae.yaml
以便编码器和解码器的配置可以传递给底层对象(如果可能的话,可以通过命令行覆盖)?
我试过类似的东西:
然而,这导致 Could not override 'ml/encoder'. No match in the defaults list.
python - 如何在命令行上指定列表
我对 hydra 进行了以下配置:
我可以将其覆盖为:
但是,当我尝试将列表指定为:
然后我收到以下错误:
我不确定这是否与 zsh shell 或 hydra 问题有关