-
-
Notifications
You must be signed in to change notification settings - Fork 225
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
Roadmap for a more user- and developer-friendly SMAC #859
Labels
Milestone
Comments
class BananaFacade:
def __init__(self, epm: EPM | None = None):
if epm is None:
epm = self.default_epm()
self.epm = epm
@staticmethod
def default_epm(**kwargs) -> EPM:
"""We could explicitly list the args here for better tool support"""
config = {"a": "apple", "b": "banana", **kwargs}
return EPM(**config)
# All defaults
mybanana = BananaFacade()
# Specify a modified EPM
mybanana = BananaFacade(
epm=BananaFacade.default_epm(b="bapple"),
)
# Construct an epm entirely and use that
epm = EPM(a="anaconda", b="burger")
mybanana = BananaFacade(epm=epm)
# Specify your own EPM
class OtherEPM(EPM): ...
mybanana = BananaFacade(epm=OtherEPM(...)) |
Remove runtime optimization? |
Add ask + tell interface |
And rename EPMChooser |
This has been addressed. |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Since the overall goal is to make SMAC more user- and developer-friendly, I spend some time on how we could improve SMAC in small steps.
→ Fix multiple names/variables with the same meaning
→ Remove scenario from the main code (scenario was written for CLI mainly)
→ Eventually rename scenario to config (defining objectives, determinstic behaviour, limitations, how many runs should be executed, etc.)
→ FirstRunCrashedException (What happened? e.g. see line SMBO Line 504)
→ Better Pynisher integration (having much better tracebacks for example)
→ Essentially, each facade needs to have a static method for default model/intensifier/... which is called if no model/intensifier/... is passed
→ But since the user can grab this "default" intensifier, the user can change it with default settings to their needs
Let me know what you think about it. :)
The text was updated successfully, but these errors were encountered: