Sampling Unique states with autoregressive models #1272
Replies: 2 comments
-
My understanding is that the approach you mention (which is very nice, I agree!) will generate occurencies of given samples, thus it will require using weighted averages of all observables (including the QGT, energy etc). This is a major difference wrt to the current implementation of these objects in netket. It's not impossible to do, but it is certainly a lot of work, and currently we don't have anything planned along those lines. The main inconvenience I see is that this approach will pay off only if the sampled nqs has a few dominating states (say, for chemistry in the HF basis and for weakly correlated molecules)... But of course if you are interested in implementing it, we can try to help you out. @wdphy16 might also comment more on this algorithm and its possible implementation |
Beta Was this translation helpful? Give feedback.
-
Hi @jkocklaeuner, thanks for the comment. It's actually not so much work to implement weighted averages of observables, and I would be in favour of implementing support for it internally. We already do support it in one QGT implementation, as we need it to perform full-space calculations (I think its supported by From an API point of view, this approach would probably result in implementing a different kind of Variational State, maybe a About your questions:
|
Beta Was this translation helpful? Give feedback.
-
Hi,
first of all thanks for the amazing package, I really enjoy working with it!
I'm currently experimenting with autoregressive models and stumbled across a paper which uses a different sampling algorithm which seems more efficient to me, as it simply samples the unique states and the number of occurences given a sample size.
Since I often have a lot of redundant samples this would be really advantageous for me in the following steps, e.g. the local energy and the gradients are only computed once for each unique state and scaled afterwards. I would really like to implement a similar algorithm, since I ran into some out-of-memory errors for larger systems.
While the implementation of the sampling procedure alone seems manageable to me, this would probably break the compatibility with all other functionalities provided by Netket, e.g. the calculation of the gradients, QGT etc., since they handle sampled states differently.
So what I'm basically asking is:
I just feel like this is a much more efficient way to exploit the normalization of the autoregressive models compared to the current
ARDirectSampler
and I would be very thankful if I would get your opinion on this :)Thanks in advance!
Jannis
Beta Was this translation helpful? Give feedback.
All reactions