我有一个主配置文件,比方说config.yaml:
num_layers: 4
embedding_size: 512
learning_rate: 0.2
max_steps: 200000
Run Code Online (Sandbox Code Playgroud)
我希望能够在命令行上使用另一个文件(例如 say )覆盖它,big_model.yaml我在概念上使用它,例如:
python my_script.py --override big_model.yaml
Run Code Online (Sandbox Code Playgroud)
可能big_model.yaml看起来像:
num_layers: 8
embedding_size: 1024
Run Code Online (Sandbox Code Playgroud)
我希望能够覆盖任意数量的此类文件,每个文件的优先级都高于前一个文件。假设我也有fast_learn.yaml
learning_rate: 2.0
Run Code Online (Sandbox Code Playgroud)
所以我想从概念上做一些类似的事情:
python my_script.py --override big_model.yaml --override fast_learn.yaml
Run Code Online (Sandbox Code Playgroud)
在九头蛇中做到这一点的最简单/最标准的方法是什么?(或者可能在 omegaconf 中?)
(请注意,我希望这些覆盖文件理想地只是标准 yaml 文件,理想情况下覆盖早期的 yaml 文件;尽管如果我必须使用覆盖 DSL 来编写,我可以这样做,如果这是最简单/最好的/最标准的方式)