如何在命令行上指定列表

how can I specify a list on the command line

我对 hydra 进行了以下配置:

data_files: null
theta: 0.2
use_weights: true

我可以将其覆盖为:

python -m apps.test_hydra data.data_files=x 

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

python -m apps.test_hydra data.data_files=[x,y] 

然后我得到以下错误:

zsh: no matches found: data.data_files=[x,y]

我不确定这是 zsh shell 还是 hydra 问题

将字符串用引号括起来以避免 [ 被解释为 glob 表达式。

python -m apps.test_hydra 'data.data_files=[x,y]' 

hydra github issue 上,他们使用以下语法。您可能需要做类似的事情。

$ python -m apps.test_hydra 'data@data_files=[x, y]'

在特殊字符前使用“\”。

python -m apps.test_hydra data.data_files=\[x,y\]