-
Notifications
You must be signed in to change notification settings - Fork 654
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
HPO ParameterSet bug #1203
Comments
@BalogneseCoder Appreciate if you can provide a code example demonstrating how you your parameters are defined and passed to HPO. |
param1 = DiscreteParameterRange(name='param1', values=[0, 1]) hparams = [param1, param2, param3, paramset1, paramset2] |
optimizer = HyperParameterOptimizer( |
Hi @BalogneseCoder !
This looks like a Hydra error. We issue this warning when something went wrong when checking if an override corresponds to a config group. How could this happen? Do you have some simple runnable code that contains both the HPO code and the task you are trying to optimize, to help us reproduce this? |
Describe the bug
In HPO(hyper-parameters optimization) I use both hyperparameters and ParameterSets:
so the list provided as hyper_parameters is something like that:
[<clearml.automation.parameters.DiscreteParameterRange at 0x7f4520fc7314>,
<clearml.automation.parameters.DiscreteParameterRange at 0x7f4520fc7190>,
<clearml.automation.parameters.ParameterSet at 0x7f4520fc5180>,
<clearml.automation.parameters.ParameterSet at 0x7f4520fc66b0>]
all of that are Parameters objects as described in docs.
ParameterSets has the following structure(i use to_dict() method to show):
{'type': 'ParameterSet',
'name': None,
'values': [{'param1': <clearml.automation.parameters.DiscreteParameterRange at 0x7f4520fc72b0>,
'param2': <clearml.automation.parameters.DiscreteParameterRange at 0x7f4520fc59f0>},
{'param1': <clearml.automation.parameters.DiscreteParameterRange at 0x7f4520fc5330>,
'param2': <clearml.automation.parameters.DiscreteParameterRange at 0x7f4520fc5e70>}]}
in console I see:
2024-02-12 20:17:51,239 - clearml - WARNING - Could not determine if Hydra is overriding a Config Group param1=<clearml.automation.parameters.DiscreteParameterRange object at 0x7f86043163b0> so instead of value the task is provided with object itself, for sure it fails after that.
To reproduce
Exact steps to reproduce the bug. Provide example code if possible.
run HPO with list of any ParameterRange + ParameterSet with several combinations and ParameterRange in each combination.
btw to_list() shows values instead of ParameterRange objects
[{'param1': '1',
'param2': '1'},
{'param1': '0',
'param2': '0'}]
Expected behaviour
What is the expected behaviour? What should've happened but didn't?
optimization task should send the exact values, not an object when starting training task.
I suppose to_dict method is inherited from Parameter and ParameterSet structure is more complex so it works incorrect, but I am not sure about this.
Environment
self hosted
clearml==1.12.2
WebApp: 1.11.0-000 • Server: 1.12.0- • API: 2.26
3.10
linux
Related Discussion
If this continues a slack thread, please provide a link to the original slack thread.
The text was updated successfully, but these errors were encountered: