-
Notifications
You must be signed in to change notification settings - Fork 25
Add modified tsvd! reverse-rule with Lorentzian broadening
#181
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
Conversation
|
I'll add a test for the Lorentzian broadening tomorrow and then it should be relatively ready to be merged. But there's one thing where I'm not sure yet: I want a user verbosity kwarg for the gauge warnings in My idea to circumvent this would be the following: Add a custom SVD rrule alg for the modified @lkdvos, what do you think about this? |
Codecov ReportAttention: Patch coverage is
🚀 New features to boost your workflow:
|
…PSKit.jl into pb-lorentzian-broadening
I gave this a go and I do like it since it does improve usability quite a bit. I was previously running into cases where the gauge warning output was so verbose that it basically made the optimization run information ineligible. I think I also prefer having |
lkdvos
left a comment
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.
Overall looks good to me!
For the default value of the broadening, it would probably be better to have that as a relative thing (and this depends on the datatype), so maybe this could be somewhat improved?
Otherwise I can only comment on the name, FullReverse is very non-descriptive, I can't think of anything much better but I would maybe add SVD somewhere in there?
Co-authored-by: Lukas Devos <ldevos98@gmail.com>
…PSKit.jl into pb-lorentzian-broadening
|
Yes I agree, the I adjusted the default broadening value but inside the For me this would be good to go now! |
lkdvos
left a comment
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.
Okay for me once tests pass
In this PR we will add a rrule for
tsvd!which supports Lorentzian broadening. To that end, I copy over TensorKit'ssvd_pullback!and modify thesave_invfunction to support a broadened inverse.Additionally, I will add a keyword argument to control the gauge-dependency warnings in that reverse-rule (which is currently not possible) since in some optimizations, the gauge-dependency warnings are really out of control even though they are non-problematic.