Accessing optimizer's internal state
- Dominant language
- Python
- Stars
- 495
- Forks
- 129
- PR merge metrics
- No merged PRs in 30d
Description
Currently optimization process is a fully-automatic blackbox. I mean, you call fmin.bayes_optimization with appropriate arguments, wait for some time and get the answers together with various running stats, like points tried, incumbents and so on. By the time you get the results, optimizer internal state is gone, so various interesting stuff like acquisition function behavior can't be analyzed.
What do you think about giving the option for client code to control optimization loop? For example, splitting BaseSolver.run into BaseSolver.start and BaseSolver.step, so interested users could write
```
opt.start()
for k in range(num_iters):
opt.step()
```
Contributor guide
No contributing guide indexed for this repository
Research direction
Start by reading fmin.bayes_optimization and BaseSolver.run, which the issue identifies as the current optimization entry points. Trace how running statistics and optimizer state are produced and discarded. Done means client code can start optimization, advance it step by step, and inspect state between steps for visualization or analysis.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- python
- Domain
- machine-learning
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 25/100