Add support for Riemanian objective through JuMP#448
Add support for Riemanian objective through JuMP#448kellertuer merged 14 commits intoJuliaManifolds:masterfrom
Conversation
|
I just finished #449 which does what you need (hopefully) at least for all objectives that (only) need cost/grad/hess – but it could in principle also be done for the non smooth prox ones. So if you merge master into yours, you have even an |
|
Thanks for continuing here! Over easter I can take a look at the failing tests and try to maybe even write a more generic tutorial that uses this new mode. Would it make sense to also take a look at the non-array-manifolds here already or would it be better to check that on a next PR? |
|
I prefer smaller PRs whenever possible |
|
Also perfect with me. Then we should fix the tests and maybe check with a small start of a tutorial, that all the new code works as expected. |
kellertuer
left a comment
There was a problem hiding this comment.
The objective is an optimization part so it is part of Manopt not ManifoldsBase.
At the end we also need a Changelog entry for the new patch version (that is one of the tests failing).
I had hoped I can edit this locally and contribute a tutorial to this PR as well, that seems to not be the case I can only propose changes here (but maybe accept them to see how far CI gets?)
|
Weird, "Allow edits and access to secrets by maintainers" is checked |
|
Sure I can pull and I can accept these edit comments here. But doing those feels a bit like hand-craftedly sending postcards to GitHub ;) I can not push from my locally checked out branch. Whatever, then we do this PR shorter – you like that anyways :) - and just do the feature improvement. I can try locally already to get a tutorial working and that will be a next PR. For not what is missing is
|
|
Ah and the |
|
What can we do if |
|
What would that be used for? I currently do not have in mind what a “zero objective” mightt be. The easiest “empty” objective is probably https://manoptjl.org/stable/plans/objective/#Manopt.ManifoldCostObjective so something like (or any other constant that |
|
It seems there is an issue with scaled objective because e98ea6f fixed the tests |
|
With the scaled objective that you have added, the point does not move, very weird |
|
The tests are passing locally, I won't have time to do more today but feel free to merge if ci is green in order to iterate on a follow up PR |
|
The issue with the current approach is that the flipping of the objective sense don't happen if a riemannian objective is set |
Nice! For me passing tests is fine enough, because we also have a test for the extension so it still works as expected. And I can try to write a short quarto-based tutorial and link to it from the extensions page as well in a next PR
That I do not fully understand but I will check the code. Thanks for all your work, would be super cool to maybe also get the other open point with non-array things done somewhen then – I can also first check how much I understand of the things that have to be changed then. |
Codecov ReportAll modified and coverable lines are covered by tests ✅
Additional details and impacted files@@ Coverage Diff @@
## master #448 +/- ##
=======================================
Coverage 99.88% 99.88%
=======================================
Files 83 83
Lines 8742 8747 +5
=======================================
+ Hits 8732 8737 +5
Misses 10 10 ☔ View full report in Codecov by Sentry. 🚀 New features to boost your workflow:
|
Closes #273