-
Notifications
You must be signed in to change notification settings - Fork 33
Description
Hello again! First of all, amazing package. The modularity here is really fantastic.
For me, I think a key missing feature is some kind of flexibility in how to terminate solves. There are two aspects of this I think
-
I sometimes struggle with the interpretability of the cauchy termination criteria. My parameters all have different scales, and the meaning of “atol” and “rtol” applied to all parameters is not always meaningful. I would find it useful if there were 1) a way to converge just on function tolerance or 2) to have pytree-valued rtol and atol applied to parameters.
-
It is very cool that
OptaxMinimiseris provided. For me, the ability to do the converse—wrap an optimistix minimizer into an optax-like style API—would be very useful. For my work, I don’t always want to use the cauchy termination criteria at all—I may want to just step through a solve and inspect the results. I also may want to vmap over solves, and I don't think it is always wise to use while loop logic in this case. I wrote my own API to give this behavior usingAbstractMinimiser.initandAbstractMinimiser.step, and this was fairly straight forward to do! But I definitely needed the source code to do so and some prior Equinox expertise. Also, related to the above, rtol and atol I noticed were required parameters.
I realize what I’m describing is not a small feature request by any means and there is no immediate need for this on my end, but I thought it would be interesting to have some discussion about this. Let me know what you think!