It works fine for the "sinogram" objective function.
Found by @gschramm.
—
Reply to this email directly, view it on GitHub, or unsubscribe.
You are receiving this because you are subscribed to this thread.
@evgueni-ovtchinnikov wrote in #1253 (comment)
which is due to the fact that
PoissonLogLikelihoodWithLinearModelForMeanAndListModeDataWithProjMatrixByBin
does not override emptyObjectiveFunction.get_subset_sensitivity()
.
Can you elaborate a bit? get_subset_sensitivity
is implemented in PoissonLogLikelihoodWithLinearModelForMean
. It also used in PoissonLogLikelihoodWithLinearModelForMeanAndListModeDataWithProjMatrixByBin::actual_compute_subset_gradient_without_penalty
. It is of course entirely possible that there is a bug somewhere, but I'd like to understand what you saw.
—
Reply to this email directly, view it on GitHub, or unsubscribe.
You are receiving this because you are subscribed to this thread.
In STIR.py we have
class PoissonLogLikelihoodWithLinearModelForMeanAndListModeDataWithProjMatrixByBin(ObjectiveFunction):
From what you write it looks like this class should have been derived from PoissonLogLikelihoodWithLinearModelForMean
, should it not?
—
Reply to this email directly, view it on GitHub, or unsubscribe.
You are receiving this because you are subscribed to this thread.
yes indeed. And it is.
—
Reply to this email directly, view it on GitHub, or unsubscribe.
You are receiving this because you are subscribed to this thread.
yes we do. I have just pushed the corrected STIR.py - let George try it.
—
Reply to this email directly, view it on GitHub, or unsubscribe.
You are receiving this because you are subscribed to this thread.
@evgueni-ovtchinnikov @KrisThielemans was the update pushed to the master branch of SIRF?
Should I re-run the complete Super-Build with DEVEL_BUILD=ON
?
I am have some time for tests this late afternoon / tomorrow morning.
—
Reply to this email directly, view it on GitHub, or unsubscribe.
You are receiving this because you are subscribed to this thread.
Not yet merged, no. You'll need to set
cmake ... -DSIRF_TAG=origin/acc-hess
you can also try UCL/STIR#1418 by adding
-DSTIR_URL=https://github.com/KrisThielemans/STIR-1.git -DSTIR_TAG=origin/ListModeObjFuncExtras
(although TBH I have never tried switch the URL like this in an existing build, so git status
and git log
in sources/STIR
will be essential).
I'm not 100% sure that SIRF will pick up the LM Hessian, but I think it will. Comments in the respective PRs please.
—
Reply to this email directly, view it on GitHub, or unsubscribe.
You are receiving this because you are subscribed to this thread.
list-mode obj_fun.get_subset_sensitivity(0) returns None is now fixed (now sure which PR fixed it).
Using the SIRF:acc-hess
and STIR:master
branch, the following test snippet runs without error using a
"realistic" Poisson logL objective function:
for i in range(num_subsets): assert np.all(np.isclose(lm_obj_fun.get_subset_sensitivity(i).as_array(), obj_fun.get_subset_sensitivity(i).as_array()))
If the listmode subsets are based on views (which I remember they should be), everything works as expected.
—
Reply to this email directly, view it on GitHub, or unsubscribe.
You are receiving this because you are subscribed to this thread.
Indeed. Listmode subsets currently reproduce those from projection data.
Excellent news!
—
Reply to this email directly, view it on GitHub, or unsubscribe.
You are receiving this because you are subscribed to this thread.
should be fixed now that PR #1253 is merged
—
Reply to this email directly, view it on GitHub, or unsubscribe.
You are receiving this because you are subscribed to this thread.
Closed #1251 as completed.
—
Reply to this email directly, view it on GitHub, or unsubscribe.
You are receiving this because you are subscribed to this thread.