Sacess usage example or simplification of usage
It is a bit hard to start using sacess in pyPESTO. There is an example of usage, but it's only in the docstring of the SacessOptimizer. It is a place I would search for, but I don't think that any user would find it quickly. Having an example of usage, a notebook, could help with this. To also give some idea of what it does and which settings one should choose.
It could be a part of "optimizer_choice" notebook that would showcase some of the most common optimizers we supply and which are recommended (according to some preliminary optimizer benchmarking results).
A separate, but connected point: I believe a user's first idea of how they would select sacess would be
sacess_optimizer = SacessOptimizer(options)
pypesto.optimize.minimize(problem, optimizer=sacess_optimizer)
I see issues with this approach and why it's separate, but it would be the most user-friendly approach imo.
It is a bit hard to start using sacess in pyPESTO. There is an example of usage, but it's only in the docstring of the
SacessOptimizer. It is a place I would search for, but I don't think that any user would find it quickly.
If a user wants to use a specific optimizer, I'd expect them to read the respective API documentation. I don't think this is asking too much.
Having an example of usage, a notebook, could help with this. To also give some idea of what it does and which settings one should choose.
So far, this isn't done for any optimizer, and I would avoid duplicating the API documentation.
It could be a part of "optimizer_choice" notebook that would showcase some of the most common optimizers we supply and which are recommended (according to some preliminary optimizer benchmarking results).
Fine with me to add some saCeSS invocation there, but I don't think this is the place to explain the algorithm or hyper-parameters.
A separate, but connected point: I believe a user's first idea of how they would select sacess would be
sacess_optimizer = SacessOptimizer(options) pypesto.optimize.minimize(problem, optimizer=sacess_optimizer)I see issues with this approach and why it's separate, but it would be the most user-friendly approach imo.
I don't think it's a good idea to suggest using saCeSS in a multi-start setting.
I am planning to continue the whole scatter search implementation in a separate package where this can evolve faster, independently of the rest of pypesto. There will be more room for examples and documentation and tests then. If pypesto then wants to wrap it in a pypesto.optimize.Optimizer that's fine with me, but currently, I don't want to squeeze it into that.
I am planning to continue the whole scatter search implementation in a separate package
Started at https://github.com/ICB-DCM/pyscat/. Keep using the pypesto implementation until further notice, but don't update this implementation unless absolutely necessary.
Started at https://github.com/ICB-DCM/pyscat/.
There is now a first release on PyPI, and some documentation is available at https://pyscat.readthedocs.io/en/latest/.
It would be great if some users could give it a try already. There is a small example for migrating to the new package.
Please post any issues or suggestions for additional documentation / examples at https://github.com/ICB-DCM/pyscat/issues.
I will add a deprecation notice to the scatter search optimizers in pypesto after the next pypesto release.