astro-informatics / sopt

Sparse OPTimisation using state-of-the-art convex optimisation algorithms.
http://astro-informatics.github.io/sopt/
GNU General Public License v2.0
9 stars 11 forks source link

Refactor the forward backward classes #284

Closed tkoskela closed 1 year ago

tkoskela commented 2 years ago

SOPT has several "solvers" that take the operators f_gradient and g_proximal as arguments and several definitions for those operators using different norms. We could implement the learned model as a "norm" and pass it in using the current interface with minimal modifications to the rest of the code. Note that the code on lines 234-236 of ForwardBackward.h is specific to the L1 norm and needs to be put in a function.

Currently the definitions of different norms have a lot of copy-pasted code that should be merged while we add the learned model. The current norms for the forward backward solver are imaging_forward_backward.h and l2_forward_backward.h. PR #256 adds another one to the primal dual solver.

Create a new class that combines the classes in imaging_forward_backward.h, l2_forward_backward.h (including some of the clean-up in #256)

Once this is done, we can proceed with

tkoskela commented 2 years ago

Notes from pair programming session: