Here is my current config structure
hydra/
pipeline/
common/
feature.yaml
stage/
train.yaml
with the following files:
train.yaml
# @package _global_
defaults:
- _self_
- ../pipeline/common@train: feature
- ../pipeline/common@val: feature
train:
conf:
split: train
val:
conf:
split: val
pipeline:
- ${oc.dict.values: train.steps}
- ${oc.dict.values: val.steps}
feature.yaml
conf:
split: train
steps:
tabular:
name: "${conf.split}-tabular
class: FeatureGeneration
dataset:
datasources: [ "${conf.split}_split" ]
What I've accomplished:
- I've been able to figure out how to use the config group multiple times utilizing the defaults in
train.yaml
.
What I'm stuck on:
I'm getting an error:
InterpolationKeyError 'conf.split' not found
I do realize that imports are absolute. If I put@package common.feature
at the beginning offeature.yaml
I can importconf.split
viacommon.feature.conf.split
, but is there not a cleaner way? I tried relative imports but got the same error.I can't seem to override
conf.split
fromtrain.yaml
. You can see where I settrain.conf.split
andval.conf.split
but these do not get propagated. What I need to be able to do is have each instance of the config group utilize a differentconf.split
value. This is the biggest issue I'm facing.
What I've referenced so far:
The following resources have gotten me to where I am so far, but am still having trouble with what's listed above.