automl / neps

Neural Pipeline Search (NePS): Helps deep learning experts find the best neural pipeline.
https://automl.github.io/neps/
Apache License 2.0
51 stars 12 forks source link

Add ifbo #115

Open Neeratyoy opened 1 month ago

Neeratyoy commented 1 month ago

Adding ifBO and refactoring a bunch of freeze-thaw based multi-fidelity algorithms. Working example here.

Existing issues or concerns:

Neeratyoy commented 1 week ago

@eddiebergman @TarekAbouChakra is the tblogging supported currently? If you can install this branch and run this example and view Tensorboard, it is no longer working.

eddiebergman commented 1 week ago

Just fyi, [PR](#140) didn't work as intended, you can just do PR #140 :)

eddiebergman commented 1 week ago

As for the PR about python dependancies, just get ifbo in first and we can do the python dep thing after

eddiebergman commented 1 week ago

Regarding tblogger, I can't initially see what the issue is. Seems that the tblogger at each iteration will get the trial that is currently being evaluated from the runtime.py. The runtime.py will ask the optimizer for the next config to evaluate (which returns the config dict as well as the ID), sets that as the currently running trial and then sends it to run_pipeline(). Inside run_pipeline() is where the tblogger.log() is called, at which point it asks the runtime.py, "hey, what config is currently being evaluated?". Should be the exact same as what's used for determining the config directory.

eddiebergman commented 1 week ago

Think I found the issue:

This line: https://github.com/automl/neps/blob/0025d3d41db51a6198c7b19464513371eb9cb9ff/neps/plot/tensorboard_eval.py#L316-L317

Basically it only initializes once, where intialization is in charge of deciding where to write to: https://github.com/automl/neps/blob/0025d3d41db51a6198c7b19464513371eb9cb9ff/neps/plot/tensorboard_eval.py#L109-L135

Neeratyoy commented 1 week ago

@eddiebergman how should we go about this PR?

Parallelization works and I happy for now with local testing.

Tblogger is the biggest bummer here, along with test cases failing.