4 ms·
Wow, just a few weeks ago I wanted an optimization function in Python and was already using SciPy, so I reached for scipy.optimize and ran into quite a few of t
by ZeroCool2u 3y ago
Wow, just a few weeks ago I wanted an optimization function in Python and was already using SciPy, so I reached for scipy.optimize and ran into quite a few of the bugs described first hand, which had me kind of rattled. I just assumed whatever optimizer SciPy uses would be reliable even if it's not completely optimal or cutting edge.
I love the dedication these folks have to their old colleague too. They took a great deal of care in relicensing, so that SciPy could use their derived code even though the original author had passed. Nothing but admiration for them!
Anyways, I was lucky enough that I could restrict my search space on some assumptions and just brute force the problem in very reasonable time, but this is quite timely for me and great to see!
- whimsicalism 3y agoFrom my experience with this (in 2018), scipys non-gradient optimizers are not very good/
- domcoltd 3y agoIndeed, the author mentions many bugs of the SciPy gradient-free solvers in the readme of the repo of Prima.
- NwtnsMthd 3y agoThe optimization libraries in SciPy are surprisingly bad. I've found Mystic to be a great alternative. https://github.com/uqfoundation/mystic https://github.com/uqfoundation/mystic
- nunuvit 3y ago> I just assumed whatever optimizer SciPy uses would be reliable That's usually a bad assumption for wrapped math libraries outside of the foundational ones like numpy. They tend to have a pretty low ratio of "mileage" to complexity in the first place, it's easy for the project to become a zombie without users realizing, and the layers of challenges to fixing issues leave many of them unresolved. If you need reliability, you'll have to deliberately choose software that's mature and actively maintained.