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)
The tests in forward_backward.cc are only testing that the properties of the class have the correct type. We may need some more checks before we start changing things
How can we run the forward-backward algorithm on an image?
Do we want to maintain l2_forward_backward, as it's not being used, or just cut it?
Macros in imaging_forward_backward.h. Do we want to keep them or rewrite in plain c++ for clarity?
SOPT has several "solvers" that take the operators
f_gradient
andg_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
andl2_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