Closed epapoutsellis closed 3 years ago
A few comments:
adding PowerMethod
in the AcquisitionModel
class seems weird (a generic method inside an acquisition model?) I guess that's not what you meant.
convex_conjugate
and its proximal I don't know really what it'd involve. Maybe someone can elaborate on what is actually needed? Probably best in separate issue?
adding __call__
seems trivial to do in the add_cil
branch.
point 3. please create a separate issue for this such that we can comment on where the appropriate place would be.
@KrisThielemans we have the PowerMethod
as static method of the LinearOperator
class, for this reason we thought to add it to the AcquisitionModel
. However, if it seems not right, we can put it in SIRF.py
as function, maybe?
done in CIL, with some remaining issues listed separately already. #804
Demo that compares the PET reconstruction with PDHG from CIL using data fidelity:
KullbackLeibler
from CILpet.PoissonLogLikelihoodWithLinearModelForMeanAndProjData
Hacks to make PDHG from CIL to work with SIRF
We need to compute the
norm
of theAcquisitionModel
. Currently it uses thePowerMethod
from theLinearOperator
class from CIL, however we suggest to add thePowerMethod
in theAcquisitionModel
class.For the
PoissonLogLikelihoodWithLinearModelForMeanAndProjData
, we needconvex_conjugate
method to compute the convex conjugate ofPoissonLogLikelihoodWithLinearModelForMeanAndProjData
. In CIL, we are using scipy which is the convex conjugate ofscipy.special.kl_div
compute the
proximal
of theconvex conjugate
__call__
method forPoissonLogLikelihoodWithLinearModelForMeanAndProjData
. Currently, we have this method. In the STIR KullbackLeibler I believe that get_value computesand not
3) From
PoissonLogLikelihoodWithLinearModelForMeanAndProjData
we would likeget_background_term
get_acquisition_data
so we can avoid writing these 2 lines