-
Notifications
You must be signed in to change notification settings - Fork 7
Open
Description
Hi! Currently logging and processing of all experimental results is carried out inside optimizers. It looks suboptimal, because, for example, it is limits and evaluating and logging of new metrics (we need rewrite the logic of optimizer). I propose to separate these two tasks and propose two main variants:
Option 1
- Each optimizer has a method
step(*args, **kwargs), which performs an optimization step and each optimizer has method/attribute/propertyget_best_params(or other name), which returns best parameters set and objective function value at this params point. - We have a separate class
Experiment, which performs many optimization steps, logs and evaluates the results.
Option 2
- The
optimizemethod of each optimizer has a parametercallback, which is callback-function. it logs optimization results after each step and stop futher optimization by returningTruevalue. This logic is used inscipy.optimizepackage.
Metadata
Metadata
Assignees
Labels
No labels