It appears that once a hierarchical value is passed to orion, it stops updating the parameters listed thereafter in the config (ordering seems to matter). Here is a small experiment to show this with three configs that are identical except for the ordering under hydra.sweeper.params. All configs are taken from the example folder and only the ordering is different.
Example 1
(Identical to what is current under example/)
hydra:
sweeper:
# default parametrization of the search space
params:
optimizer:
name: "choices(['Adam', 'SGD'])"
lr: "uniform(0, 1)"
dropout: "uniform(0, 1)"
batch_size: "uniform(4, 16, discrete=True)"
...
It appears that once a hierarchical value is passed to orion, it stops updating the parameters listed thereafter in the config (ordering seems to matter). Here is a small experiment to show this with three configs that are identical except for the ordering under
hydra.sweeper.params
. All configs are taken from theexample
folder and only the ordering is different.Example 1
(Identical to what is current under
example/
)result:
optimizer
params get overridden, butdropout
andbatch_size
don't get overridden:Example 2
Different ordering, dropout come before hierarchical att so gets overriden, batch size comes after so it does not.
result:
dropout
andoptimizer
get overriden, but notbatch_size
:Example 3
Here, the hieararchical att is last so everything seems to be overridden correctly.
result:
dropout
,batch_size
andoptimizer
get overriden correctly.