py4dstem / py4dstem/py4DSTEM

How to handle the discontinuation of `scikit-optimize`

Open
#654 3 comments 2 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
Python
Stars
279
Forks
177
PR merge metrics
No merged PRs in 30d

Description

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? 😅

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by inspecting the PtychographyOptimizer and its current scikit-optimize usage. Compare the proposed gp-cam, vendoring, Optuna, and Hyperopt paths, including how the current interface and plotting are used. Done means selecting and documenting a maintenance or replacement plan with a defined migration scope.

Written by the indexing model from the issue text.

Assessment

Tech stack
python
Domain
machine-learning
Issue type
Refactor
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
30/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.