首页 > 解决方案 > 从命令行扩展 omegaconf 中的列表

问题描述

我有一个来自 yaml 文件的类似配置

training_variables:
   - var1
   - var2

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

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

标签: omegaconf

解决方案


这不受支持,也不计划以您请求的形式提供支持。

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

base_list:
 - a
 - b
extra_list: []

火车.py:

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

我不能 100% 确定上述命令行是否可以直接与使用 OmegaConf 的应用程序一起使用,但它应该可以与 Hydra 1.0 或更高版本一起使用。


推荐阅读