automl / ConfigSpace

Domain specific language for configuration spaces in Python. Useful for hyperparameter optimization and algorithm configuration.
https://automl.github.io/ConfigSpace/
Other
202 stars 93 forks source link

Allow callbacks or objects to be passed to `CategoricalHyperparameter` #133

Closed ThibzR closed 2 months ago

ThibzR commented 4 years ago

Currently there is no way to pass an object (not int, float or str) when declaring a set of CategoricalHyperparameter.

Would be very nice to be able to do something like: CategoricalHyperparameter('final_activation', [nn.Softmax(dim=1), nn.Sigmoid()])

Or a callable like CategoricalHyperparameter('final_activation', [lambda : nn.Softmax(dim=4)])

Currently I have to pass a string saying 'softmax', check for that value in the model and create corresponding layer - this would allow to be less verbose while gaining in simplicity.

mfeurer commented 4 years ago

Thanks for your suggestion. Indeed, this would be less verbose and simpler from a user perspective. We would have to check how this interacts with the fact that the hyperparameters are cython classes.

eddiebergman commented 5 months ago

This was added in #359 which depends on #346. Arbitrary objects are now allowed in Categorical or Ordinals :) Was tested with conditionals and forbiddens as well as other critical opererations regarding sampling, neighborhoods and conversions.