Open ElePT opened 1 year ago
Opened by @Cryoris Original issue & discussion: https://github.com/Qiskit/qiskit/issues/10109
In the issue linked talking about VQE callback, was brought up when using ADAM. I talked about using an optimizer callback in there to access more information that is not available to VQE. I note that ADAM does not have this - maybe this is something that can be added as part of the unification to make sure not only is the same format but its available everywhere. The snapshot_dir function ADAM has does give access to the same type of info - maybe that can be deprecated it we support a callback there - a user of such a callback can save it to file themselves etc.
What should we add?
As previously already discussed eg. in https://github.com/Qiskit/qiskit-terra/pull/8628#issuecomment-1323924490, it would be great it all Qiskit Optimizers have the same signature for the callback function.
The callback function allows to pass back information on the state of the optimization to the user during the optimization. This is useful to track additional information like the optimization history or to check whether the optimization is converging. However, currently each optimizer has it's own signature on the callback, which makes it difficult to write modular code. It would be great it they had consistent signature, such as:
The current parameters are known to each optimizer (also the SciPy optimizers) and additional information could be stored in an optimization state, such as introduced in https://github.com/Qiskit/qiskit-terra/blob/5177db6e09917809895fe37878422ba8fcb6321a/qiskit/algorithms/optimizers/gradient_descent.py#L28