Skip to content
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

How to handle the discontinuation of scikit-optimize #654

Open
sezelt opened this issue May 6, 2024 · 3 comments
Open

How to handle the discontinuation of scikit-optimize #654

sezelt opened this issue May 6, 2024 · 3 comments

Comments

@sezelt
Copy link
Member

sezelt commented May 6, 2024

scikit-optimize, which we use in the PtychographyOptimizer, is now discontinued. There have been no releases in quite some time, and now the repo is archived. While it is still available and not causing problems at the moment, I would anticipate this to cause problems down the line, so we should come up with a plan for handling this.

Some options I think are worth considering:

  • Switch GP optimization to use gp-cam. gp-cam is very full featured and probably more performant than scikit-optimize (and a Berkeley Lab project!), but it will take some work to reproduce the convenient interface and plotting that we currently get from scikit-optimize.
  • If the license permits, pull the necessary scikit-opt components directly into py4DSTEM and maintain them here.
  • Switch to another hyperparameter tuning library, such as Optuna or Hyperopt
  • Do nothing and hope for the best? 😅
@gvarnavi
Copy link
Member

gvarnavi commented May 6, 2024

Agreed, we should come up with a plan to replace/maintain this.

My initial reaction after quickly googling gp-cam, optuna, and hyperopt is that optuna might be the easiest solution to provide similar high-level functionality.

@bsavitzky
Copy link
Member

Thanks @sezelt! This is on the agenda for today's dev meeting.

My first high-level thought is that pulling the relevant scikit-optimize source code into py4DSTEM and maintaining ourselves sounds like a recipe for headaches :p As does doing nothing and hoping for the best!

Switching to one of these other three options sounds like the right choice. Another possible option might be Ray Tune? I don't think I have enough of a sense of the pros and cons of the various options here to weigh in on which would be best.

@bsavitzky
Copy link
Member

Hi all - dropping a note here that #658 seems to have patched the immediate issue that came up so far, but this will come up again until it's properly handled - lets discuss at this week's meeting.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants