从命令行扩展omegaconf中的列表



我在yaml文件中有一个类似的配置

training_variables:
- var1
- var2

我想使用一个额外的变量来扩展列表,并且我想从命令行进行扩展。怎么做?这似乎不可能,但我认为如果你想在每次都不更改配置文件的情况下尝试新的设置,这会非常有用。我想知道这样的事情:

train.py training_variables=$training_variables+['var3']

这是不支持的,也不打算在您请求的表单中得到支持。

一个实用的解决方案是将列表拆分为两个变量,并将它们连接到代码中。

base_list:
- a
- b
extra_list: []

train.py:

...
combined_list = cfg.base_list + cfg.extra_list
...
$ python train.py 'extra_list=[c,d,e]'

我不能100%确定上面的命令行是否能直接用于使用OmegaConf的应用程序,但它应该能用于Hydra 1.0或更新版本。

最新更新