-
Notifications
You must be signed in to change notification settings - Fork 9
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Python implementation refactor, numba kernel optimizations, some GPU implementations #8
base: master
Are you sure you want to change the base?
Conversation
… the code for different energy functionals
…_integrate_pd_over_cells_single and is how one typically iterates in FE
… hand that does "constant in normal direction" extension
…ion problem as non-linear least squares problem
…mization problem as non-linear least squares problem
…e regularizer part of the residual
…rix vector mutliplication with a constant matrix and a constant shift
…1 (will make the multi level descent easier)
…rmalized integration domain instead of in pixels (will make the multi level descent easier)
) | ||
self.state.deformations = ComplexSignal2D(dp.stack(corrected_images)) | ||
self.state.completed_stages = stage + 1 | ||
L *= self.config.regularization.factor_stage |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This seems slightly different from what my C++ implementation is doing. There, the first stage uses lambda
, all other stages use lambda*extraStagesLambdaFactor
, i.e. the regularization parameter is only changed when moving from stage 1 to stage 2. It's not changed further when going from stage 2 to 3..
The bias correction step indeed still seems to be missing. Let |
Note |
BTW: I'm very happy to see that you made a lot of progress on this! |
FYI, the C++ code handles the bias correction in |
After more than a year I finally found a bit of spare time to work on this project a bit more. I have taken your implementation @berkels and made some improvements in terms of:
What still needs to happen:
implementation/implementation.py
, in theJNNR
class, support writing intermediate results to a file.JNNR.run
. Some help here would be appreciated.@berkels I would really appreciate if you could skim over this if/when you find time and comment on: