1

我有一些 ML 组件的配置如下:

ml/encoder.yaml

hidden_layers_sizes: [2000, 1000, 300]
z_dim: 50

ml/decoder.yaml

hidden_layers_sizes: [300, 1000, 2000]
z_dim: 50

现在我有另一个配置文件models/vae.yaml,我想将其定义为具有这些编码器和解码器配置。

所以整个事情的结构如下:

- conf
  - ml
    - encoder.yaml
    - decoder.yaml
  - models
    - vae.yaml

我应该如何定义,vae.yaml以便编码器和解码器的配置可以传递给底层对象(如果可能的话,可以通过命令行覆盖)?

我试过类似的东西:

# @package _global_

defaults:
  - override /ml/encoder: encoder
  - override /ml/decoder: decoder

然而,这导致 Could not override 'ml/encoder'. No match in the defaults list.

4

1 回答 1

1

我设法让它工作:

defaults:
 - encoder: vae_encoder
 - decoder: vae_decoder

我将配置更改为:

- conf
  - models
    - encoder
      - encoder.yaml
    - decoder
      - decoder.yaml
    - vae.yaml
于 2022-01-17T07:09:34.440 回答