-
Notifications
You must be signed in to change notification settings - Fork 17
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Add proximal ADMM solvers #371
Conversation
Codecov Report
@@ Coverage Diff @@
## main #371 +/- ##
==========================================
- Coverage 94.15% 94.08% -0.07%
==========================================
Files 57 61 +4
Lines 3406 3824 +418
==========================================
+ Hits 3207 3598 +391
- Misses 199 226 +27
Flags with carried forward coverage won't be shown. Click here to find out more.
Help us with your feedback. Take ten seconds to tell us how you rate us. Have a feature suggestion? Share it here. |
scico/examples/scripts/denoise_tv_multi.py Lines 60 to 65 in 8a1ea91
This is probably caused by the operators being jitted the first time they are called. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Couple suggestions and at least one typo.
snp.vstack( | ||
(hist_admm.Objective, hist_ladmm.Objective, hist_padmm.Objective, hist_pdhg.Objective) | ||
).T, | ||
snp.vstack((hist_admm.Time, hist_ladmm.Time, hist_padmm.Time, hist_pdhg.Time)).T, | ||
ptyp="semilogy", | ||
title="Objective function", | ||
xlbl="Time (s)", |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Some of the curves still appear to a large horizontal shift, as if there is a lot of compute happening before iteration 1. Suggestion: add a comment on this if you have a reason why.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This is not occurring when the script is run locally without a GPU. Will investigate.
2. Proximal ADMM has similar performance to PDHG with respect to iterations, | ||
but is slightly inferior with respect to time. | ||
3. ADMM greatly outperforms Linearized ADMM with respect to iterations. | ||
4. ADMM slightly outperforms Linearized ADMM with respect to time. This is | ||
possible because the ADMM $\mathbf{x}$-update can be solved relatively | ||
cheaply, with only 2 CG iterations. If more CG iterations were required, | ||
the time comparison would be favorable to Linearized ADMM. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
not clear, if more CG iterations were required which one would be superior to which other one?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I'm not sure what's not clear. Does "favorable" seem ambiguous?
Add proximal ADMM solvers.