SyneRBI / Hackathon-SIRF

SIRF fork for hackathon
Other
1 stars 0 forks source link

Convert SPDHG to CIL optimization #1

Open mehrhardt opened 5 years ago

mehrhardt commented 5 years ago

use A(x) <=> A.direct(x) use A.adjoint(x, out=y) <=> y = A.adjoint(x) use f.proximal(tau)(x) <=> f.prox(x, tau) f.convex_conj <=> f_cvx

mehrhardt commented 5 years ago

This has been implemented by 53453fe18faf9b2dcae988ca8feabd567faf44b2. The code is not really documented nor well written. Moreover, there are several examples missing. Finally, the more code is needed to add regularization to it, for example from CCPi.

paskino commented 5 years ago

I guess we could add proximal rather than prox and it's a good idea to add out=y.

paskino commented 5 years ago

I added the CIL optimisation and regularisation to SIRF SuperBuild https://github.com/CCPPETMR/Hackathon-SIRF-SuperBuild/pull/1

mehrhardt commented 5 years ago

I guess we could add proximal rather than prox and it's a good idea to add out=y.

@paskino, yes, that would be a good idea! This way CIL is also more compatible to ODL which might turn out to be useful at some point.

paskino commented 5 years ago

WIP in https://github.com/vais-ral/CCPi-Framework/issues/129

KrisThielemans commented 5 years ago

@mehrhardt could you create an issue in SIRF (not hackathon) with where the out syntax is needed? It could be initially done as a work-around (for compatibility), but for PET it should be easy.

Please also say what out is supposed to do. should it check if sizes etc are as expected? What to do if they're not? Should it overwrite or add to existing data?

Possibly point us to the ODL doc, or we can get some ODL people involved.

mehrhardt commented 5 years ago

See CCPPETMR/SIRF#194

mehrhardt commented 5 years ago

This issue can be closed as 5efd25a49b41e7212a4e3f01bedb7cebc6c018e6 completes its implementation and simple example showing its usage. However, all code for SPDHG is far from tidied up and should be included at appropriate places in SIRF and/or CIL. I created an issue for this vais-ral/CCPi-Framework#154.